思いつくままを綴る雑記帳

Oblivionのモーションファイルを別のスケルトンモデルに転用する

タイトルだと意味不明だと思う人もいるかも・・・・。
BlenderのサイトでMocap Toolsというものの使い方を知ったのでその応用ということです。

Oblivionにはユーザーが作成した数百以上ものモーションファイルがあります。
これを別のスケルトンを使用しているゲームに移植しようということです。

手順は至って簡単です。
対象として前回登場したFallout3を例としてあります。

1)Blender2.49bでFallout3のスケルトンをインポートする。
2)後でこのデータを使用するためにblendファイルを保存する。
(FO3Skelton.blend)
3)Blender 2.49bでOblivionのKFファイルをインポートする。
指定するNIFファイルはOblivionの改良版のスケルトンを使用する。
4)後でこのデータを使用するためにblendファイルを保存する。
(Oblivion_Skelton_Plus.blend)
5)Blender2.6xを使用する。(最新版)
6)Blender2.6xでOblivion_Skelton_Plus.blendを開く。
7)FO3Skelton.blendからFallout3のスケルトンをアペンドする。
8)ObjectタブのMocap ToolsでGuess Hiearchy Mappingをする。
この時不要なBoneに接続されるので不要なものを外す。
またBoneの名称が一致しないものが多いので必要なものを設定する。
9)RETARGET!ボタンを押し処理が終わるのを待つ。
10)処理が正常に完了したらOblivionのArmatureのデータを削除する。
stride_boneも削除する。
11)Fallout3のArmatureを選択しActionをBakeする。
Object>Animation>Bake Action
Bake DataはPoseを選択する。
タイムラインにキーが表示されればOK。

12)BVHファイルにエクスポートする。

(注意)
Blender2.49bに標準添付されているBVHインポートスクリプトは不都合なデータを生成する。
Rootの生成とBone名称の生成時に_が使用される。
これはスクリプトを修正することで変更できる。
具体的には以下のように変更。

if file_lines[lineIdx][0].lower() == 'root' or file_lines[lineIdx][0].lower() == 'joint':
上の行を下の行に修正。
if file_lines[lineIdx][0].lower() == 'joint':

また'_'となっている箇所を' 'に変更。
具体的には146行目辺りの1箇所だけ。

13)Blender2.49bでFO3Skelton.blendを開く。
14)Blender2.49bで生成したBVHファイルをインポートする。
15)アクション画面でFallout3のArmatureにアクションを割り当てる。
16)BVHのArmatureを削除する。
17)終了フレームをアニメーションの長さに設定する。
もしそれが必要であればテキストエディター画面でAnimファイルを内部ファイルとして作成する。
18)KFファイルにエクスポートする。

OblivionのスケルトンはBB対応のスケルトンから不要なBoneを削ったものです。
またOblivionのスケルトンには陰茎のBoneが存在していません。
そのために陰茎及びBallsのBoneを追加し、コンバートされたモーションの最初の
フレームで適切な位置及び角度に調整する必要がある。

とまぁ、手順を書くとたくさんありますが・・・
いくつかの処理は一度やれば次からは不用なものもあります。

この記事は某サイトに投稿した記事を少し修正して書いているので表現がおかしな部分が
残っているかもしれないけど・・・気にしてはいけない。

最後に念の為に書いておきますがこの方法で全て完璧に移植出来るわけではありません。
またMocap Toolsについてはマニュアルを読んで出来ることと出来ないことを見極めて使用して下さい。

操作映像を貼っておきます。(Youtube)
Operation video
operation video Part2
スポンサーサイト

コメント

コメントの投稿

URL
コメント

パスワード
秘密
管理者にだけ表示を許可する

トラックバック

トラックバックURL : http://perfectcat.blog101.fc2.com/tb.php/255-1ca1c61c
<< 4Sharedもそろそろ見切り時かも | TOP | Nehrim・・・ >>