http-equiv="refresh" content="1;URL=//tktk1.net/skyrim/blog-category-.html"> http-equiv="refresh" content="1;URL=//tktk1.net/skyrim"> 髪作成のメモ - チュートリアル
髪メッシュの作成を方法メモしておいたのを少し整形して置いておきます。 少し古いので必ずkuromimiさんの自作髪型MOD:準備編【修正】を参照にしてください。

私のグーグルドキュメントに以下の2つの資料を公開してます。
こちらも合わせてお読みください。
髪のメモ カーブで髪の房を作る

髪のポリッシュとウェイトペイント
Blenderの導入やインポート・エクスポート方法はMod作成wikiのBlender導入を読んでおいてください。

作業を始める前に


とにかくリファレンスを集めます。
ヘアカタログを読んだり、文献を読んだり、実際に観察したり、
また他のmodやゲームではどうしているかをとにかくよく観察してください。
シルエット、髪の生え際、処理の仕方。
頭にないものからは具現化できません。
慣れないうちは特に、最も時間をかけてください。

必要なツール

  • Blender最新版(2.79。作業効率が圧倒的にいいので)
  • NifSkope 2.0
  • BSA Browser

必要なデータ


  • バニラのヘッドメッシュ
  • バニラの髪メッシュ

ファイルの抽出

BSA Browserでファイルの抽出をします。
できるだけ作りたい髪と同じような形や長さの髪を選びます。
女性顔メッシュ:data\meshes\actors\character\character assets\femalehead.nif
男性顔メッシュ:data\meshes\actors\character\character assets\malehead.nif
女性髪メッシュ:meshes\actors\character\character assets\hair\female
男性髪メッシュ:meshes\actors\character\character assets\hair\male

nifインポート

・Blenderでの作業


Blender2.79を起動します。
インポートは
[File] > [Import] > [NetImmerse/Gamebryo(.nif & .kf & .egm)]です。
設定はそのままで読み込みます。

髪作成

板ポリから作る方法で作ります。左右に別れて生え際が縦に長い髪に向いてます。 頭:Female.nif→Object→FemaleHead
髪:髪のnif→Object→髪オブジェクト
オブジェクトモードで右クリックで頭のオブジェクトを選択します。

Nキー押して画面右にPropetiesを出してTranslationのXYZを全部0にします。
髪も同様に全部0に。
Propertiesの3DCursorをX0Y0Z1.3にします。
Shift+AでMesh→Planeを出します。
plane.png
テンキー7で上視点を移動させて、タブキーでEdit Modeに入ります。
Ctrl+R(ループカット)を押してから、辺の方に持って行くと紫の線が出るのでテンキーで9と打つか、マウスのスクロールで9本まで増やします。左クリックを二回押して確定します。
LoopCut.png
同様に横もループカットで9分割して碁盤目上に。

・ShrinkWrapとMirror

ShrinkWrapはサランラップのようなもので、ターゲットに指定したものの形にあわせて変形させるモディファイアです。
Aキーで頂点を全選択したあと、プロパティウィンドウからレンチマーク(Modifiers)を選んで、Add Modifierを開いて右から3列目上から10番目のShrinkWrapを選びます。
TargetをFemaleHeadに、Offsetを0.2にします。その他はそのままで。
mod_shrinkwrap.png
頭の形に合わせて板ポリが変形しました。
plane_shrinkwrap.png
Aキーで全選択を解除して、Bキーの矩形選択ツールで板ポリの右半分を選択してXキー→Verticesで削除します。
Aキーで板ポリを全選択して、またAdd Modifierから右から2列目上から8番目Mirrorを選びます。
これで、X軸を挟んで左右対称になります。一々両側編集しなくて済むので作業時間が半分になります。

・髪のベースを作る

「Oキー」押してPropotional Edit(他の頂点も一緒に動く機能)をオンにして、FalloffをSharpに設定します。
PropotionalEdit_Sharp.png
「Ctrl+テンキー1」で正面に向けてからテンキー8で一回押して、斜め上から縦の先が見える状態にしておきます。
ここで右端の縦線にカーソルを合わせて「Alt+右クリック」でループ選択します。
loopselect.png
「Gキー」を押して、ホイールで他の頂点も動かす範囲を調整してから下に引っ張ります。
左クリックで確定
 hair_GrabDown.png
下の方ほどポリゴンがかくかくしてるのでCtrl+Rのループカットで適度に分割します。
Altキーのループ選択とGキー二回押しの頂点スライドをうまく使って辺と辺の位置を均等に調整します。

hair_topology.png
これぐらいのポリ数が扱いやすいと思います


これでベースは完成です。
タブキー押してオブジェクトモードに戻り、ShrinkWrapをApplyで適用
します。
ミラーはそのまま残しておきます。

・スカルプトで調整

スカルプトとは粘土細工のように持ったり削ったりできます。
まずSculpt Modeに入ります。

sculptmode.png
Tキーでツールシェルフを開いて、ブラシを選びます。
sculpt_brush.png
Clay(Cキー)で盛り上げてからSmooth(Sキー)でならすと綺麗にできるかもです。
モディファイアでミラーしてる方は調整できないので注意。
円の半径の調整は[ ]キーまたはFキーで大小の調整ができます。
効果の強さはツールシェルフのStrengthかShift+Fキーで調整できます。
あとは中クリックでグリグリ回しながら微調整します。
生え際とか毛先はループ選択にGキーのがやりやすいのでたまにエディットモードと合わせて微調整していきます。
 tuningwithsculpt.png
だいぶ髪っぽくなりました

・Bsurfaceで前髪を作る。

BsurfaceとはBlender標準搭載のアドオンで、GreasePencilという線を引く機能で面を生成します。
詳しくは Bsurfaces 1.5 ヘルプの日本語訳にて。

使うにはアドオンをまずオンにします。
User Prefrencesを開きます。
userpref.png
Addonタブで左側Meshボタン押すとBsurfaces GPL Editionが絞れます。人のマークの右側のチェックを入れます。
Bsurfaces_Addon.png
3DViewに戻って、Nキーを押して右側にPropertiesを開いて、Grease Pencilのところをチェック入れて
Drawing Setting:を以下のようにSurfaceにします。これで既存メッシュの表面をなぞるように描けます。
 GreasePencil_N.png
髪のメッシュを選択してEditing Modeに入ってから線を引きます。
※Bsurfaceは何かしらのメッシュ選択状態でないと使えません。
線の引き方ですが、Dキー押しながら、左クリックしてそのままドラッグします。

Bsurface_Line.png
Tキーのツールシェルフを開いて、Add Surfaceボタンを押します。
Addsurface.png
線と線の間にメッシュが生成されます。(埋まってるのでGキーで引き出した)

Addsurface2.png
生成した直後に、ツールシェルフ下のBsurfaces add surfaceで
CrossとFollowでポリゴンの分割数の設定できます。弄ってみてください。
Bsurfaces_Addsurface.png
頭の形に沿うように線が引かれるので、耳周りや目にかかるような長い髪は向いてないですが、前髪や後ろ髪には使いやすいかもしれません。

・ポリゴンを分ける

ベースで作った髪は面積が大きいですからこれを短冊状に分割します。
個人的には縦3分割単位で分かるのがやりやすいです。

Alt+右クリックで縦方向にループ選択。そのあとVキー押すと分割できます。
マウスで位置を動かして左クリックで確定します。
sepalate.png
おんなじ要領で分割していきます。
dividemesh.png
後頭部の髪はBsurfaceで足して微調整してます。
髪を分けると選択しづらいと思うので右クリックで頂点選択して、その頂点のCtrl+Lで短冊全部選択できます。
Propotional EditのConnected(短冊単体のみ影響)と移動(G)や回転(R)、拡縮(S)を使ってランダム感を出して、短冊の真ん中をループ選択にAlt+Sで少し盛り上げるとそれっぽくなります。


続きは準備中

髪エクスポート
・Blender最新版での作業

ウェイトのコピーをします。
元にする髪ファイルをオブジェクトモードで選択。そのあとコピーする作成した髪を選択。
モードをウェイトペイントモードにします。
Tキーで画面左側にツールシェルフを出し、Weight ToolsからTransferWeightで押します。
7w3s0sq3.jpg
作った髪を選択してObject DataにVertex Groupsがあったら成功。

vertex groups

マテリアルをつける

Propertiesウィンドウからマテリアル→Newを押します。
materialnew.png
右隣のボタンのTextureでもNewを押します。
TypeをImage or Movieにします。
Imagesを選びます。マテリアルのテクスチャは最終的に使わないのでなんでも構いません。
MappingのCoordinates:をUVにその下Mapも作ったUVを選んでください。
 materialtex.png

VertexColorsをつける

Vertex Colorsのところで+ボタンを押すだけです。画像のようにColっていうのが出たら成功です。
実際に頂点カラーは塗りませんが、これがないと髪が正しく表示されません。
vertexcolors.png
・両面化
このままだと片面しか表示されないので、メッシュを複製して裏返します。
この作業の前の段階で別名で保存しておくのをおすすめします。
というのも両面化したあとにメッシュ編集に手間がかかるからです。
片面で編集→出力作業するときだけ両面化します。

EditモードでAキーで髪を全部選択します。※全面両面化すると単純に4倍重くなるので見えない部分は選択解除しておくと軽量化できます。
Shift+Dで複製します。(2.70)Tキーでツールシェルフを出してShading UVsタブにあるNormal:Flip Directionで面の向きを反転します。
・再作業時の注意点
一発でOKということは稀で手直しする必要があります。
必ず片面の状態で保存しておきます。
マテリアルをつけると3D View時のテクスチャが透過しなくなります。作業時にはマテリアルを消しておきます。
新規に板ポリ追加する場合はウェイトはコピーし直しします。複製はウェイトもコピーされるので不要です。
VertexColorは特にじゃまにならないので一回設定したらそのままで。

これでスケルトンだけ読み込んで選択した髪につけました。

Blenderからnifに出力します。
力する髪を選択した状態でFile > Export > Netlmmerse/Gamebryo (.nif & .kf & .egm)でスクリプトを起動。

HairLineの作成

半透明のテクスチャ同士で重ねた時に頂点の順序によっては後ろが透過してしまうのを通称アルファ病と言って髪を作る上では悩ましい問題でした。
バニラの髪がそうなんですが、透過情報を扱うNiAlphaPropertyのFlagsによってはアルファ病が出ないんですが、毛先がギザギザしてしまって美しくなりません。

しかし、毛先もきれいに透過できてアルファ病にも悩まされない方法が生まれました。(Apacchi Sky Hairがこの方法なのでアパッチ法と勝手に呼んでます)

半透明の髪と全く形状が同じ不透明な髪(HairLine)をふたつ表示することで回避できます。

エクスポートが終わって編集が済んだ髪のnifを開き、NiAlphaPropertyのFlagsを4844 Threshold を200にします。
あとは別名で保存します。例:Hairline〇〇.nif


※ただし表面と裏面x2で4倍のポリゴン数になってしまいバニラの髪に比べると激重です。
多くの髪Modで元になっているSims Modの髪はポリゴン数が多いので尚更。
Showracemenu PreCacheKillerが出るまでCTDが多発したのもそういう理由です。

CKに登録
CK起動前にMeshes下のどこかにフォルダを設置して、中に髪のファイルを入れておきます。

CKを起
動して、File->Dataを開き、Skyrim.esmをダブルクリックしてチェックを入れ、OKで読み込みます。
エラーは全部キャンセルします。

・HairLineを登録

Character->HeadPartsで元にしたいHairLineを選んで右クリックでDupicateします。
(人間種族の女性だったらHairLineFemaleNord01などを選びます)
Duplicateしたのを開きます。
HairLineで大事なのはHairLineTypeがMiscなのとIs Extra Partにチェックが入ってること。
ModelをEdit押して作ったHairLineのファイルを指定します。
Triがついてる場合はEdit→Edit→キャンセルで外しておきます。
最後にIDを変えてからOK押します。
新しいオブジェクトとして作りますかと聞いてくるので必ず「いいえ」→次に設定を引き継ぐかどうかで「はい」で。

headparthairline.png

同様にCharacter->HeadPartsで元にしたいHairを選んで右クリックでDuplicateします。
Duplicateしたのを開きます。
Extra Parts内で右クリックしてNewをおして、作ったHairlineを指定します。
ModelをEdit押して作った髪を指定します。
OK押して確定してからいいえ→はい。

headparthair.png
Valid Racesが髪を適用する種族です。FormListにどんな種族が登録されるか記載されてます。
以上で髪の登録は終了です。
あとはespに名前をつけて保存してください。

Blender Export時に失敗しやすいポイント

■BSDismemberSkinInstanceがついてない。SkinInstanceはウェイトの情報が格納されている。
→考えうる原因

・Export時にExport Dismember Body PartsがONになってないです。
・ウェイト付けてないです。肩にかからない短髪はHeadは赤(1.0)一色、Spineが青(0.0)で。
Blender最新のだとボーンウェイトコピーがないのでTransfar Weights使う。


・Vertex Group名が違う
髪は大体NPC Head [Head]、NPC Spine2 [Spn2]、SBP_131_HAIR(BP_TORSO)のVertex Groupが必要
元にする髪によってはNPC L Clavicle [LClv]、NPC R Clavicle [RClv]がつく。


・ボーンのParent設定してない
髪を選択したまま、Importから髪を直接読み込みます。

■SkinInstanceがついていてもウェイト情報が抜ける
→マテリアルとテクスチャがついてない。マテリアル設定は使わないのでなんでもいいです。
■髪が伸びる
→BSDismemberSkinInstanceの設定が正しくない。ウェイトとスケルトンが一致しないと発生する。ウェイトコピーした髪のスケルトンなら失敗しないです。
■髪が表示されない
→NiTriShapeData内のVertex Colorsがついてない。
→NiNodeの一番最初(0番)がScene Root。これは不要なので右クリック→Block→Deleteしておきます。
関連記事
  • このエントリーをはてなブックマークに追加



質問はDiscordツイッターだとすばやく回答できます。
コメント
名無しさん2018.02.24 00:31

tktkさん回答ありがとうございます
明日確認してみようと思います。

tktk2018.02.23 23:50

>名無しさん
hdt髪は作ったことないですけど、髪のメッシュをNifskopeで開いて、NiStringExtraData(HDT Havok Path)のData→Dataにファイルパスがあります。

名無しさん2018.02.23 23:22

質問なんですが、hdtの髪型の場合どこにxmlファイルを置けばいいんでしょうか?
hdt本体とは別のところに配置してる人がいたのですが指定のやり方とかよく分からないです。調べてもヒットしないので困ってます。

名無しさん2014.04.10 12:07

すみません解決しました。
nifskopeのツリーが変だったみたいです。
ありがとうございました。

名無しさん2014.04.10 11:53

うーん・・・髪の造形には拘らずに手順どおりに作ってみて導入してみたのですがゲーム内だとつるっぱげになっちゃいます。
髪が表示されない原因は記事内でも書かれていますがNiTriShapeData内のVertex Colorsがついてない以外にあるのでしょうか?

Elk2014.04.06 18:27

あ、説明が足りなかったようですみません。
いまは、まずは整形への第一歩で、今後のフォロワー化のことも含め、Skyrim内にて新規マイキャラをECEで作ってみようかとおもっていました。
いままでの使用ががRace Menuでしたので、インストール方に戸惑っていた次第です。
何度もすみませんでした。
ECEでのキャラメイク後程試してみますね^^
ありがとうb

tktk2014.04.06 16:43

>Elkさん
ご自身の入ってるスケルトンを選ぶんですが、UNPはバニラのスケルトンですのでRealistic Ragdoll Normalを選びます。

Elk2014.04.06 13:17

なるほど~。
そうでしたか、勘違いしてすみませんでした。
ついでにお伺いしてもよろしいでしょうか?
髪型ではなく、ECEについてですが、Realistic Ragdoll NormalとUNPとの選択等がインストール時にでますが、両方を使用している場合は、どちらを選べばよいか、tktkさんはご存知でしょうか?
お時間のある際にでも構いませんので、よろしければお返事くださいませ。
こちらで質問して御免なさい。
今現在は、めざせミラ・ジョボビッチフォロワーという感じです!
では、よい休日を^^

tktk2014.04.05 17:48

>Elkさん
Wrye BashはLeveled Listの競合用とウィザードの作成のためにいれてあるんですが使ってません。検証のためには仮想化できるMOが使いやすそうなんですが、不精なのとMod作成時にMO固有の問題もあるようで移行には至ってませんねー

Elk2014.04.05 03:55

深夜帯になりますが、ご返信の方誠にありがとうございます。寝起き後のトイレ後、目が覚めてしまいました(汗)
隠し立てするような件ではなかったですねw

WBとNMMとの併用ですね^^
参考になりました。
OSのインスト等、一切合財やり直しているので、実践まで、もうしばらくかかりそうです。
tktkさん、どうもありがとう。

tktk2014.04.05 01:31

>管理人のみの方
基本的には手動ですが、espの管理ではNMM使ってますね。入れてるmod自体少ないのでファイル構成は全部覚えてます。最近では競合しなそうなフォロワーmodとか装備modは7zごとNMMに突っ込んでます。

-2014.04.04 21:37

このコメントは管理人のみ閲覧できます

tktk2014.03.30 14:48

>TMさん
ありがとうございます。意外なところで役に立つものですね。

TM2014.03.29 22:18

紹介されてたアパッチ法でnumenumeHairの禿を直せました!参考になります。