「Nifファイル作成」の編集履歴(バックアップ)一覧に戻る

Nifファイル作成 - (2012/10/01 (月) 22:15:17) のソース

*Nifファイルを製作する
ここではSkyrimで利用するためのNifを製作していきます。

#contents

**事前の準備
[[ツール]]の項目を参考に、それぞれ必要なソフト、プラグインを導入してください。
- [[NifSkope>http://sourceforge.net/projects/niftools/files/nifskope/1.1.0/nifskope-1.1.0-rc7-i686-w32.7z/download]]
-GIMP2
-- [[DDSプラグイン>http://code.google.com/p/gimp-dds/]]
-- [[ノーマルマッププラグイン>http://code.google.com/p/gimp-normalmap/]]
-Photoshopの場合は[[NVIDIA TEXTURE TOOLS FOR ADOBE PHOTOSHOP>http://developer.nvidia.com/content/nvidia-texture-tools-adobe-photoshop]]

**テクスチャをDDSで保存
モデルを出力する前に、先にテクスチャDDSを用意する必要があります。最低限必要なのは次の二種類です。
- ディフューズマップDDS(テクスチャを設定したメイン画像)
- ノーマルマップDDS(凹凸表現などのバンプマップ画像)

***ディフューズマップDDSを出力する。
うまくプラグインが導入できていれば、デフォルトのSkyrim DDSが開けるはずです。Texturesフォルダより、ドワーフの戦鎚のテクスチャファイル(dwarvenwarhammer.dds)を開いてみましょう。

#ref(dwarvenwarhammer.jpg,,Width=256)

これがドワーフの戦鎚のテクスチャファイルです。思ったよりずっと暗い事に気がつくはずです。Skyrimは反射が設定されている、武器等のテクスチャが暗めに設定されているようです。ディフューズマップDDSを出力する時には、Skyrimに合わせて暗く調整してから出力しましょう。
テクスチャ画像に50%グレーのレイヤーを置き、レイヤー合成を「乗算」にすると丁度良い暗さになります。

というわけで、テクスチャを調整したのがこちら。

#ref(Picohan.jpg)

元が明るすぎたので、50%グレーを二枚重ねにしてあります。これをDDSファイルとして出力。
出力先は、SkyrimのDATAフォルダです。

&bold(){skyrim\DATA\textures\weapons\} に &bold(){Picopicodds} 等のフォルダを作り、そこにDDS形式で保存。

#ref(img172.jpg)

形式はDXT1 no alpha、2D Texture、MIP Map GenerationはGenerate MIP mapsを選択。
これでディフューズマップDDSはできあがりです。

***Normalmap DDS
次はノーマルマップの出力です。こちらもまず最初にドワーフの戦鎚のノーマルマップを確認してみましょう。ファイル名はdwarvenwarhammer_n.ddsです。この***_n.ddsという形式がノーマルマップを表します。

#ref(dwarvenwarhammer_n.jpg,,Width=256)

これがドワーフの戦鎚のノーマルマップです。ディフューズマップテクスチャとはずいぶん様子が違いますね。この画像ファイルを元に、微妙な凸凹を表現しているわけです。ピコハンは特にノーマルマップが必要になるものではないのですが、Skyrimではノーマルマップが必須になっています。せっかくなので、ノーマルマップを利用するために柄の部分の表面を梨地仕上(細かなデコボコのある表面)にしてしまいましょう。

#ref(PicohanBump.jpg)

柄にあたる部分だけ選択して、フィルター等でノイズを作ります。ヘッドにあたる部分は白く塗りつぶしましょう。このグレースケール画像にnormalmapフィルターを適用します。

#ref(img176.jpg)

設定はScaleを2にして少しだけ強めにフィルタをかけます。

#ref(Picohan_n.jpg)

ノーマルマップができあがりましたので、これをさっきのディフューズマップDDSと同じフォルダに保存しましょう。設定はさっきと違い、形式にDXT5を選びます。ファイル名は必ず &bold(){***_n.dds} という形式にしましょう。

#ref(img177.jpg)

DDSにはいくつか規格があるのですが、大雑把にDXT1はアルファチャンネル無し、DXT5はアルファチャンネルあり。と覚えるといいでしょう。他の形式はSkyrimではほとんど使いません。アルファチャンネルがあると画像が重くなるので、アルファチャンネルを利用しない画像にDXT5は使用するべきではありません。

ディフューズマップDDSの場合、半透明や透明部分があるものにアルファチャンネルを利用します。ピコハンの場合は透明や半透明は利用しないので、DXT1を指定しました。しかし、ノーマルマップは後述する「反射マップ」のためにアルファチャンネルを利用します。そのため、ほとんどのノーマルマップDDSはDXT5形式で保存されています。

これでディフューズマップDDSとノーマルマップDDS、二つの画像ファイルが用意できました。
次はモデルの出力です。

**Blenderからの出力
画像が用意できたら、いよいよBlenderから出力しましょう。
と、その前に設定すべき項目があります。

***基準点の設定
まずはオブジェクトの中心点を確認します。Nキーを押してTransform Propertiesを表示させると気がつくのですが、座標とサイズ、角度の値がバラバラになっています。このまま出力するとゲーム内でサイズや位置がずれたり、今後の作業に支障が出るので、まずはこの値を整えましょう。
#ref(2012-09-21_1120.jpg)

****中心点の設定
まずは中心点を設定します。通常製作していくと中心点がどうしてもずれてしまいますので、これをゼロに再設定する必要があります。わかりやすいようにワイヤーフレーム表示にし、緑色のY軸と赤色のX軸の交差するあたりをクリックしてカーソルを移動。
Shift + Sキーでスナップメニューを表示、そこからCursor -> Gridで中心点にスナップ。
#ref(2012-09-21_1121.png)

おそらく一度では丁度交差する位置にスナップはしないと思うので、何度かクリック->スナップを繰り返して丁度カーソルが中心にくるように設定します。

カーソルが中心に来たらオブジェクトを選択、PanelsからEditingを選び、MeshタブからCenter Cursorをクリック。
#ref(2012-09-21_1122.png)

これでピンク色の中心点がカーソルと同じ位置(Y軸とX軸の中心)に設定されたはずです。Transform Propertiesでも座標が全てゼロになっています。
#ref(2012-09-21_1123.png)

****スケール・回転角の設定
次はスケール・回転角の再設定です。オブジェクトを選択した状態でCtrl + Aキーを押してメニューを表示、そこから「Scale and Rotation to Ob Data」を選択。これはサイズを1、回転角を0にリセットしてくれるコマンドです。
#ref(2012-09-21_1124.png)

これで基準点の設定は完了しました。
#ref(2012-09-21_1125.png)

この作業をしていないと後々問題がでてくるので、「上手に出力するためのおまじない」だと思って必ず作業しましょう。

***マテリアルの設定
次はマテリアルの設定です。ここで設定したマテリアルは実際には使用されませんが、Nif出力する時にマテリアルの項目が無いとうまく既存のNifに移植する事ができません。

Buttons WindowのShadingをクリックしてマテリアル設定画面を選択。Links and PipelineタブのLink to ObjectからAdd Newを選択してマテリアルをオブジェクトに追加します。

#ref(img181.jpg)

追加ができたら、詳細を設定するためにTexture buttonsをクリック。再度Add Newでテクスチャを追加し、Texture TypeをImageに設定。

#ref(img182.jpg)

すると右隣に二つほどタブが追加されます。
ImageタブのLoadをクリックして、先ほどDDSで保存したメインDDSを指定。(これは他の適当な画像でも問題ありません)

#ref(img183.jpg)

では、Shadingボタンを押して先ほどの画面に戻りましょう。
ここのMap InputタグからUVを選んでマテリアルの設定は完了です。

#ref(img185.jpg)

NIFが完成した後でテクスチャがずれていたり、表示が変になっていた場合は、このUVボタンを押し忘れている可能性があります。表示がおかしくなった時には、この手順をもう一度繰り返して出力してください。


***Nif出力
ここまで完了すれば、あとはNifとして出力するだけです。

出力するオブジェクト(この場合はピコハン)を選択した後、File > Export > Netlmmerse/Gamebryo (.nif & .kf & .egm)でスクリプトを起動。設定は下記のようにしてください。ピンク色で囲った部分は必ずチェックしてください。

#ref(img188.jpg,,Width=512,http://www50.atwiki.jp/skyrim_mod?cmd=upload&act=open&pageid=26&file=img188.jpg,blank)

真ん中のCollision Optionsは現時点では意味が無い項目です。今後、Nif Scriptsがバージョンアップした場合は必要になるでしょう。
設定を確認したら、OKをクリックして出力します。


**NifSkopeでの編集
さて、無事Nifに出力されましたが、このままではSkyrimで利用することができません。そこで、既存のNifにいま製作したモデルを「移植」してやつ必要があります。

***出力したNifのバージョン書き換え
NifSkopeで先ほど出力したNifを開きます。開いてすぐBlock DetailsのNiHeaderの三角をクリックして内容を表示。

#ref(img189.jpg)

いくつかの項目がありますが、その中のUser VersionとUser Version 2の数値を確認。現状ではFallout3用のNifファイルなので、バージョンは11と34になっています。それぞれをSkyrimに対応した12、83へ変更。

#ref(img190.jpg)

変更が完了したらSAVE ASをクリックして上書き保存しましょう。
これでNifがFallout3のものからSkyrimへ変更できたのですが、このままではまだ利用できません。

***既存Skyrim Nifへの移植
NifSkopeで参考となるNifファイルを開きます。ここは最初に参照したドワーフの戦鎚(1stpersondwarvenwarhammer.nif)を選んでおきましょう。両手武器の場合、インベントリのアイコンに関係してくるので、なるべく1stperson***.nifを移植先に選んだほうがいいです。
次にNifSkopeのFile>New Windowでもう一枚NifSkopeを開き、先ほど保存したNifファイルを開きます。ここから必要なファイルを選んでドワーフの戦鎚Nifへ移植します。

BSFadeNodeを開き、その中のNiTriShapeを選択してCtrl + Cキーでコピー。

#ref(img209.jpg)

ドワーフの戦鎚へ切り替えて、BSFadeNode内へペースト。ペーストが完了すると、戦鎚のモデルに重なってピコハンが表示されるはずです。

#ref(img211.jpg)

ペーストした段階では、NiTriShapeのValueがEdgeBlood[4]になっているのがわかると思います。このValueの数値がNifの機能を決めるものです。モデルをきちんと表示するために、dwarvenwarhammer:0の数字に変更します。

ピコハンのValueをクリックして、数字を「8」と入力。

#ref(img212.jpg)

****テクスチャの再設定
現時点ではテクスチャが指定されていないので、テクスチャをDwarvenwarhammerからコピー。

#ref(img215.jpg)

DwarvenwarhammerのBSLightingShaderPropertyを選択し、Ctrl + Cでコピー。Ctrl + Vでペーストすると、NiTriShapeから外れたところへペーストされるはずです。このままではテクスチャが反映されないので、ピコハンのNiTriShape内に格納します。
ピコハンのNiTriShapeを選択し、Block Detailsを一番したまでスクロール。その中のBS Propertiesを選びます。ペーストしたBSLightingShaderPropertyの先頭の番号をチェックし、その数字をBS PropertiesのValueに入力。

#ref(img217.jpg)

これでテクスチャが指定できるようになりました。現時点ではドワーフの戦鎚が指定されているので、ピコハンにドワーフの戦鎚テクスチャが貼られているはずです。

#ref(img218.jpg)

これをピコハンのテクスチャに変更しましょう。
ピコハンのBSLightingShaderPropertyを開き、その中のBSShaderTextureSetを選択。Block Detailsから、一番上とその次の項目を変更。一番上がメインのテクスチャ、二番目がノーマルマップのテクスチャです。

#ref(img219.jpg)

変更が完了したら、ピコハンが綺麗に表示されているはずです。ここまできたらドワーフの戦鎚のNiTriShapeはいらないので、選択してCtrl + DELで削除してしまいましょう。

#ref(img222.jpg)

ここまでくればNifは一応完成です。別名保存で、1stpersonPicoham.nifと名前を付けて保存しましょう。
ファイル名を上書きしてしまうと、ドワーフの戦鎚の戦鎚が差し替わってしまうので、保存する祭には注意です。

****流血ノードの設定
このままでも武器として利用できるのですが、敵を攻撃した時の「返り血」が元のドワーフの戦鎚のままです。ピコハン用に流血ノードを再設定しましょう。流血ノードはこの二つのNiTriShapsで指定されています。まずはこのNiTriShape用のモデルが必要となります。

#ref(img226.jpg)

ピコハンの現状のモデルでもいいのですが、グリップにまで血が付いてしまいます。血がつくのはヘッド部分に限定するため、新しくヘッドの部分だけのNifを作ります。Blenderでピコハンのモデルを開き、EditモードでLキーを押してヘッド部分のみ選択。Pキーを押してSelectedでヘッドのみ分離します。

#ref(img224.jpg)

分離できたらヘッドのみNifとして出力。設定は同じです。
ヘッドのモデルをNifSkopeで開き、移植の手順と同じようにバージョンを書き換えておきます。ヘッドのNiTriShapsをコピーして、先ほどの1stpersonPicohamへペースト。Valueを流血ノードの5番に書き換えます。(この数字は移植先のNifによって変化します。移植先のNifをよく確認し、流血ノードの番号を指定してください)

#ref(img228.jpg)

番号を書き換えたら、元の流血ノード5番から、この三つのノードをそれぞれコピー&ペースト。

#ref(img229.jpg)

あらかじめヘッドのValueを5番にしていればNiTriStrips内にペーストされるはずですが、格納されなかった場合はBS Propertiesから番号を指定して配置してください。その時、BSEffectShaderPropertyが上、NiAlphaPropertyが下になるように指定。

#ref(img230.jpg)

あとは仕上げとして、NiTriStripsのフラッグを15番に書き換えます。

#ref(img231.jpg)

これで一つ目の流血ノードの指定が完了しました。続いて二番目の流血ノードを設定しましょう。流血ノードはこの二つが必ずセットになっています。忘れずに両方ともきちんと設定しましょう。一度やった手順なので、省略して書いていきます。

+ヘッドのNiTriStripsをコピー
+ペーストして今度は「8」番に書き換え
+8番ノードのNiTriStripsからNiTriStripsData以外の3つのノードをコピーしてペースト
+フラッグを15番に書き換え。
+元の8番ノードを削除

これで武器のNifファイルは完成です。
さあ、いよいよCKで設定し、Skyrimの世界へと持ち込みましょう!

#ref(img234.jpg)


****コリジョンの作成
現時点ではコリジョン(物体の衝突設定)はドワーフの戦鎚のままです。このまま流用しても問題はありませんが、ゲーム内で違和感を感じる事があるかもしれません。その場合は[[GND.nif作成方法]]のページを参考に、NifSkopeでコリジョンを作成しましょう。
目安箱バナー