鉛筆を作る >> サイコロを作る >> Tシャツを作る
モデリング入門チュートリアル第3弾です。
一番難度が高いので、まずは前の二つのチュートリアルでBlenderの操作に慣れておくのをおすすめします。
モデリング入門チュートリアル第3弾です。
一番難度が高いので、まずは前の二つのチュートリアルでBlenderの操作に慣れておくのをおすすめします。
目的
ウェイト付きモデルの作成方法を学ぶことを目的としてます。
お題
男性のTシャツを作りたいと思います。スカイリムは胴体と脚で一体のメッシュになっているので、ズボンも作らないとTシャツ+ふんどしの大変シュールな絵面になるんですが、それも一興ということで。
使うソフト
考える
資料を集めて、観察してイメージを固めます。
全部で表・後・左右袖・首の全部で5枚の布
裾と袖の折り返す部分はステッチが2本。
脇や袖のつなぎ目はステッチが出ない。
裾と袖の折り返す部分はステッチが2本。
脇や袖のつなぎ目はステッチが出ない。
素体
基準となるボディのメッシュが必要です。これを素体と言います。
スカイリムのボディは重量スライダーの最低値の0←→最高値の1に準じて、
スカイリムのボディは重量スライダーの最低値の0←→最高値の1に準じて、
メッシュも最低値のxxx_0.nifと最高値のxxx_1.nifの2つ用意する必要があります。
0と1の間はゲーム内で自動的に補完されます。そのため、補完された時に破綻しないのが重要です。
0と1の間はゲーム内で自動的に補完されます。そのため、補完された時に破綻しないのが重要です。
テクスチャが伸びるより縮むほうが問題にならないので1の方から作ります。
ボディメッシュが男性の場合は元の身体の造形にはあんまりとらわれずに、素体が服を突き抜けてもいいですから
完成品としてのシルエットの良さを重視してください。なんでかというと0と1の振れ幅が大きくて破綻しやすいのと、
筋肉造形に合わせすぎるとシルエットがもっさりしすぎてしまうためです。
※例えば映画のアイアンマンなどはシルエット重視で細めになってます。実際に着ようとすると難しいデザイン
完成品としてのシルエットの良さを重視してください。なんでかというと0と1の振れ幅が大きくて破綻しやすいのと、
筋肉造形に合わせすぎるとシルエットがもっさりしすぎてしまうためです。
※例えば映画のアイアンマンなどはシルエット重視で細めになってます。実際に着ようとすると難しいデザイン
どうやって作るか
Tシャツの作成方法で考えられるのは以下のとおり。
- プリミティブ(四角など)から押し出しと分割で作る伝統工法
- いきなりスカルプト→リトポ
- 筒状に作ってShrinkWrapで素体に貼りつけて作る。
- 型紙みたいに作って布シミュレーション→リトポ
- 素体から複製してリトポ
今回はウェイト付きメッシュの作成方法を目的としてるので、きれいなトポロジーが作りやすい1で作ります。
準備
素体ファイルの解凍
- B.A.Eを起動します。
- File→Open FileからData\Skyrim - Meshes.bsaを選びます。
- Select Noneを押して全チェックを解除します。
- meshes\actors\character\character assets\フォルダから
malebody_1.nif
malebody_0.nif
skeleton.nifにチェックを入れます。 - Extractを押してフォルダに解凍します。
- 同様の手順で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に素体をインポートする
- Blenderを起動します。
- パースがかかってるのでテンキー5で戻す。
- インポート画面を開きます。File->Import->NetImmerse/Gamebryo (.nif)
- 左側のScale Correction Importを0.1で、その他チェックなしで、malebody_1.nifを選んでから、Import NIFを押して読み込みます。
※エラーが出ますが下着のテクスチャがないだけなのでお気にせず - 見にくいのでView Port ShadingをSolidにします。
![]() |
モデリング作業
ベースの作成準備
- 立方体を右クリックで選択します。
- 素体に埋もれると操作しづらいので常に手前に表示できるX-Rayを設定します。画面右端のプロパティウィンドウから立方体マークのObject→Display→X-Rayを選択します。
- 3DViewに戻ってTabキーを押してエディットモードに入ります。
- A→G→Z→10で立方体を上へ。コマンドの意味はそれぞれ全選択All→移動Grab→Z方向→10だけ移動
- Z→Bで底面の頂点4つを選択。
※Tips:Zキーはワイヤーフレーム表示の切り替えで、背面の頂点を選択できるので便利。選択はほかにCキーやCtrl+左ドラッグの投げなわ選択でも可。 - Zで表示を戻す。G→Zで腰まで下げる。Aで選択解除
![]() |
ミラー化
- 真ん中で分割します。Ctrl+Rでループカットモードになるので、上か下の辺にもっていくとピンクのラインが中央に表示されるので、左クリックで確定してください。
- 左半分削除します。Z→Bで左半分を選択してX→Verticesで削除。
- Tabキーでオブジェクトモードに戻って、プロパティウィンドウのmodifierのmirrorを選ぶ。これで左右同時に編集できます。
![]() |
![]() |
ベースの作成1
- ループカットCtrl+Rをしてマウスのホイールで上方向に動かすと線が増えるので三つに分割線を増やし、横に三分割します。
- 3本ループの真ん中、ちょうどウエストのくびれに当たる部分をZ→Bで二つ選択してから、S→Xで少し縮小。その下のループも同様にS→Xで少し縮小。
- 一番上の右の辺を選択して、S→Yで少し縮小。
- 一番上の4つの頂点(面)選択して、Eキーで押し出し左クリックで確定。右側の辺だけG→Zで少し上げる。
袖を作ります。
- 一番上の段の右面を選択してEキーで押し出し。
- 押し出した立方体を①をX軸内側に、②もX軸内側に引っ張る。③はZ軸にあげる。
- 腕に沿うように斜めに底面をEキーで押し出します。
- 上部の首に当たる部分の面をE→Zで押し出し
- そのあと、でっぱりをなだらかにします。
- この辺から、徐々に素体に合わせて微調整します。Alt+右クリックで辺をループ選択して、GGでスライドできます。G→Z等駆使して全体的に位置を下げます。
- サイドは横から見て面選択、S→Yで台形になるように調整。
これで第一段階のベースづくりは終わりました。なんとなくTシャツっぽくなりました。


ベースの作成2
さらに分割していき徐々に丸くしていきます。
- ループカットCtrl+Rで図1.のように分割
- Transform OrientationをNormalに変更、G→Z→Zで肩を法線方向に出っ張らせます。
- 上から見て首から放射状になるように微調整。
ここで一回素体を見ると、腕がちょうどAの字のように斜めになっているのが分かります。これがAスタンスです。
トポロジーのラインは大胸筋から肩にかけて斜めになっています。これが胴体に垂直、地面に平行だと肩を上げたときにポリゴンがつぶれてしまいます。
トポロジーのラインは大胸筋から肩にかけて斜めになっています。これが胴体に垂直、地面に平行だと肩を上げたときにポリゴンがつぶれてしまいます。
- AスタンスとTスタンス
- 腕がちょうどAの字のように斜めになるのがAスタンス、胴体に垂直にまっすぐTの字に伸ばすのはTスタンスです。Aスタンスは自然な肩が表現できる代わりにウェイトペイントやアニメーションはやや難度高くなります。Tスタンスは分かりやすいものの、腕を下した状態だとやや不自然ですが、肩を頻繁にあげる動きの激しい格闘ゲーム等ではTスタンスが採用されたりします。
- トポロジー
- トポロジーはポリゴン構成のことで、要はポリゴンの流れです。きれいなトポロジーというのは伸縮に耐えられる形状といっても過言ではないです。人体であれば筋肉は収縮しますので筋肉の流れに沿ったトポロジーは破たんしにくく、望ましいです。※例外あり
胴体と同じラインを赤くしてみました。ここの斜めの流れは保持したいです。
- 以下のようにCtrl+Rで分割します。
- ここでいったんタブキーでオブジェクトモードに戻り、ツールシェルフ(Tキーで開閉できる3DView左側に出るメニュー)のTools内のShading:Smoothをかけておきます。
- あとはできるだけ丸くするようにGやSキー、範囲編集のOキー(G,S+マウスホイール)を使って微調整します。腕部分は素体に合わせて全体的に後ろに下がります。
ベースの作成3
ベースメッシュの仕上げにかかります。
- 肩のUVシーム(Tシャツのシームもかねて)のラインに沿ってポリゴン分割したい
- 脇下は伸びるので多めに分割しておきたい
- 大胸筋の立体感が出せるラインを作っておきたい
- 袖や裾や襟の厚みを表現したい
肩の丸みが出ないので肩横からわき腹にかけてCtrl+Rでループカットを2本入れておきます。

肩脇下のポリゴン分割
ここがこのチュートリアルのモデリングで一番難しいところですが、肩と脇下のポリゴン分割を変えます。
Tシャツを着て腕を上げると脇下の生地部分も伸びますよね。同様に3Dモデルでも脇下にポリゴンの伸縮に耐えられるゆとりが欲しいです。
ついでに肩のシーム部分でポリゴンを切っておくと塗りやすく、形状的(反射)に違和感がないです。
Tシャツを着て腕を上げると脇下の生地部分も伸びますよね。同様に3Dモデルでも脇下にポリゴンの伸縮に耐えられるゆとりが欲しいです。
ついでに肩のシーム部分でポリゴンを切っておくと塗りやすく、形状的(反射)に違和感がないです。
- まずナイフツール=(Knife)Kキーで肩の一番右側の青線の部分切っておきます。Enterで確定。
- Xの箇所をX→Dissolve Edgeで辺を融解します。
- 黄緑の矢印のある辺の頂点をG+Gでスライドして点線のところまで持っていきます。
- あとはナイフで図のように切ります。脇下は見にくいのでHキー(Hide)で非表示にできます。(Alt+Hで再表示)
- 背面も同じようにつなげます。
袖や裾や襟の厚み
- 袖は袖の底部分の面を選択して、Iキー(Inset Face)→マウス動かして厚み分だけ内側にポリゴン配置して左クリックで確定。もう一度Iでほんの少し内側に作り、G→Z→Zで袖の内側まで伸ばします。
![]() |
- 裾の底は、ミラーにしていて中心部の厚みが要りませんので、C状に厚みを作ります。
- 裾の底の面すべてを選択して、Iで内側に拡張。
- 厚み部分を中心部に向かってKキー→Enterで確定を2本。
- Alt+右クリックで要らない辺をループ選択し、X→Dissolve Edgeで辺のみを削除します。
- 同じように作った内側でI→(K→Enter)x2→Alt+選択→X→Dissolve Edgeでさらに内側を作り、G→ZでTシャツ奥に移動
- 襟も裾と同じ要領で厚みを作ります。
![]() |
微調整
背面等の素体は削除するので多少はみ出ても問題ありません。逆に素体を消さない袖や襟ははみ出ないようにします。
- 主にG、S、Alt+S等を使って調整します。
- A→Ctrl+Vで頂点メニュー出して、Smooth Vetexで丸めます。メッシュが痩せてしまうのでSやAlt+Sで少しボリューム出します。
- ミラーは中心部がX軸0に近い範囲にないと結合しないので、S→X→0でX軸に整列させて、Nキーで出せるプロパティのMedianを0にします。
- 大胸筋は襟の部分から結構急に前に突き出す感じです。背面は広背筋の部分から盛り上がってます。
完成図
UVを開く
ミラーを残せるのでウェイトの後でもいいんですが、UVグリッドを作っておくとチェックしやすいので先にUV開きます。
ミラーを適用する。
Tabキーを押してエディットモードからオブジェクトモードに戻ります。
プロパティウィンドウのModifierからMirrorのApplyを押します。
プロパティウィンドウのModifierからMirrorのApplyを押します。
UVシームを付ける。
Tシャツの裁断に合わせてUVシームを引きます。
- Ctrl+Eで辺のメニュー出して、Mark SeamでUVシームを付けていきます。
- 肩はぐるりと一周。横脇に一本、肩から脇に一本、底はいずれも円形につけます。
UVグリッドを適用
- 3Dビューの端っこの線上で右クリック→Split Areaでウィンドウを分割します。
- 右に作ったウィンドウのエディタータイプをUV/Image Editorにします。
- +ボタンを押して、画像を新規作成して、Generated TypeをUV GridにしてOK。
![]() |
![]() |
- 左側の3Dビューに戻ってエディットモードでAキーで全選択し、U→UnwrapでUVを開きます。
- 画像のように配置し直します。底の丸いのはどうでもいいのでまとめて、Tシャツ身頃と袖はスペース確保しやすいので片方反転して配置します。できるだけ解像度とりたいのでちょっと拡大。
- 3DView右のプロパティからShading→Textured Solidにチェックを入れるとUVグリッドを表示できます。
![]() |
![]() |
ウェイトペイント用のスケルトンを用意する
次の作業に移る前にボーンの基礎知識の確認をします。
nifで扱っているボーンは実はただの点です。
nif skopeで見るとボーンの親と子でつなげてるだけで、丸いのがボーン本体です。
なので、素体みたいな親子関係でつながってないボーンを読むと、点なので横向きのボーンがでてきます。
ボーン通例、現実の骨みたいにメッシュに沿って入ってないと稼働しづらいです。なので素体についてるボーン以外でウェイト編集する必要があります。
nif skopeで見るとボーンの親と子でつなげてるだけで、丸いのがボーン本体です。
なので、素体みたいな親子関係でつながってないボーンを読むと、点なので横向きのボーンがでてきます。
ボーン通例、現実の骨みたいにメッシュに沿って入ってないと稼働しづらいです。なので素体についてるボーン以外でウェイト編集する必要があります。
nif pluginは親から子へ棒状のボーンを作ってくれるんですが、子が複数ある場合はその中間位置にボーンの先端を生成します。
これだと本来の位置とずれてしまうので、稼働に必要なボーン以外は全部要りません。たとえばQUIVERは矢筒の位置を決めるだけなので消します。
これだと本来の位置とずれてしまうので、稼働に必要なボーン以外は全部要りません。たとえばQUIVERは矢筒の位置を決めるだけなので消します。
おおまかな手順
- 稼働するボーンだけのデータをnif skopeで作ります。
- 新たにBlenderを立ち上げて新規ファイルとして読み込んで保存。
- Tシャツのボーンにアペンド(コピペ)して持ってきます。
- 新規で読み込んでアペンドする理由
- nif pluginはスケルトンの位置データをBoneExMatというテキスト情報に書き込んではじめて入出力が正しく行われるので、別のスケルトンを直接読み込むとテキストが上書きされて正しく出力ができなくなります。
nif skopeでスケルトン編集
何を残して何を消すかは装備によります。ウェイトが必要な箇所+1ツリーぐらいは残します。構成が近いmodやバニラのメッシュみてそれに必要なボーンはとっておきます。
例えば半袖Tシャツは上腕までウェイトに必要ですが、上腕の位置決定に前腕が必要なのでそこまでは残します。Tシャツのみなら下半身は全く不要です。
稼働に関係ないWeapon~とかMagicNodeとかは全部消します。
nif skopeは2.0 dev5を使ってます。以前のバージョンでも可。
例えば半袖Tシャツは上腕までウェイトに必要ですが、上腕の位置決定に前腕が必要なのでそこまでは残します。Tシャツのみなら下半身は全く不要です。
稼働に関係ないWeapon~とかMagicNodeとかは全部消します。
nif skopeは2.0 dev5を使ってます。以前のバージョンでも可。
- 解凍しておいたmeshes\actors\character\character assets\skeleton.nifを読み込んだら nif skopeで開く。
- スケルトンを表示させます。nif skope1.0系では不要な作業。
- Ctrl+Deleteで不必要なノードを消していきます。
- 親のSkeleton.nifとNPC以外全部削除。
- Pelvisは下半身全部です。ズボン付きなら残します。その他の赤枠内は全部デストロイです。
- ここの赤枠部分は全く不要。
- Pauldronは肩甲骨なんですが常時未使用なので削除しましょう。Headは今回のケースでは不要なので消し。
- 手は今回不要なので消します。
インポート
- Blenderを起動します。
- A→A→X→Deleteですべて削除。テンキー5でパース切る。呪文のような初期化作業。
- File→Import→NetImmerse/Gamebryo(.nif)を選択。
- Align:Realign Tail Bone + Roll, Process:Skeleton Onlyにしてあとは画像のようにしてインポート。
- 表示が見づらいのでプロパティウィンドウのDisplayを1.の画像のようにします。
- Tabキーでエディットモードにはいります。
- 大元の親ボーンの三つは不要なので、NPC, NPC Root [Root], NPC COM [COM ]はX→Delete Bonesで削除します。ボーンの先端ではなくボーン全部選択しないと消せないので注意。
腕はツイストボーンという補助ボーンがあるので中途半端な位置になってしまうのでこれを直します。
- 前腕付け根の球体の部分を右クリックしてShift+S→Cursor to Selectedでカーソルを移動します。
- 上腕の先端の球体を選択して、Selected to Cursorでカーソルまでボーンの先端を移動させます。これで正しい位置に来ました。
- ここはTシャツは前腕関係ないのでやらなくてもいいんですが、同様に前腕も前腕の先端をTwist1の末端まで持っていきます。
- 反対側の腕もやっておきます。
![]() |
![]() |
スケルトンの読み込み
TシャツのBlenderファイルに戻って、
- File->Append->先ほど保存したファイル(TShirtSkeleton.blend)->Object->skeleton.nifを選んで読み込みます。
- Tabキーでオブジェクトモードに入ります。
- Shiftキー押しながら、Tシャツ→スケルトンの順に選択します。
- Ctrl+PでArmature Deform With Automatic Weightsを選びます。
- 素体のArmatureの設定(スケルトンと素体の紐づけ)もウェイト用のスケルトンに変更します。
右側プロパティウィンドウからModifier->Armature->Object:をMaleBody_1.nifからskeleton.nifに変更します。
![]() |
ウェイトペイント
下準備
まず素体のTシャツに隠れる部分は不必要なので削除します。
- スケルトンを選択して、Poseモードに入ります。
- Tシャツをオブジェクトモードで選択し、プロパティウィンドウのObjectからDisplay->Maximum Draw Type:Wireにします。
- 素体を選択してTabキーでエディットモードに入ります。ふんどしより下の足は残します。腕、首は埋まる部分も引っ張られたときに不自然なので少し残します。
- 上腕のボーンを選択して、Rキー(+左クリック確定)で腕が回転するのでメッシュの突き抜けを確認して、余計な部分を削除します。
ポーズモードの操作はR:回転、R+R:トラックボール回転、Alt+R:回転のリセットを覚えていれば何とかなります。 - 最終的にこんな感じになりました。ウェイト作業中にも削除できるのでこの段階で少し余らせておいてもかまいません。
ウェイトペイントの知識の確認
ウェイトとは、ボーンの可動に対して表面=頂点がどれだけ追従するかの設定です。正式名はボーンに対して表面なのでスキンです。
頂点に対して色を塗ることでボーンがどれだけ追従するかの重み(ウェイト)を設定することがウェイトペイント(スキニング)です。
ボーンに完全に追従するのが数値だと1.0、色だと赤色で表示され、
逆に追従しないのが数値は0.0、色は青色です。
頂点に対して色を塗ることでボーンがどれだけ追従するかの重み(ウェイト)を設定することがウェイトペイント(スキニング)です。
ボーンに完全に追従するのが数値だと1.0、色だと赤色で表示され、
逆に追従しないのが数値は0.0、色は青色です。
ボーンごとにウェイトを設定する必要があり、ウェイトはそのボーン名のVertex Groups=頂点グループに保存されています。
一方、頂点のほうは複数のウェイト値を持てます。その合計値は常に1.0にする必要があります。※どのボーンにも追従しないとその場に置いて行かれるため
複数のウェイト値を持てるので、たとえば変なでっぱりがあって肩(鎖骨)のボーンのウェイト値を直しても直らない場合は、上腕のウェイト値がおかしい場合もあります。
子ボーンは親ボーンの回転(移動)の影響を受けるので、基本的に末端から始めたほうがいいです。例えばTシャツならUpperArmTwist2
一方、頂点のほうは複数のウェイト値を持てます。その合計値は常に1.0にする必要があります。※どのボーンにも追従しないとその場に置いて行かれるため
複数のウェイト値を持てるので、たとえば変なでっぱりがあって肩(鎖骨)のボーンのウェイト値を直しても直らない場合は、上腕のウェイト値がおかしい場合もあります。
子ボーンは親ボーンの回転(移動)の影響を受けるので、基本的に末端から始めたほうがいいです。例えばTシャツならUpperArmTwist2
おおまかな作業工程
- ウェイト用のボーンを動かす。たとえば、上腕のボーンをRで動かし腕を上げる。
- この時に変にでっぱる部分をペイントでなだらかにする。
- これを人間の可動しうる(モーションでありそうな)範囲で回しながら修正を続ける。
- Normalize Allで頂点のウェイト値の合計を1.0にする。
- このサイクルをすべての可動ボーンでこなす。ひたすら確認と修正を繰り返します。
実践
- Tシャツを選択して、Ctrl+Tabでウェイトペイントモードに入ります。
- まず左右対称に編集したいのでツールシェルフ(Tキー開閉)のX mirrorをチェックします。
- 肩のボーンをRキー(+左クリックで固定)で持ち上げると裾の方まで持ち上がるので、これを直します。
Zキーを押すと確認しやすいです。
- ツールシェルフ(T)のTools→Brushの設定を1.画像のようにWeight0、Strength1にします。
Mixブラシは標準的なブラシでウェイト設定値より塗る場所のウェイトが低いときは上げ、逆にウェイトが高い場合は下げます。 - でっぱった部分を塗っていきます。塗ったのにかかわらず完全に直らない場合があります。
これは一頂点に対して、複数のボーンのウェイト値を保持できるからです。
前述のとおり子ボーンの移動も影響受けるので子ボーンに問題がありそうです。
前述のとおり子ボーンの移動も影響受けるので子ボーンに問題がありそうです。
- 確認するには、Vキーで頂点マスクモードに入ります。頂点マスクモードは選択した頂点しかウェイトが適用できません。CやBキーも使えます。頂点マスク中はボーンが選択できないので注意してください。
- 裾のでっぱりを一つ選んで3DViewのプロパティ(Nキー)→Vertex Weightsにその頂点に設定されたウェイト一覧が出ます。
- UpperArmのTwist含めて3つ要らないので、全部×を押して消します。
- ForeArm=前腕3つはTシャツでは使わないので、これはVetex Groupsごと消します。
- プロパティウィンドウのData→Vertex Groupsでーボタンを押して消します。
UpperArmTwist2
次に上腕UpperArmの子であるUpperArmTwist2と1を対処します。
名前の通り上腕のねじりのための補助ボーンです。
名前の通り上腕のねじりのための補助ボーンです。
- Twist2の袖底の中心が赤いですが、ここが赤い必要性はないので、これを周りの緑色に合わせます。
- 周りの緑部分にカーソルを合わせてCtrl+左クリックでスポイト。そのカーソルを置いた箇所のウェイト値をコピーできます。
- 以下のような感じで塗ります。
- ここで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-選択ボーン=で計算します。
Twist2を0.410で塗ってるので1.0 - 0.410 = 0.590をUpperArmのウェイト値にしたいわけです。
塗るのはめんどくさいのでNormalize Allで、一頂点の合計値を1.0に統一できます。Normalize Allは選択中のボーンのウェイト設定を元にすべての頂点グループに1.0-選択ボーン=で計算します。
- Twist2のボーンを選択した状態でツールシェルフのNormalize Allを押します。
- UpperArmを確認してみると、自動で塗れてます。
UpperArmTwist1
次はUpperArmTwist1の作業をします。
- 袖の底部分はいらないのできれいにして、Normalize Allしておいてください。
- 袖が邪魔で作業がしにくいときは画像2.の赤枠のアイコンで面マスクモードに入ります。頂点マスクと似て選択面以外はウェイトペイントできません。
選択面はHキーで非表示にできます。面マスク中でしか非表示にできません。
ゆがんだ箇所の修正はスポイトで拾ってStrengthを下げたMixブラシで何回かに分けて塗ってもいいんですが、周りになじませたいときはBlurブラシを使ってもよいでしょう。これは周辺の色になじむように塗るブラシです。
- ツールシェルフのTools→Brushの画像になってる部分を押して、Blurブラシを選択します。
- これで塗っていきます。
- 周りのウェイト値に合わせてなじみました。
![]() |
UpperArm
次はUpperArmに行きます。
- 一見問題なさそうですが、背面を見ると、襟のほうまで引っ張られています。
- この辺はMixブラシのウェイト0とStrengh1で塗って直します。Twist1の方も襟まで影響してたのでそちらも塗って直します。
- 細かく引っ張られる部分が結構広範囲に出ていて、こういうのはCleanで一括削除できます。
- ツールシェルフ(T)->Weight Tools->Cleanボタンを押すと、その下のOperatorというのが出てくるのでLimitを上げていくとそれ以下のウェイト値のものは削除されます。
- ウェイトで直すのはでっぱり部分以外にもトポロジーが崩れてUVがゆがむのも対象です。
- 腕を上げたところ、赤く囲った部分の形が崩れて周辺のUVがゆがんでるのが分かります。
- これをCtrl+左クリックのスポイトで周辺の色を拾ってStrength0.2ぐらいのMixブラシでポンポンと何回かに分けて塗ります。
- 周辺も微調整しておきます。
- 腕も一か所で固定されるわけではないのでボーンをR+Rでグリグリ動かして、変に破たんしてないか確認します。

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

素体の突き抜け
腕をあるポジションに持っていくと素体の腕の付け根が飛び出す箇所がありました。
ウェイトペイントではなく、素体のメッシュをいじって解決します。
ウェイトペイントではなく、素体のメッシュをいじって解決します。
- R+Rで回して突き抜けている箇所で固定します。
- 素体のArmatureモディファイアの赤枠の場所を押すとエディットモードでも腕上げた状態で表示を固定できます。
- エディットモードに入り、腕の付け根の頂点をC、B、Ctrl+ドラッグなどで選択します。
- Oキーを押して、範囲編集モード(Propotional Edit、赤枠)に入り、Sキーで縮小中にマウスのホイールで影響範囲を調整してはみでないように縮小します。
|
|
|
Clavicle
Clavicleは鎖骨です。
- Clavicleを動かすと素体と違う動きをして突き抜けてしまいます。
- 素体と似た塗り方すれば似た動きになるので、素体のほうの選択して、Ctrl+Tabでウェイトペイントモードに入ります。
- Clavicleを見ると、首の付け根は青く追従しないようになっています。Tシャツの襟も追従しないようにする必要があります。
- 逆に言うと首の付け根は1-Clavicle(0.0)=NPC Spine2なので、こっちを直して、Normalize Allすれば肩の方も修正は済みそうです。
- Spine2のボーンを選択し、テンキー7でカメラを上からにし、面マスクモードに入ります。※頂点マスクモードだと貫通して側面を誤選択しやすいため
- C+マウスホイールで円の大きさを拡大して、襟より一回り大きく選択します。
- ブラシをMixブラシ、ウェイトとStrengthを1.0にします。
- 円の中心からCtrl+Alt+ドラッグで円のふちぐらいまで引っ張ると、Radial Gradient=円状のグラデーションで塗ってくれます。
- Radial Gradientで二回塗るとちょうど襟回りを赤くできます。
- Normalize Allで鎖骨の方も変更を適用します。
襟が固定されたために鎖骨のほうと段差ができてしまったので修正します。
- 肩を上げると肩が持ち上がりすぎてるので黄色の部分を周辺の緑ぐらいにします。
- 塗って直らない場合はVキーで頂点マスクモードに入って、頂点を選んで3DViewのプロパティでウェイト割り当てを確認します。Spine2やTwist1やUpperArmの影響が強い可能性があります。
- 他のボーンも直しつつ適宜Normalize Allでならします。後ろは後ろ向きの可動に弱かったので範囲広めに塗ってます。

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

最終的に微調整したのがこちら。Twist2は変わってないので省略。
出力
ウェイトがちゃんとできているかどうかの確認のために一旦出力してみます。
パーティション
パーティション(Partition)を設定します。
- パーティション
- パーティションはどこの部位と差しかえるかの設定です。たとえばこのチュートリアルでは元のボディを非表示にして、代わりにTシャツを表示しているので、SBP_32_BODYなわけです。
ウェイトとは関係ないですが、Vertex Groupsに記述が必要なのと、Niftools Dismember Flags Panelにも記述が必要です。
Tシャツのパーティションを作る
ボディのパーティション名はSBP_32_BODYです。
- Tシャツをオブジェクトモードで選択します。
- プロパティウィンドウのData→Vetex Groupsの+ボタンを押して、新しくVetex Groupsを作ります。
- ダブルクリックでリネームできますので、SBP_32_BODYに名前を変更します。
- Tabキーでエディットモードに入って、Aキーで全選択し、Weight:が1.000になっているのを確認してから、Assignボタンを押します。※これをしないと出力でエラーになる
Tシャツのパーティションを設定する
- プロパティウィンドウ→Vetex Groupsより下の項目にあるNiftools Dismember Flags Panelの+ボタンを押して、新しくパーティションを作ります。
- 空欄をSBP_32_BODY、Start Net BonesetとEditor Visableにチェックします。
素体のパーティションを削除する
素体はデフォルトではパーティションが3つもついていて不要なので消します。消しておかないと手と足がずれます。
- 素体を選択します。
- プロパティウィンドウのData→Vetex GroupsのSBP_38_CALVESとSBP_34_FOREARMSをーボタンを押して削除します。
- SBP_32_BODYを選んで、Tabキーでエディットモードに入って、Aキーで全選択し、Weight:が1.000になっているのを確認してから、Assignボタンを押します。
- Niftools Dismember Flags Panelのーボタンを押して、SBP_38_CALVESとSBP_34_FOREARMSを消します。
![]() |
![]() |
![]() |
バージョンとシェーダー設定
- プロパティウィンドウのObject→Niftools Object Panelを以下のように設定します。
- その下のNiftools Shaderの設定も以下のようにします。必要なものだけ抜粋。Skinnedはウェイト付きモデルでは必須。
![]() |
![]() |
テクスチャとUV設定
- 画面分割で出したUV/Image EditorのUVGridをImage→Save As Image(F3)で保存します。形式は.pngか.tga。
- 今作成中のTシャツの.blendファイルがあるフォルダ\Textures\clothes\TShirtとフォルダを作っておきます。※Texturesフォルダにないとエラーの原因になる。
- Paint.NET等の.dds形式で保存できるソフトで先ほど保存したUVGridのイメージを開いて、Tshirt.ddsと名前を付けて先ほど作ったフォルダに保存。TexturesDX1ミップマップあり。
|
|


- オブジェクトモードでTシャツを選択します。
- プロパティウィンドウ→MaterialのNewを押して、マテリアルを作成します。
- プロパティウィンドウ→Texture→マテリアルテクスチャのNewを押して新しくテクスチャを作成します。
- その下Imageの項目でOpenでTshirt.ddsを開きます。
![]() |
- 読み込んだテクスチャパスが正しいか確認します。(Texturesフォルダが必ず含まれる)
- Mapping項目をMap:UV Mapを選びます。
スケルトンを戻す
ウェイトペイント用のスケルトンから、元の素体のスケルトンに付け替えます。
- オブジェクトモードでスケルトンとTシャツをShift+選択。(順番は関係なし)
- Alt+PでClear Parentを選びます。
- Tシャツ→素体の棒状のスケルトンの順でShift+選択してCtrl+PでArmature Deformを選びます。
- 素体を選択して、Modifier→ArmatureのObject:をMaleBody_1.nifに変更。
![]() |
![]() |
出力
Blenderから出力
- Tシャツと素体をShift押しながら選択します。
- File→Export NetImmerse/Gamebryo(nif)を選びます
- 設定は以下の通り。nif plugin for skyrimならデフォルトのまま。
nifskopeで肌シェーダーの変更
素体の部分のスキンシェーダーの出力が対応できてなくて、デフォルトの設定に戻るのでここは出力毎に直します。
※ここの設定をしないと肌が浅黒くなる。
※ここの設定をしないと肌が浅黒くなる。
- nifskopeでMaleUnderwearBody:0のツリーを開いて、その下にあるBSLightingShaderPropertyを開きます。
- Block DetailsのSkyrim Shader TypeのDefaultの部分をダブルクリックして、プルダウンが右端に出るのでそれを開いてSkin Tintに変更。
- Shader Flags 1もValueの部分をダブルクリックしてプルダウンを開き、FaceGen RGB Tintにチェック。
- File+Saveで保存します。
![]() |
![]() |
置き換えで確認
「料理人のチュニック」という服の置き換えで確認します。
- Skyrimフォルダ(MO等で仮想化してるなら仮想フォルダ)\Data\Meshes\clothes\chef\mをなければフォルダを作る。
- 出力したnifファイルを配置します。
- chef_1.nifでリネームします。
ゲームを起動して、
コンソールコマンドのplayer.additem 1bc82 1で服を追加。
コンソールコマンドのShowracemenuで男性の体重1.0にしてから着ます。
ちゃんと表示されて、動いてみて破たんがなければ、とりあえず確認までは終了しました。

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

おつかれさまです。
またウェイトの修正する場合は、作業時にモディファイアのArmatureをskeleton.nifに戻すだけ。
出力もモディファイアのArmatureを素体スケルトンに戻して、nif出力後の肌シェーダーに直すだけ。
出力もモディファイアのArmatureを素体スケルトンに戻して、nif出力後の肌シェーダーに直すだけ。
テクスチャ編はまた後日(ひと月ぐらい空く予定)
チュートリアルに関して、なにかございましたら管理人のtktkまで。ツイッターだとレスポンス速い。
チュートリアルに関して、なにかございましたら管理人のtktkまで。ツイッターだとレスポンス速い。
添付ファイル
- 00B3LoopCut.png
- 01B1ZBGZ.png
- 01B2LoopCut.PNG
- 01B3ShoulderLoop.PNG
- 01EXSBPBodyAssign.PNG
- 01SKShowSkeleton.PNG
- 01UVMirrorApply.PNG
- 01W2UpperArmFix.PNG
- 01WPoseMode.PNG
- 02B2GZZ.PNG
- 02B3ShoulderLoopBack.PNG
- 02EXSkinPartition.PNG
- 02LoopcutZBX.png
- 02SKDelete1.PNG
- 02UVSeam.PNG
- 02W2UpperArmFixClean.PNG
- 02WireDisplay.PNG
- 03B1Mirror.png
- 03B2Top.PNG
- 03B3I.png
- 03EXDeletePartition.png
- 03SKDelete2.PNG
- 03UVSplitArea.png
- 03W2Topology.png
- 03WCutBody.PNG
- 04B1LoopCut3.PNG
- 04B2AStanceTopology.PNG
- 04B2LoopCut.PNG
- 04B3IGZZ.PNG
- 04EXBodyAssign.png
- 04SKDelete3Weap.PNG
- 04UVEditor.png
- 04W2UpperArmFix.png
- 04WDeleteBody.PNG
- 05B1PinchedWaist.PNG
- 05B2Comp.PNG
- 05B3Knife.png
- 05EXDeletePartition.png
- 05SKDelete4HeadP.PNG
- 05SKDelete5Hand.PNG
- 05UVGrid.PNG
- 05W2ArmFix.PNG
- 05WX mirror.PNG
- 06B1Chest.PNG
- 06B3DissolveEdge.PNG
- 06EXVersion.png
- 06SKImport.PNG
- 06UVUnwrap.png
- 06W2ArmModifierFix.PNG
- 06WShoulderUp.PNG
- 07B1Clav.PNG
- 07B3bottomfinish.PNG
- 07EXShaderProperty.png
- 07SKImportFinish.PNG
- 07UVSet.PNG
- 07W2ArmOS.PNG
- 07WSetBrush.PNG
- 08B1SholderE.PNG
- 08B3NeckInner.PNG
- 08EXTexrureAsImage.png
- 08SKDisplay.PNG
- 08UVTexturedSolid.png
- 08WFixNeck.PNG
- 08WProblem.PNG
- 09B1ShoulderE2.PNG
- 09B3SX0.PNG
- 09EXExportDDS.PNG
- 09SKDeleteRoot.PNG
- 09WRadial.png
- 09WVertexmask.PNG
- 10B1ClavE.PNG
- 10B3Muscle.PNG
- 10EXNew.png
- 10SKArmCusorSnap.png
- 10WFixClav.png
- 10WVertexWeightProperty.PNG
- 11B1Shoulder.PNG
- 11SKForeArmCusorSnap.png
- 11W2Smooth.png
- 11WDeleteForeArm.PNG
- 12B1Comp.png
- 12B1Complete.PNG
- 12B3Comp.png
- 12SKFinish.PNG
- 12W2Fin.png
- 12WTwist2.PNG
- 13B1CompleteSide.PNG
- 13EXCorrectTexturePath.PNG
- 13SKParent.png
- 13WTwist2Painted.PNG
- 14EXSetUVMap.PNG
- 14WUpperArm.PNG
- 15ChangeArmature.PNG
- 15EXClearParent.png
- 15WNormalize.PNG
- 16EXSetParent.png
- 16WUpperArmNormalized.PNG
- 17EXChangeArmature.PNG
- 17WTwist1.PNG
- 18EXExportSetting.PNG
- 18WFaceMaskMode.PNG
- 19EXSkinTint.png
- 19WHideArm.PNG
- 20EXShaderFlag1RGBTint.png
- 20WBlurBrush.png
- 21EXFin.png
- 21WTwist1Before.PNG
- 22WTwist1Blur.PNG
- BAE.PNG
- Body.PNG
- ParentWithAutoWeight.png
- ShadingSmooth.PNG
- ViewPortShadingSolid.png
- XRay.PNG