Tシャツを作る
鉛筆を作る >> サイコロを作る >> Tシャツを作る
モデリング入門チュートリアル第3弾です。
一番難度が高いので、まずは前の二つのチュートリアルでBlenderの操作に慣れておくのをおすすめします。

目的

ウェイト付きモデルの作成方法を学ぶことを目的としてます。

お題

男性のTシャツを作りたいと思います。スカイリムは胴体と脚で一体のメッシュになっているので、ズボンも作らないとTシャツ+ふんどしの大変シュールな絵面になるんですが、それも一興ということで。


使うソフト

フォトショップかGimpDXTBmpPaint.Net

Nif Plugin for Skyrim
Blenderで入出力を読んで導入してください。

考える

資料を集めて、観察してイメージを固めます。

全部で表・後・左右袖・首の全部で5枚の布
裾と袖の折り返す部分はステッチが2本。
脇や袖のつなぎ目はステッチが出ない。

素体

基準となるボディのメッシュが必要です。これを 素体 と言います。
スカイリムのボディは重量スライダーの最低値の0←→最高値の1に準じて、

メッシュも最低値の xxx_0.nif と最高値の xxx_1.nif の2つ用意する必要があります。
0と1の間はゲーム内で自動的に補完されます。そのため、 補完された時に破綻しないのが重要です。

テクスチャが伸びるより縮むほうが問題にならないので 1 の方から作ります。

ボディメッシュが男性の場合は元の身体の造形にはあんまりとらわれずに、素体が服を突き抜けてもいいですから
完成品としてのシルエットの良さを重視してください。なんでかというと0と1の振れ幅が大きくて破綻しやすいのと、
筋肉造形に合わせすぎるとシルエットがもっさりしすぎてしまうためです。
※例えば映画のアイアンマンなどはシルエット重視で細めになってます。実際に着ようとすると難しいデザイン

どうやって作るか

Tシャツの作成方法で考えられるのは以下のとおり。

  1. プリミティブ(四角など)から押し出しと分割で作る伝統工法
  2. いきなりスカルプト→リトポ
  3. 筒状に作ってShrinkWrapで素体に貼りつけて作る。
  4. 型紙みたいに作って布シミュレーション→リトポ
  5. 素体から複製してリトポ

今回はウェイト付きメッシュの作成方法を目的としてるので、きれいなトポロジーが作りやすい 1 で作ります。

準備

素体ファイルの解凍

  1. B.A.Eを起動します。
  2. File→Open Fileから Data\Skyrim - Meshes.bsa を選びます。
  3. Select None を押して全チェックを解除します。
  4. meshes\actors\character\character assets\ フォルダから
    malebody_1.nif
    malebody_0.nif
    skeleton.nif
    にチェックを入れます。
  5. Extract を押してフォルダに解凍します。
  6. 同様の手順でFile→Open Fileから Data\Skyrim - Textures.bsa を選び、Select Noneでチェック解除、 textures\actors\character\male\ フォルダから
    malebody_1.dds
    malebody_1_msn.dds
    malebody_1_s.dds
    を解凍します。
    必ず同一フォルダにmeshesとtexturesフォルダを配置します。
    例:Tshirts\meshes\actors~とTshirts\textures\actors~



Blenderに素体をインポートする

  1. Blenderを起動します。
  2. パースがかかってるので テンキー5 で戻す。
  3. インポート画面を開きます。 File->Import->NetImmerse/Gamebryo (.nif)
  4. 左側のScale Correction Importを0.1で、その他チェックなしで、 malebody_1.nif を選んでから、 Import NIF を押して読み込みます。
    ※エラーが出ますが下着のテクスチャがないだけなのでお気にせず
  5. 見にくいので View Port ShadingをSolid にします。


モデリング作業


ベースの作成準備

  1. 立方体を 右クリック で選択します。
  2. 素体に埋もれると操作しづらいので常に手前に表示できる X-Ray を設定します。画面右端の プロパティウィンドウ から立方体マークのObject→Display→ X-Ray を選択します。
  3. 3DViewに戻って Tabキー を押してエディットモードに入ります。
  4. A→G→Z→10 で立方体を上へ。コマンドの意味はそれぞれ 全選択All→移動Grab→Z方向→10だけ移動
  5. Z→B で底面の頂点4つを選択。
    ※Tips: Zキー はワイヤーフレーム表示の切り替えで、背面の頂点を選択できるので便利。選択はほかに CキーCtrl+左ドラッグ の投げなわ選択でも可。
  6. Z で表示を戻す。 G→Z で腰まで下げる。 A で選択解除

ミラー化

  1. 真ん中で分割します。 Ctrl+R でループカットモードになるので、上か下の辺にもっていくとピンクのラインが中央に表示されるので、左クリックで確定してください。
  2. 左半分削除します。 Z→B で左半分を選択して X→Vertices で削除。
  3. Tabキー でオブジェクトモードに戻って、 プロパティウィンドウのmodifierのmirror を選ぶ。これで左右同時に編集できます。

ベースの作成1

  1. ループカット Ctrl+R をしてマウスのホイールで上方向に動かすと線が増えるので三つに分割線を増やし、横に三分割します。
  2. 3本ループの真ん中、ちょうどウエストのくびれに当たる部分を Z→B で二つ選択してから、 S→X で少し縮小。その下のループも同様に S→X で少し縮小。
  3. 一番上の右の辺を選択して、 S→Y で少し縮小。
  4. 一番上の4つの頂点(面)選択して、 Eキー で押し出し左クリックで確定。右側の辺だけ G→Z で少し上げる。

袖を作ります。
  1. 一番上の段の右面を選択して Eキー で押し出し。
  2. 押し出した立方体を①をX軸内側に、②もX軸内側に引っ張る。③はZ軸にあげる。
  3. 腕に沿うように斜めに底面を Eキー で押し出します。


  1. 上部の首に当たる部分の面を E→Z で押し出し
  2. そのあと、でっぱりをなだらかにします。
  3. この辺から、徐々に素体に合わせて微調整します。 Alt+右クリック で辺をループ選択して、 GG でスライドできます。G→Z等駆使して全体的に位置を下げます。
  4. サイドは横から見て面選択、 S→Y で台形になるように調整。

これで第一段階のベースづくりは終わりました。なんとなくTシャツっぽくなりました。


ベースの作成2

さらに分割していき徐々に丸くしていきます。

  1. ループカット Ctrl+R で図1.のように分割
  2. Transform OrientationをNormal に変更、 G→Z→Z で肩を法線方向に出っ張らせます。
  3. 上から見て首から放射状になるように微調整。

ここで一回素体を見ると、腕がちょうどAの字のように斜めになっているのが分かります。これがAスタンスです。
トポロジーのラインは大胸筋から肩にかけて斜めになっています。これが胴体に垂直、地面に平行だと肩を上げたときにポリゴンがつぶれてしまいます。


AスタンスとTスタンス
腕がちょうどAの字のように斜めになるのがAスタンス、胴体に垂直にまっすぐTの字に伸ばすのはTスタンスです。Aスタンスは自然な肩が表現できる代わりにウェイトペイントやアニメーションはやや難度高くなります。Tスタンスは分かりやすいものの、腕を下した状態だとやや不自然ですが、肩を頻繁にあげる動きの激しい格闘ゲーム等ではTスタンスが採用されたりします。

トポロジー
トポロジーはポリゴン構成のことで、要はポリゴンの流れです。きれいなトポロジーというのは 伸縮に耐えられる形状 といっても過言ではないです。人体であれば筋肉は収縮しますので筋肉の流れに沿ったトポロジーは破たんしにくく、望ましいです。※例外あり

胴体と同じラインを赤くしてみました。ここの斜めの流れは保持したいです。
  • 以下のように Ctrl+R で分割します。
  • ここでいったんタブキーでオブジェクトモードに戻り、 ツールシェルフ(Tキーで開閉できる3DView左側に出るメニュー)のTools内Shading:Smooth をかけておきます。

  • あとはできるだけ丸くするように GSキー 、範囲編集の Oキー(G,S+マウスホイール) を使って微調整します。腕部分は素体に合わせて全体的に後ろに下がります。

ベースの作成3

ベースメッシュの仕上げにかかります。
  • 肩のUVシーム(Tシャツのシームもかねて)のラインに沿ってポリゴン分割したい
  • 脇下は伸びるので多めに分割しておきたい
  • 大胸筋の立体感が出せるラインを作っておきたい
  • 袖や裾や襟の厚みを表現したい

肩の丸みが出ないので肩横からわき腹にかけて Ctrl+R でループカットを2本入れておきます。


肩脇下のポリゴン分割

ここがこのチュートリアルのモデリングで一番難しいところですが、肩と脇下のポリゴン分割を変えます。
Tシャツを着て腕を上げると脇下の生地部分も伸びますよね。同様に3Dモデルでも脇下にポリゴンの伸縮に耐えられるゆとりが欲しいです。
ついでに肩のシーム部分でポリゴンを切っておくと塗りやすく、形状的(反射)に違和感がないです。

  1. まずナイフツール=(Knife) Kキー で肩の一番右側の青線の部分切っておきます。Enterで確定。
  2. Xの箇所を X→Dissolve Edge で辺を融解します。
  3. 黄緑の矢印のある辺の頂点を G+G でスライドして点線のところまで持っていきます。
  4. あとはナイフで図のように切ります。脇下は見にくいので Hキー(Hide) で非表示にできます。( Alt+H で再表示)
  5. 背面も同じようにつなげます。

袖や裾や襟の厚み

  • 袖は袖の底部分の面を選択して、 Iキー(Inset Face)→マウス動かして厚み分だけ内側にポリゴン配置して左クリック で確定。もう一度Iでほんの少し内側に作り、 G→Z→Z で袖の内側まで伸ばします。

  1. 裾の底は、ミラーにしていて中心部の厚みが要りませんので、C状に厚みを作ります。
  2. 裾の底の面すべてを選択して、 I で内側に拡張。
  3. 厚み部分を中心部に向かって Kキー→Enterで確定 を2本。
  4. Alt+右クリックで要らない辺をループ選択し、 X→Dissolve Edge で辺のみを削除します。
  5. 同じように作った内側で I→(K→Enter)x2→Alt+選択→X→Dissolve Edge でさらに内側を作り、 G→Z でTシャツ奥に移動
  6. 襟も裾と同じ要領で厚みを作ります。

微調整

背面等の素体は削除するので多少はみ出ても問題ありません。逆に素体を消さない袖や襟ははみ出ないようにします。

  1. 主に G、S、Alt+S 等を使って調整します。
  2. A→Ctrl+V で頂点メニュー出して、 Smooth Vetex で丸めます。メッシュが痩せてしまうので SAlt+S で少しボリューム出します。
  3. ミラーは中心部がX軸0に近い範囲にないと結合しないので、 S→X→0 でX軸に整列させて、 Nキー で出せる プロパティのMedian0 にします。
  4. 大胸筋は襟の部分から結構急に前に突き出す感じです。背面は広背筋の部分から盛り上がってます。

完成図

UVを開く

ミラーを残せるのでウェイトの後でもいいんですが、UVグリッドを作っておくとチェックしやすいので先にUV開きます。

ミラーを適用する。

Tabキー を押してエディットモードからオブジェクトモードに戻ります。
プロパティウィンドウのModifierからMirrorApply を押します。

UVシームを付ける。

Tシャツの裁断に合わせてUVシームを引きます。

  1. Ctrl+E で辺のメニュー出して、 Mark Seam でUVシームを付けていきます。
  2. 肩はぐるりと一周。横脇に一本、肩から脇に一本、底はいずれも円形につけます。


UVグリッドを適用


  1. 3Dビューの端っこの線上で 右クリック→Split Area でウィンドウを分割します。
  2. 右に作ったウィンドウのエディタータイプを UV/Image Editor にします。
  3. +ボタン を押して、画像を新規作成して、 Generated TypeUV Grid にしてOK。

  1. 左側の3Dビューに戻ってエディットモードで Aキーで全選択 し、 U→Unwrap でUVを開きます。
  2. 画像のように配置し直します。底の丸いのはどうでもいいのでまとめて、Tシャツ身頃と袖はスペース確保しやすいので片方反転して配置します。できるだけ解像度とりたいのでちょっと拡大。
  3. 3DView右のプロパティから Shading→Textured Solid にチェックを入れるとUVグリッドを表示できます。

ウェイトペイント用のスケルトンを用意する

次の作業に移る前にボーンの基礎知識の確認をします。

nifで扱っているボーンは実はただの点です。
nif skopeで見るとボーンの親と子でつなげてるだけで、丸いのがボーン本体です。
なので、素体みたいな親子関係でつながってないボーンを読むと、点なので横向きのボーンがでてきます。
ボーン通例、現実の骨みたいにメッシュに沿って入ってないと稼働しづらいです。なので素体についてるボーン以外でウェイト編集する必要があります。

nif pluginは親から子へ棒状のボーンを作ってくれるんですが、子が複数ある場合はその中間位置にボーンの先端を生成します。
これだと本来の位置とずれてしまうので、稼働に必要なボーン以外は全部要りません。たとえばQUIVERは矢筒の位置を決めるだけなので消します。

おおまかな手順
  1. 稼働するボーンだけのデータをnif skopeで作ります。
  2. 新たにBlenderを立ち上げて新規ファイルとして読み込んで保存。
  3. Tシャツのボーンにアペンド(コピペ)して持ってきます。

新規で読み込んでアペンドする理由
nif pluginはスケルトンの位置データをBoneExMatというテキスト情報に書き込んではじめて入出力が正しく行われるので、別のスケルトンを直接読み込むとテキストが上書きされて正しく出力ができなくなります。

nif skopeでスケルトン編集

何を残して何を消すかは装備によります。ウェイトが必要な箇所+1ツリーぐらいは残します。構成が近いmodやバニラのメッシュみてそれに必要なボーンはとっておきます。
例えば半袖Tシャツは上腕までウェイトに必要ですが、上腕の位置決定に前腕が必要なのでそこまでは残します。Tシャツのみなら下半身は全く不要です。
稼働に関係ないWeapon~とかMagicNodeとかは全部消します。
nif skopeは2.0 dev5を使ってます。以前のバージョンでも可。

  1. 解凍しておいた meshes\actors\character\character assets\skeleton.nif を読み込んだら nif skope で開く。
  2. スケルトンを表示させます。nif skope1.0系では不要な作業。
  3. Ctrl+Delete で不必要なノードを消していきます。
  4. 親のSkeleton.nifとNPC以外全部削除。
  5. Pelvisは下半身全部です。ズボン付きなら残します。その他の赤枠内は全部デストロイです。
  6. ここの赤枠部分は全く不要。
  7. Pauldronは肩甲骨なんですが常時未使用なので削除しましょう。Headは今回のケースでは不要なので消し。
  8. 手は今回不要なので消します。

インポート

  1. Blenderを起動します。
  2. A→A→X→Delete ですべて削除。 テンキー5 でパース切る。呪文のような初期化作業。
  3. File→Import→NetImmerse/Gamebryo(.nif) を選択。
  4. Align:Realign Tail Bone + Roll , Process:Skeleton Only にしてあとは画像のようにしてインポート。

  1. 表示が見づらいので プロパティウィンドウのDisplay を1.の画像のようにします。
  2. Tabキー でエディットモードにはいります。
  3. 大元の親ボーンの三つは不要なので、 NPC, NPC Root [Root], NPC COM [COM ] はX→Delete Bonesで削除します。ボーンの先端ではなくボーン全部選択しないと消せないので注意。

腕はツイストボーンという補助ボーンがあるので中途半端な位置になってしまうのでこれを直します。
  1. 前腕付け根の球体の部分を右クリックしてShift+S→Cursor to Selectedでカーソルを移動します。
  2. 上腕の先端の球体を選択して、Selected to Cursorでカーソルまでボーンの先端を移動させます。これで正しい位置に来ました。
  3. ここはTシャツは前腕関係ないのでやらなくてもいいんですが、同様に前腕も前腕の先端をTwist1の末端まで持っていきます。
  4. 反対側の腕もやっておきます。

ボーンの作成はこれで終わりです。 Ctrl+S でTShirtSkeleton等の名前を付けて保存しましょう。
こちらのBlenderはもう閉じてもいいです。

スケルトンの読み込み

TシャツのBlenderファイルに戻って、
  1. File->Append->先ほど保存したファイル(TShirtSkeleton.blend)->Object->skeleton.nif を選んで読み込みます。
  2. Tabキー でオブジェクトモードに入ります。
  3. Shiftキー 押しながら、Tシャツ→スケルトンの順に選択します。
  4. Ctrl+Pで Armature Deform With Automatic Weights を選びます。
  5. 素体のArmatureの設定(スケルトンと素体の紐づけ)もウェイト用のスケルトンに変更します。
    右側プロパティウィンドウから Modifier->Armature->Object:をMaleBody_1.nifからskeleton.nif に変更します。


ウェイトペイント

下準備

まず素体のTシャツに隠れる部分は不必要なので削除します。

  1. スケルトンを選択して、Poseモードに入ります。
  2. Tシャツをオブジェクトモードで選択し、 プロパティウィンドウのObject から Display->Maximum Draw Type:Wire にします。

  1. 素体を選択して Tabキー でエディットモードに入ります。ふんどしより下の足は残します。腕、首は埋まる部分も引っ張られたときに不自然なので少し残します。
  2. 上腕のボーンを選択して、 Rキー(+左クリック確定) で腕が回転するのでメッシュの突き抜けを確認して、余計な部分を削除します。
    ポーズモードの操作は R:回転、R+R:トラックボール回転、Alt+R:回転のリセット を覚えていれば何とかなります。
  3. 最終的にこんな感じになりました。ウェイト作業中にも削除できるのでこの段階で少し余らせておいてもかまいません。



ウェイトペイントの知識の確認

ウェイトとは、ボーンの可動に対して表面=頂点がどれだけ追従するかの設定です。正式名はボーンに対して表面なので スキン です。
頂点に対して色を塗ることでボーンがどれだけ追従するかの重み(ウェイト)を設定することがウェイトペイント(スキニング)です。
ボーンに完全に追従するのが数値だと 1.0 、色だと 赤色 で表示され、
逆に追従しないのが数値は 0.0 、色は 青色 です。

ボーンごとにウェイトを設定する必要があり、ウェイトはそのボーン名の Vertex Groups=頂点グループ に保存されています。
一方、頂点のほうは複数のウェイト値を持てます。その 合計値は常に1.0 にする必要があります。※どのボーンにも追従しないとその場に置いて行かれるため
複数のウェイト値を持てるので、たとえば変なでっぱりがあって肩(鎖骨)のボーンのウェイト値を直しても直らない場合は、上腕のウェイト値がおかしい場合もあります。
子ボーンは親ボーンの回転(移動)の影響を受けるので、基本的に末端から始めたほうがいいです。例えばTシャツならUpperArmTwist2

おおまかな作業工程

  1. ウェイト用のボーンを動かす。たとえば、上腕のボーンを R で動かし腕を上げる。
  2. この時に変にでっぱる部分をペイントでなだらかにする。
  3. これを人間の可動しうる(モーションでありそうな)範囲で回しながら修正を続ける。
  4. Normalize All で頂点のウェイト値の合計を1.0にする。
  5. このサイクルをすべての可動ボーンでこなす。ひたすら確認と修正を繰り返します。

実践

  1. Tシャツを選択して、 Ctrl+Tab でウェイトペイントモードに入ります。
  2. まず左右対称に編集したいのでツールシェルフ( Tキー開閉 )の X mirror をチェックします。
  3. 肩のボーンを Rキー(+左クリックで固定) で持ち上げると裾の方まで持ち上がるので、これを直します。
    Zキー を押すと確認しやすいです。

  1. ツールシェルフ(T)のTools→Brush の設定を1.画像のようにWeight0、Strength1にします。
    Mixブラシ は標準的なブラシでウェイト設定値より塗る場所のウェイトが低いときは上げ、逆にウェイトが高い場合は下げます。
  2. でっぱった部分を塗っていきます。塗ったのにかかわらず完全に直らない場合があります。
これは一頂点に対して、複数のボーンのウェイト値を保持できるからです。
前述のとおり子ボーンの移動も影響受けるので子ボーンに問題がありそうです。

  1. 確認するには、 Vキー で頂点マスクモードに入ります。頂点マスクモードは選択した頂点しかウェイトが適用できません。 CやBキー も使えます。頂点マスク中はボーンが選択できないので注意してください。
  2. 裾のでっぱりを一つ選んで3DViewのプロパティ(Nキー)→Vertex Weightsにその頂点に設定されたウェイト一覧が出ます。
  3. UpperArmのTwist含めて3つ要らないので、全部×を押して消します。
  4. ForeArm=前腕3つはTシャツでは使わないので、これはVetex Groupsごと消します。
  5. プロパティウィンドウのData→Vertex Groupsーボタン を押して消します。

UpperArmTwist2

次に上腕UpperArmの子であるUpperArmTwist2と1を対処します。
名前の通り上腕のねじりのための補助ボーンです。

  1. Twist2の袖底の中心が赤いですが、ここが赤い必要性はないので、これを周りの緑色に合わせます。
  2. 周りの緑部分にカーソルを合わせて Ctrl+左クリック でスポイト。そのカーソルを置いた箇所のウェイト値をコピーできます。
  3. 以下のような感じで塗ります。
  4. ここでUpperArmのボーンを選択すると、ちょうど 1.0-元のUpperTwist2 ウェイト値になっています。

これは自動ウェイト時に袖の頂点のウェイト合計値は1.0=UpperArm+UpperTwist2になっているからです。
Twist2を0.410で塗ってるので1.0 - 0.410 = 0.590をUpperArmのウェイト値にしたいわけです。
塗るのはめんどくさいので Normalize All で、一頂点の合計値を1.0に統一できます。 Normalize All は選択中のボーンのウェイト設定を元にすべての頂点グループに1.0-選択ボーン=で計算します。

  1. Twist2のボーンを選択した状態 でツールシェルフの Normalize All を押します。
  2. UpperArmを確認してみると、自動で塗れてます。

UpperArmTwist1

次はUpperArmTwist1の作業をします。

  1. 袖の底部分はいらないのできれいにして、 Normalize All しておいてください。
  2. 袖が邪魔で作業がしにくいときは画像2.の赤枠のアイコンで面マスクモードに入ります。頂点マスクと似て選択面以外はウェイトペイントできません。
    選択面はHキーで非表示にできます。面マスク中でしか非表示にできません。

ゆがんだ箇所の修正はスポイトで拾ってStrengthを下げたMixブラシで何回かに分けて塗ってもいいんですが、周りになじませたいときはBlurブラシを使ってもよいでしょう。これは周辺の色になじむように塗るブラシです。
  1. ツールシェルフのTools→Brushの画像になってる部分を押して、 Blurブラシ を選択します。
  2. これで塗っていきます。
  3. 周りのウェイト値に合わせてなじみました。

UpperArm

次はUpperArmに行きます。

  1. 一見問題なさそうですが、背面を見ると、襟のほうまで引っ張られています。
  2. この辺は Mixブラシのウェイト0とStrengh1 で塗って直します。Twist1の方も襟まで影響してたのでそちらも塗って直します。
  3. 細かく引っ張られる部分が結構広範囲に出ていて、こういうのは Clean で一括削除できます。
  4. ツールシェルフ(T)->Weight Tools->Cleanボタン を押すと、その下のOperatorというのが出てくるのでLimitを上げていくとそれ以下のウェイト値のものは削除されます。

  1. ウェイトで直すのはでっぱり部分以外にもトポロジーが崩れてUVがゆがむのも対象です。
  2. 腕を上げたところ、赤く囲った部分の形が崩れて周辺のUVがゆがんでるのが分かります。
  3. これを Ctrl+左クリックのスポイト で周辺の色を拾って Strength0.2ぐらいのMixブラシ でポンポンと何回かに分けて塗ります。
  4. 周辺も微調整しておきます。
  5. 腕も一か所で固定されるわけではないのでボーンをR+Rでグリグリ動かして、変に破たんしてないか確認します。

最終的にはこうなりました。作業が終わったら必ず Normalize All しておきます。

素体の突き抜け

腕をあるポジションに持っていくと素体の腕の付け根が飛び出す箇所がありました。
ウェイトペイントではなく、素体のメッシュをいじって解決します。

  1. R+R で回して突き抜けている箇所で固定します。
  2. 素体のArmatureモディファイアの赤枠の場所を押すとエディットモードでも腕上げた状態で表示を固定できます。
  3. エディットモードに入り、腕の付け根の頂点を C、B、Ctrl+ドラッグ などで選択します。
  4. Oキー を押して、範囲編集モード(Propotional Edit、赤枠)に入り、 Sキー で縮小中にマウスのホイールで影響範囲を調整してはみでないように縮小します。
| | |

Clavicle

Clavicleは鎖骨です。

  1. Clavicleを動かすと素体と違う動きをして突き抜けてしまいます。
  2. 素体と似た塗り方すれば似た動きになるので、素体のほうの選択して、 Ctrl+Tab でウェイトペイントモードに入ります。
  3. Clavicleを見ると、首の付け根は青く追従しないようになっています。Tシャツの襟も追従しないようにする必要があります。
  4. 逆に言うと首の付け根は1-Clavicle(0.0)=NPC Spine2なので、こっちを直して、Normalize Allすれば肩の方も修正は済みそうです。

  1. Spine2のボーンを選択し、 テンキー7 でカメラを上からにし、面マスクモードに入ります。※頂点マスクモードだと貫通して側面を誤選択しやすいため
  2. C+マウスホイールで円の大きさを拡大して、襟より一回り大きく選択します。
  3. ブラシを Mixブラシ、ウェイトとStrengthを1.0 にします。
  4. 円の中心から Ctrl+Alt+ドラッグ で円のふちぐらいまで引っ張ると、 Radial Gradient=円状のグラデーション で塗ってくれます。
  5. Radial Gradientで二回塗るとちょうど襟回りを赤くできます。
  6. Normalize All で鎖骨の方も変更を適用します。

襟が固定されたために鎖骨のほうと段差ができてしまったので修正します。

  1. 肩を上げると肩が持ち上がりすぎてるので黄色の部分を周辺の緑ぐらいにします。
  2. 塗って直らない場合は Vキー で頂点マスクモードに入って、頂点を選んで3DViewのプロパティでウェイト割り当てを確認します。Spine2やTwist1やUpperArmの影響が強い可能性があります。
  3. 他のボーンも直しつつ適宜 Normalize All でならします。後ろは後ろ向きの可動に弱かったので範囲広めに塗ってます。

仕上げ

残りのボーンは自動ペイントでよさそうだったので修正なしです。

  1. Clavicleの修正でTwist1とUpperArmの兼ね合いを直して、少しがたついてしまったClavicleのウェイトをSmoothという機能で滑らかにします。
  2. Vキーで頂点マスクモードでなめらかにしたい箇所を選択します。
  3. ツールシェルフ→Weight Tools→Smooth ボタン押すと、効果が分かりにくいですが、グラデーション具合が滑らかになります。

最終的に微調整したのがこちら。Twist2は変わってないので省略。


出力

ウェイトがちゃんとできているかどうかの確認のために一旦出力してみます。

パーティション

パーティション(Partition)を設定します。
パーティション
パーティションはどこの部位と差しかえるかの設定です。たとえばこのチュートリアルでは元のボディを非表示にして、代わりにTシャツを表示しているので、SBP_32_BODYなわけです。
ウェイトとは関係ないですが、Vertex Groupsに記述が必要なのと、 Niftools Dismember Flags Panel にも記述が必要です。

Tシャツのパーティションを作る

ボディのパーティション名は SBP_32_BODY です。
  1. Tシャツをオブジェクトモードで選択します。
  2. プロパティウィンドウのData→Vetex Groups+ボタン を押して、新しくVetex Groupsを作ります。
  3. ダブルクリックでリネームできますので、 SBP_32_BODY に名前を変更します。
  4. Tabキーでエディットモードに入って、Aキーで全選択し、Weight:が1.000になっているのを確認してから、 Assignボタン を押します。※これをしないと出力でエラーになる

Tシャツのパーティションを設定する

  1. プロパティウィンドウ→Vetex Groupsより下の項目にある Niftools Dismember Flags Panel+ボタン を押して、新しくパーティションを作ります。
  2. 空欄をSBP_32_BODY、Start Net BonesetとEditor Visableにチェックします。

素体のパーティションを削除する

素体はデフォルトではパーティションが3つもついていて不要なので消します。消しておかないと手と足がずれます。

  1. 素体を選択します。
  2. プロパティウィンドウのData→Vetex GroupsSBP_38_CALVESSBP_34_FOREARMSーボタン を押して削除します。
  3. SBP_32_BODYを選んで、Tabキーでエディットモードに入って、Aキーで全選択し、Weight:が1.000になっているのを確認してから、 Assignボタン を押します。
  4. Niftools Dismember Flags Panelーボタン を押して、 SBP_38_CALVESSBP_34_FOREARMS を消します。

バージョンとシェーダー設定

  1. プロパティウィンドウのObject→Niftools Object Panel を以下のように設定します。 
  2. その下の Niftools Shader の設定も以下のようにします。必要なものだけ抜粋。Skinnedはウェイト付きモデルでは必須。

テクスチャとUV設定

  1. 画面分割で出したUV/Image Editorの UVGridをImage→Save As Image(F3) で保存します。形式は.pngか.tga。
  2. 今作成中のTシャツの.blendファイルがある フォルダ\Textures\clothes\TShirtとフォルダ を作っておきます。 ※Texturesフォルダにないとエラーの原因になる。
  3. Paint.NET等の.dds形式で保存できるソフトで先ほど保存したUVGridのイメージを開いて、Tshirt.ddsと名前を付けて先ほど作ったフォルダに保存。TexturesDX1ミップマップあり。
| |

  1. オブジェクトモードでTシャツを選択します。
  2. プロパティウィンドウ→MaterialNew を押して、マテリアルを作成します。
  3. プロパティウィンドウ→Texture→マテリアルテクスチャNew を押して新しくテクスチャを作成します。
  4. その下Imageの項目でOpenでTshirt.ddsを開きます。

  1. 読み込んだテクスチャパスが正しいか確認します。(Texturesフォルダが必ず含まれる)
  2. Mapping項目をMap:UV Mapを選びます。

スケルトンを戻す

ウェイトペイント用のスケルトンから、元の素体のスケルトンに付け替えます。

  1. オブジェクトモードでスケルトンとTシャツをShift+選択。(順番は関係なし)
  2. Alt+PでClear Parentを選びます。
  3. Tシャツ→素体の棒状のスケルトンの順でShift+選択してCtrl+Pで Armature Deform を選びます。
  4. 素体を選択して、 Modifier→Armature のObject:を MaleBody_1.nif に変更。

出力

Blenderから出力

  1. Tシャツと素体をShift押しながら選択します。
  2. File→Export NetImmerse/Gamebryo(nif) を選びます
  3. 設定は以下の通り。nif plugin for skyrimならデフォルトのまま。

nifskopeで肌シェーダーの変更

素体の部分のスキンシェーダーの出力が対応できてなくて、デフォルトの設定に戻るのでここは出力毎に直します。
※ここの設定をしないと肌が浅黒くなる。

  1. nifskopeでMaleUnderwearBody:0のツリーを開いて、その下にあるBSLightingShaderPropertyを開きます。
  2. Block DetailsのSkyrim Shader Type のDefaultの部分をダブルクリックして、プルダウンが右端に出るのでそれを開いて Skin Tint に変更。
  3. Shader Flags 1 もValueの部分をダブルクリックしてプルダウンを開き、 FaceGen RGB Tint にチェック。
  4. File+Save で保存します。

置き換えで確認

「料理人のチュニック」という服の置き換えで確認します。

  1. Skyrimフォルダ(MO等で仮想化してるなら仮想フォルダ)\Data\Meshes\clothes\chef\m をなければフォルダを作る。
  2. 出力したnifファイルを配置します。
  3. chef_1.nifでリネームします。

ゲームを起動して、
コンソールコマンドの player.additem 1bc82 1 で服を追加。
コンソールコマンドの Showracemenu男性の体重1.0 にしてから着ます。
ちゃんと表示されて、動いてみて破たんがなければ、とりあえず確認までは終了しました。

おつかれさまです。

またウェイトの修正する場合は、作業時にモディファイアのArmatureをskeleton.nifに戻すだけ。
出力もモディファイアのArmatureを素体スケルトンに戻して、nif出力後の肌シェーダーに直すだけ。

テクスチャ編はまた後日(ひと月ぐらい空く予定)
チュートリアルに関して、なにかございましたら管理人のtktkまで。ツイッターだとレスポンス速い。




添付ファイル