「旧Blender導入」の編集履歴(バックアップ)一覧に戻る

旧Blender導入 - (2014/01/26 (日) 23:13:19) の編集履歴(バックアップ)


このページではBlenderの導入方法を解説します。
モデリングがしやすい最新の2.6xと入出力用に2.49bを2つ揃えることにします。
Skyrimで使うプラグインの多くが2.49bまでしか対応していないので、旧バージョンの2.49bはほぼ必須です。


Blender 2.49bの導入方法

インストールは順番が大事です。

  • Blender 2.49bからblender-2.49b-windows.exeバージョンをダウンロード。
    Blenderはインストーラー形式でないとうまくPyFFIが認識できない時があります。
    インストーラーは以下の設定の時にUse the installation directoryを選びます。
    (Use the Application directoryだとC:\Users\ユーザー名\AppData\Roaming\Blender Foundation\Blender\.blenderにスクリプト等が配置され、
    上記の場合はC:\Program Files (x86)\Blender Foundation\Blender\.blenderに置かれます)



  • Python 2.6.6 (32-bit)をダウンロードしてインストール。特に変更なしでそのままインストールします。

  • PyFFI 2.1.11 からPyFFI-2.1.11.cefd181.win32.exeダウンロードしてインストール。
    PyFFIのインストーラーの時点で下記のようにBlenderとPythonが認識されている必要があります。
    nifのimportがうまくいかない場合はたいていここでのミスです。




Blender 2.6xの導入方法

  1. Blender 2.6xZip形式のほうをダウンロードします。最新版は更新があった時に乗り換えが簡単なのでZip形式にします。
  2. 適当なフォルダに解凍します。あとはblender.exeを起動すれば使えます。


ImportとExport時に必要なもの


Nif Import

SkyrimのNifをそのまま読めるSkyrim .NIF importerを使えば特に作業(BlenderでFile→Import→Skyrim NIF)は要らないですが、
わりと読めないファイルが多く、重複した頂点があると面が欠けていたりしますのでちゃんとインポートできたか必ず確認して下さい。

Nif Scriptsのほうのnif importerは読み込む前に作業が必要です。その代わり細かく設定できるのでアニメーションやスケルトンを読むのにも使えますから是非覚えましょう。

Nifskopeでの作業

(例として巨人を読み込みます。FO3Archivesでdata\meshes\actors\giant\character assets\giant.nifを展開しておきます。)
Nifskopeでインポートしたいnifを開きます。
Block DetailsのところにNiHeaderがあります。それをクリックしてツリーを展開します。
※つまずきやすいポイント
Block Detailsが出てない→F3押す。
NiHeaderがない→最初にBlock Listsの何かの項目押すと出てこなくなります。
メニューバーからView→Reset Block Detailsをクリックでまた出てきます。

バージョンをBlenderで読み込めるように書き換えます。数値をダブルクリックで編集できます。
User Version 12→11
User Version 2 83→34

書き終えたらCtrl+Sで一旦名前をつけて保存します。元とは違う名前にしましょう。(例Giant_11.nif)
もう一度開き直すと以下のようにBSLightingShaderPropertyとNiAlphaPropertyが出てきます。
読み込めないブロックなのでこれらをCtrl+Deleteで消します。
例では以上の2種類でしたが他にも読めないブロックがあるのでそれもあれば消しておきます。
Blenderでは読み込めないリスト
  • BSLightingShaderProperty
  • NiAlphaProperty
  • BSBehaviorGraphExtraData
  • bhkCollisionObject
  • NiStringsExtraData
  • BSInvMarker

またCtrl+Sで保存します。

Blenderでの作業

File→Import→NetImmerse/Gamebryo(.nif & .kf & .egm)です。

メッシュファイルを読み込むときは以下のとおりに設定します。

※ここでPython Script Error: Check Consoleのエラーが出る場合
Blenderとともに出る黒い画面の方がスクリプトログですのでこちらの最後の行あたりを読んでエラー内容を把握します。
ValueError: Unknown block type 'BSLightingShaderProperty'. 読み込めないブロックがあるとこのエラーが出ます。' '内が該当する箇所ですのでこの場合はBSLightingShaderPropertyをNifSkopeで消します。
PyFFiが入ってる場合:PyFFiのインストールに失敗してます。導入のところを見て再度インストールしてください。

特にエラーが出ず3D Viewに表示されたらImport完了です。


Nif Export

ウェイトがあるかどうかで作業が違ってきます。
ウェイトとはボーンに追随してメッシュが変形する仕組みです。動画で見るとイメージしやすいです。
動画だと三角錐がボーン、周りの四角がメッシュ。ボーンを回転させるとそれに合わせてメッシュが変形する。

Blenderでの作業

Importしたての状態からオブジェクトを右クリックして選択します。

マテリアルの設定

ここで設定したマテリアルは実際には使用されませんが、Nif出力する時にマテリアルの項目が無いと正しく動作しません。
(マテリアルがないとUVやノーマルマップ等のマッピングのデータが付かなくなる。)
Buttons WindowのShading(F5キー)をクリックしてマテリアル設定画面を選択します。
Links and PipelineタブのLink to ObjectからAdd Newを選択してマテリアルをオブジェクトに追加します。

#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。

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

#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。

すると右隣に二つほどタブが追加されます。
ImageタブのLoadをクリックして、適当な画像を指定します。(実際には使われないのでなんでもOKです)

#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。

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

#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。

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

Nifの出力

出力するオブジェクトを選択した後、File > Export > Netlmmerse/Gamebryo (.nif & .kf & .egm)でスクリプトを起動。

出力ではそのオブジェクトにウェイトがあるかどうかで違います。
ウェイトがないもの→武器やインベントリ用のメッシュ、トマトやドアなどのオブジェクト。
ウェイトがあるもの→髪、防具、ボディ、クリーチャー。
ウェイトがあるかどうか確認方法:元のnifまたは元にしたいnifをBlock Listsのツリーの一番最初のがBSFadeNodeのはウェイトがありません。
NiTriShape下にBSDismemberSkinInstanceまたはNiSkinInstance(どちらもウェイトの設定)がある場合はウェイトがあります。
Blender上ではButton WindowのEditing(F9)を開き、Link and MaterialsのVertex groupsが空ならなしです。

ウェイトがない場合の設定。
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。

ウェイトがある場合の設定。
※巨人等のクリーチャーの場合はExport Dismember Body Partsは不要かもしれない。


NifSkopeでの編集

そのままでは使えませんのでNifSkopeで編集します。

出力したNifのバージョン書き換え

NifSkopeで先ほど出力したNifを開きます。開いてすぐBlock DetailsのNiHeaderの三角をクリックして内容を表示。

#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。

Importした時と同じように今度はUser Versionを11→12とUser Version 2を34→83へ変更。

#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。

Ctrl+Sで一旦上書き保存しましょう。

設定の移植

ウェイトがあるとないとでは作業が違います。
(ウェイト設定を持っていくと崩壊する可能性がある、逆にウェイトがないnifはNiExtraStringsDataなどの特殊なブロックが付いてる場合が多いため持ってくるのが面倒)

・ウェイトがある場合
ウェイトがない場合は元になるnifからテクスチャや透過情報のみを移植します。

以下の赤枠の不要なデータを削除します(マテリアルの設定)。

元にしたいnifを開きNiTriShapeツリーのBSLightingShaderPropertyをCtrl+Cしてコピー、Exportした方のNiTriShapeを選択しCtrl+Vでペースト。
NiAlphaProperty(透過情報です。物によってはない場合もあり)も同様にコピー&ペースト。


続いてBSDismemberSkinInstance→Partitions→PartitionsのBody Partの部分を元のnifと合わせます。
Valueのところをダブルクリックするとその右側に下向きの三角形が出るのでそれを押すとプルダウンメニューが出ます。
そこから元のnifと同じにします。Partisionsが複数ある場合は同様の作業を繰り返します。
(例:頭防具の場合はたいていSBP_131_HAIRを選ぶ)

・ウェイトがない場合
ウェイトがない場合は造形データだけ取り出して元になるnifに移植します。
以下を参照にしてください。
既存Skyrim Nifへの移植

テクスチャの設定

元のnifと同じテクスチャでいい場合はこの項目はやる必要がありません。
BSLightingShaderPropertyツリー内のBSShaderTextureSetがテクスチャの設定です。
Block Details内のTexturesの三角を押してツリーを展開するとテクスチャファイルのパスが表示されます。
花のマークを押すとファイルブラウザが出て変更したいテクスチャに変更します。
ただし絶対パスになってしまうので他のファイルパス同様にtextures\より前のパスは削ります。
例:グレーの部分が不要。C:\Program Files (x86)\Steam\steamapps\common\The Elder Scrolls V Skyrim\data\textures\...

確認

保存したら、メッシュフォルダ内に配置して確認します。
作業が必要ないので何かの置き換えにするとわかりやすいです。(例だとdata\meshes\actors\giant\character assets\にgiant.nifとして配置)
Creation Kitで確認します。エラーが出るため原因を特定しやすいです。
(例ならObject WindowのActors→Actor→EncGiant01→右クリック→Preview)
きちんと表示されるか確認します。

CKでうまくいったら今度はゲーム内で確認しましょう。


よくある失敗パターン

マテリアルの設定がしてない。バージョン変更して開き直した時にNiMaterialPropertyがない、NiTriShape→NiTriShapeDataのBlock DetailsのHas NormalsがNoになっている場合はマテリアルが適切に設定されてません。
もう一度マテリアルの設定を見なおしてみてください。

ツリー階層の一番上がScene Root。これは要らないので、選択して右クリックBlock→Removeで除去

CK上では表示されるのにゲーム内で表示されない→BSDismemberSkinInstance→Partitions→PartitionsのBody Partの設定がおかしいかもしれません。該当のnifを開いてBSDismemberSkinInstance→Partitions→PartitionsのBody Partの部分を元のnifと合わせます。Valueのところをダブルクリックすると右側に三角のプルダウンメニューが出るのでそれを押して合わせます。




目安箱バナー