SoCからCS/CoPへ人物メッシュ(3Dモデル)データを移植する



※注意
ここで説明する移植手段は、MODスレおよびS.T.A.L.K.E.R. Inside Wikiで紹介されていた"変換法"を、自分なりに読み解いて再説明したものです。
あくまで一例として参考にしてやってください。


また、CoPへの移植で動作確認していますが、CSおよびCoPへの移植方法として紹介されているので、CSでもそのまま使えるはず、程度の認識でやってますのでご了承ください。

用意するツール類

MilkShape3D 1.8.4
http://chumbalum.swissquake.ch/
3Dモデリングデータを色々といじくれるツール。30日体験付きのシェアウェアです。
Stalker対応MilkShape3Dプラグイン
MilkShape3Dでogfファイルをimport/exportするためのプラグインです。
http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=viewtheoned&lid=377
ms3dファイル(MilkShape3D用)のHierarchy Editor
MilkShape3Dでの作業中に必要な、Boneの接続を編集するためのツールです。
http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=viewtheoned&lid=424
X-Ray SDK 0.7
CS対応なら以前のVerでも良さそうですが、一応手元のVerで説明します。
CS/CoP用bonesファイル
http://narod.ru/disk/4885242001/converting_stalker_models.7z.html
↑のパッケージに含まれています。

スケルトン(骨格部分)の設定-前準備

SoCとCS/CoPのモデル移植の上で面倒になるのが、
SoCではスケルトンのパーツが45個なのに対して、CS/CoPでは47パーツで構成されている、という仕様です。
このうち45パーツは共通のものなので、まずはこの2パーツ分を付け足す作業から入ります。

まずはMilkshapeを開いて(プラグインは先に導入しておいてください)、File-Import-S.T.A.L.K.E.R. ...を選択し、適当なCoPのogfファイルをインポートします。
分かりやすいところで、アンパックしたデータから、meshes\actors\stalker_neutral\stalker_neutral_1.ogfを選択します。
いわゆるLonerの3Dデータが表示されますが、必要なのはスケルトンのみです。
ここで、File-Preferencesを開いて、MiscタブのJoint Sizeを0.01に設定するといいようです。
ちゃんと3Dモデルの中に骨が通っているような感じになっていればOK。

右側に表示されている、Jointsタブを選択すると、スケルトンのパーツ一覧が表示されています。
CS/CoPで追加されたのは、root_stalkerおよびbip01の2つで、SoCのスケルトンの親として定義されているようです。
ここでは、bip01_pelvisをダブルクリックで選択して、DeleteキーかEdit-Delete Selectionで要らないスケルトンを削除します。

また、3Dのモデリングデータ自体も邪魔なので、Materialsタブを選択し、material00とmaterial01をクリックして選択した後に、下のDeleteボタンをクリックして削除してください。

同様に、Groupsタブのmesh00とmesh01も選択後に下のDeleteボタンをクリックして削除してください。

これで、画面には、Jointsのroot_stalkerおよびbip01だけが残されているはずです。

これを以後の反復作業用データとして、ms3d形式で別名保存しておいてください。
SoC⇒CS/CoPへの人物モデル移植用には必ず使うことになるはずです。

スケルトン(骨格部分)の設定-本番

さて、あらためて前項の骨格パーツ2本のみが表示されている状態から進めていきます。
ここで、SoCから移植したいogfをインポートすると、
SoCのスケルトン+メッシュデータ+足りなかったスケルトン2パーツ、という状態になるので、これを一旦ms3d形式で保存します。

Hierarchy Editorを解凍し、このファイルをMS3D Hierarchy Editor.exeと同じフォルダに置きます。
exeを起動したら、ファイル名を拡張子抜きで入力します。
すると、Jointの一覧と各Jointの親が表示されますが、SoC仕様ではroot扱いだったbip01_pelvisの親が空欄になっているはずです。

そこで、M(Mount)を入力、ModeはA(Absolute)、続行するかどうか聞かれるのでY、Joint番号を聞かれるので3(bip01_pelvisの番号)、親のJoint番号は2(bip01)と入力して設定を終えます。
終了するにはQ(Quit)でOK。

これで、完璧なCoP用スケルトンを持ったSoCモデル・・・の元が完成しました。
これをMilkshapeで開いて、S.T.A.L.K.E.R.形式でエクスポートしてやることで、meshとboneの揃ったobjectファイルが出来上がります。

Actor Editorでの設定

次に、CoP用SDKのActor Editorを起動します。
editors\!ActorEditor.cmdから起動したら、File-Importで作成したobjectファイルを読み込みます。
右側のObject Itemsの下にあるObjectを選択し、Item PropertiesのMake Progressiveにチェックが入っていることを確認したら、一番下のUser Dataに対応するltxデータのパスを指定してやります。
これは、元のogfファイルに設定されているものを使うのがいいかもしれませんが、面倒ならconfigs\models\captureから適当に選択してやってもいいかもしれません。
入力形式はconfigsを飛ばしてmodels\capture\xxx.ltxのみでOK。

次は、Motionsを選択してMotion referenceを設定します。
...をクリックすれば設定に入れますが、推奨設定は
actors\stalker_animation、actors\stalker_scenario_animation、actors\stalker_scripts_animation、actors\stalker_smart_cover_animationの4つです。
それぞれ・をクリックしてチェック状態になったらOKを押します。

最後に、Bonesを選択したら、Fileの右にあるLoadボタンをクリックし、用意しておいたcop-cs.bonesファイルを選択します。

Surfaces以下はテクスチャの設定ですが、設定項目の数等々がモデル次第なところもあるので、各自必要に応じて変更してください。必要なければそのままで、同じ階層にテクスチャファイルを用意してやれば大丈夫です。

最後にFile-ExportでOGFファイルとしてエクスポートすれば完成。

出来上がったものが

こちらになります。クリックで別窓。

この例ではSecret Path2からbabka_3.ogfを移植してみました。
適当に新規NPCとしてでっち上げたうえで、Spawner Modを使って出してみただけです。

体格の違うモデルデータなので、肩幅や関節の間隔が合っていません。
SkeletonかMotionあたりを修正しないと、不自然に手足が伸びた状態のままになってしまうようです。
この辺の修正方法と、NPCとしての設定などはまた別の項で取り上げます。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2012年02月29日 14:00