「Nif Tips」の編集履歴(バックアップ)一覧に戻る

Nif Tips - (2014/07/07 (月) 02:47:27) の編集履歴(バックアップ)


NIF Tips



BSLightingShaderPropertyのデータ

Skyrimのマテリアル設定ノードであるBSLightingShaderPropertyについてのデータベースです。
自己発光やグロスの強さなど設定できます。

NifSkopeの解説

Nameのところにマウスを乗せておくと、その項目が何を意味するのか表示されます。
当然英語なのですがわかりやすいです。

ノード番号の変更

Ctrl+矢印キー下か上

ノードの追加

右クリック→Node→Attach Node

特定の部位(ノード)につける

右クリック→Node→Attach Node→NiStringsExtraData
NameをAttachT、DataをNamedNode&ノード名にする。
例えばNamedNode&NPC Head [Head]だとこれを追加したnifは頭につく(xyz軸の基準点が頭になる)。

BSDismemberSkinInstanceからNiSkinInstanceに変換

たまにオブジェクト(口や目など)がNiSkinInstance場合があって、これをあわせないと表示されなかったり乱れたりします。
NifSkopeでBSDismemberSkinInstanceを選択→右クリック→Block→Convert→NiS...→NiSkinInstance


nifskopeでのアニメーション調整

本格的なアニメーション改変は難しいですが、位置やサイズの調整ならできます。エフェクトの改造等にどうぞ。
弄りたい該当オブジェクト名を探る。3DView内のオブジェクトをクリックでBlock Listで該当オブジェクトが選択状態になるのでそれで。

Block Listのウィンドウ内のNiControllerManager→NiControllerSequenceのツリーを開く
BlockDetailsのウィンドウに移って編集したいオブジェクト名のControlled Blocks→Interpolatorの青矢印をクリック。
移動したツリー(NiTransformInterpolator)下のNiTransformDataを選択→Block DetailsのScalesが大きさ、Translationsが移動です。
Keys→Keysと開いてTimeが時間、Valueが大きさまたは座標軸です。
時系列順にKeysが並んでます。ここを変更してどのタイミングでどれだけ大きさ・移動を変更するか決めれます。
Timeが0.0秒の時にScalesのValueが1.0倍で、Time1.0秒で2.0倍なら、Time0.5秒は1.5倍になります。Keyがなくても勝手に補完してくれます。

表示/非表示のアニメーションノード

NiVisController→表示非表示のコントロール
直前のノードのNiBoolInterpolator→NiBoolDataでタイミングの編集可能。
KeysのところにTimeとValueがあるのでそこで。Value 1が表示、0が非表示です。

Staticオブジェクトのコリジョン作成

NifSkopeで生成できるコリジョンは自動生成なので、自由な形にすることはできません。ですが、いくつかのツールを併用して自由な形のコリジョンを作成する事ができます。
ここではすでに完成したNifファイルに、自由な形のコリジョンを追加する方法を解説します。
この方法ではStaticつまり建物やイス等の固定されたオブジェクトのコリジョンしかできません。
Staticオブジェクト以外のコリジョン作成はこの下の項目で解説します。
(Staticオブジェクト以外のテンプレート設定するとそのテンプレートのコリジョンが出力してしまいます。)

ツールの項目を参照に、ChunkMergeをダウンロードしてください。

コリジョンメッシュの作成

最初にBlenderでコリジョンメッシュを作成。Box等で簡単なコリジョンメッシュ用のモデルを作ります。

完成したらLogicからコリジョンの指定。

Objectから詳細の設定。

うまくコリジョンの設定ができていれば、Texturedモードでこのように表示されるはずです。


コリジョンとオブジェクトの両方を選択してMorrowind Nifでエクスポート。設定は下記の通り。


すでに完成しているNifファイルと区別するため、***Morro等の名前を付けておきます。

ChunkMergeによるコリジョンの差し替え。

ChunkMergeを起動。
  1. 最初にNif.xmlファイルを読み込みます。これはNifSkopeのフォルダにあるのでそれを指定。
  2. templateディレクトリの指定。自作Nifに近いSkyrimNifを選択。(StaticならStatic、ActiverならActiverのNif)
  3. TESV.exeを選択。


Nif-Fileは自作のNif(既存のコリジョン流用版)、Collision-Fileに先ほど出力したMorrowindのNif、Templateは自作したNifに一番近いファイルを指定。ChunkMergeはコリジョンメッシュのみをMorrowind Nifから移植するものなので、その他のコリジョンノードはSkyrimのものをそのまま利用します。ですので、Templateで指定するNifが重要になってきます。座れるイスのNifはmeshes/furniture下にあるので、今回はそれを指定しています。

Convertボタンを押してNif converted successfullyと表示されたら完成。
CKで配置し、F4キーでコリジョンの形を確認できます。


左が既存のコリジョン流用版、右が自作コリジョンです。
まだ開発途中のツールですので、エラーが起きる可能性もあります。バックアップをとりながら作業を進めていってください。

  • うまくいかない時
原因が全く不明ですが、Blenderで作ったコリジョンによってはNif converted successfully.まで辿りつけずに、途中で止まってしまう場合があります。
コリジョンを作りなおしてください。


動くオブジェクトのコリジョン作成

皿や果物などの動くオブジェクトのコリジョンを自由に作ることは出来ないですが、上記のStaticオブジェクトでコリジョンを生成してから、動くオブジェクトに改変することはできます。
上記Staticオブジェクトのコリジョン作成を参考にChunkMergeでnifにコリジョン移植するまで進めます。テンプレートは必ずイス(meshes\furniture\common\commonchair01.nif)等のStaticオブジェクトを指定してください。
※Staticオブジェクトではないテンプレートの場合はテンプレートのコリジョンを持ってきてしまいます。


形や材質の近いオブジェクトを探して用意します。(FO3 Archive等でSkyrim - Meshes.bsaから探す)
例えばティーカップを作ったなら、コップのnif(meshes\clutter\glazedcup01.nif)やジョッキ(meshes\clutter\dining set\basictankard01.nif)を元にします。

元にするnifのbhkRigidBodyの設定を動くオブジェクトにしたいnifのbhkRigidBodyT()の設定をほとんどすべて移植します。

合わせなくてもいいのは、Shape、TranslationとCenter(この2つは数値すべてを0にしないとコリジョンの位置がおかしくなる)です。
重要なのはInertia(イネーシャ、慣性)でここの設定をしないと風に流れるかのごとく等速直線運動繰り出します。

Massは物理エンジン上の重さ。ゲーム内で動きが軽すぎると思ったらここはいじっても良いです。
Motion Systemが基本的な挙動の違いを決めてます。
固定オブジェクトはMO_SYS_BOX_STABILIZED、動くのはMO_SYS_SPHERE_INERTIAがほとんどだと思います。

落としたり触ったりした時の音などのマテリアルの設定はbhkCompressedMeshShapeData→Chunk Materials→Chunk Materials→Skyrim Materialです。
bhkMoppBvTreeShapeもおそらく設定する必要があります。

例えばSKY_HAV_MAT_SOLID_METALを設定すると金属音(金属皿やゴブレットなどはこの設定)になります。



目安箱バナー