かなりふつう

今でも森之宮神療所を応援しています 【Twitter:http://twitter.com/usualgamer】

全体表示

[ リスト | 詳細 ]

記事検索
検索

IFPの改造方法2/3

 
 
 今回はGMAXにおける、IFP処理について、いまいち正しく理解しにくいポイントを解説します。
 
 
イメージ 1
 
 まずはGMAXにモデルを読ませたところです。IFPとは関係ありませんが、モデルの頂点削減処理や
スムージングはやっておいた方が色々いいかと思います。みるちおさんのGTA Skin作成講座を参考に
してみて下さい。
 
 
 まず「Apply Animation」についてですが、これは現在選択中のボーンに対して、同名のボーンの
モーション情報をGMAX上に映し込む処理になります。従って、ボーンが選択されていなければ何も
起きませんし、Rootしかボーンを選択していなければRootに関してのモーションしか反映されません。
 
イメージ 7
 
 これは「cuts.img」内の「bcesar2.ifp」の「cskendl」を反映させた場合です。全てのボーンを選ぶともちろん
全身に対してモーションが反映されますが、上半身のボーンのみを選んで同じ処理をすると、
 
イメージ 8
 
 こんな風に、下半身は元のままになります。
 
 ところで、下のアニメーションフレームのバーを見てみて下さい。全ボーンを選択してApplyしても、
一部のボーンをApplyしても、青い棒の数は変わっていません。
 
イメージ 9
 
 これはどういうことかというと、この青い棒はフレーム登録されたボーンが1つ以上選択されている
場合に表示されるもので、いくつ選択されているかは関係ありません。
 例えば、腕のみを動かすモーションにおいて、腕のボーンを選択すれば当然登録されたフレームに
青い棒が表示されますし、足のボーンも一緒に選択しても結果は変わりません。ただし、ここでは
足のボーンには登録されたフレームが存在しないため、青い棒を移動させても消しても何の影響も
ありません。
 
 また、ここが少々ややこしいのですが、例として100F目にフレーム登録されたボーン「Root」「Pelvis」
「Neck」があるとします。「Root」と「Pelvis」ボーンを選択すると青い棒が表示されます。青い棒を選択して
緑の棒にし、Deleteすると「Root」と「Pelvis」についての登録は削除されますが、当然「Neck」はそのままです。
この後、「Neck」を選択すると青い棒がまた表示されます。
 
 さらに、100F目に「Root」でフレーム登録し、101F目に「Pelvis」で登録した場合、「Root」と「Pelvis」ボーンを
選択すると、100F目と101F目に青い棒が表示されます。つまり、今見えている青い棒は、選択している
どれかのボーンが少なくとも1つフレーム登録されているということが分かるだけで、どのボーンが
登録されているのかは1つずつ調べるしかありません。
 
 前回、「本来無関係だったボーンに不要なフレームが登録されてしまう」といったことを述べたと思いますが、
これがそれをわかりにくくさせている原因です。
 
イメージ 10
 
 例えば、上のように上半身のみApplyさせた状態であれば、足のボーンには一切影響がないので、
つまり歩行モーションをさせているときにこのモーションを重複して実行させることができるわけですが、
上のフレームのように、ある1つのフレームを削除するとボーン回転がおかしくなったとします。
このとき、どのボーンがおかしくなったのかは見つけるのが手間ですので、簡単に済ませたいのであれば
全ボーンを選択して「Create Key」すればよいという話を前回しました。
 
イメージ 11
 
 はい。確かに直りましたね。ですが、元々一切登録していなかった下半身もこのフレームだけ登録
してしまったせいで・・・
 
イメージ 12
 このように、ある下半身のどれかのボーンを選択してみると、フレームが登録されてしまっています。
全ボーンでやったんですから当然ですが、これでは歩行モーションをさせていると、このフレームに
引っ張られておかしな動きになってしまいます。これではうまくいきません。
 
イメージ 13
 そういうときは、F3を押してボーンを見やすくして、選択対象を「Helper」にします。この状態で、本来
登録したくなかった下半身ボーンを選択しましょう。すると、(恐らく全部ですが)余計なフレーム登録された
ボーンについて、青い棒が表示されますね。この棒は、そのフレームでフレーム登録されている全ての
ボーンについてまとめて1つの棒として表示されているものであるわけですから、この青い棒をDeleteして
しまえば、下半身について登録されてしまっていたフレームは削除されることになります。
 
 これを利用すれば、例えば腕だけを動かすモーションに対して、一旦何も考えずに全ボーンで細かく
フレーム登録してしまい、完成したらメインとなるボーン以外のボーンを全て選択し、青い棒を全て削除
してしまうことで、身体の一部のみを動かすモーションを簡単に作成することができます。
 
 ちなみに、
 
イメージ 14
右下の時計のマークのアイコンをクリックすると、アニメーション全体のフレーム設定ができます。
開始フレーム、終了フレームを指定することで、さっきのように1000Fを超えるような細かいモーションの際は、
一時的にズームする目的で開始・終了フレームを200・300などと指定することで編集がしやすくなります。
なお、あくまでアニメーションの開始と終了を指定するだけなので、例えば開始200、終了300としても
200以前と300以降のデータが消えるわけではありません。特定の時間だけを抜き出して軽くしたい場合は、
 
イメージ 2
 これの、200〜400Fのみを抜き出したいときは・・・
 
イメージ 3
 まず200以前の登録フレームを消します。
 この時、青い棒が重なっていると選択しにくいので、どうせ消すんですからフレームをつまんでどこかに
移動させて隙間を作るといいです。
 
イメージ 4
 400以降も削除します。
 
 
イメージ 5
 必要なフレームを選択して、0フレーム目へ移動させます。
 1つポイントですが、「Apply Animation」は、既に登録されているフレームは一切削除せず、IFPの
モーション情報をそのままGMAXのタイムライン上に上書きします。そのため、前のモーションフレームが
タイムラインに残っているまま別なモーションをApplyすると、両者かぶっていないフレームについては
以前のモーションが残ってしまいますので、事前に削除してから新しいモーションはApplyしましょう。
 
 なお、これを応用するとモーションをタイムラインで合成することもできます。
 0〜30Fの銃を構えるモーションと、0〜10Fの銃を撃ったモーションがあるとき、まずは撃ったモーションを
読み込んでモーション情報を開始0、終了40に変更します。0〜10Fにある登録フレームを30〜40Fまで
移動させます。次に銃を構えるモーションをApplyすることで、空白になっていた0〜30Fの部分に銃を
構えるモーションフレームが上書きされ、0〜40Fの銃を構えて撃つ一連の動作のモーションを作ることが
できます。これはいくつかのアニメーションに分割されているものをスムーズに繋げて動作させる場合に
便利です。
 
 話を戻しましょう。フレームを0へ移動させたので、これを実行すれば実行した瞬間からそのモーションが
開始されます。もし0へ移動させないと、0〜200までは何も起きませんのでご注意下さい。
 
イメージ 6
 最後にタイムライン編集で、終了を200に設定することで、タイムラインが無事0〜200になりました。
あとはこれを全ボーン選択してReplaceすれば完成です。なお、このReplaceも選択しているボーンについて
のみフレーム情報を書き出すので、必要最小限のボーンのみを選択してReplaceするのであれば余計な
フレーム登録を削除した処理はしなくてもOKです。
 
 
 
次回はいよいよ、カットシーンの滑らかなモーションを動画撮影に使うための処理について解説します。
これが自由にできるようになると、非常に人間らしい動きをしたシーンを自在に作ることができるように
なります。
 
以上ヽ(´・ω・`)ノ
 

IFPの改造方法1/3

検索キーワード:GTA IFP アニメ モーション 改造 カスタマイズ カレー大好き
 
※この記事は2012/3/20 17:00に修正しました。 
 
 
 
 ということで、IFPの改造についてあれこれ書きます。
 IFPを改造するために必要な道具の導入については、「カール洩矢」の作者さんのブログが詳しく載って
ますのでこちらでは割愛します。また、具体的なIFP改造時の操作については
「とんかつ(無機物)」の作者さんのブログに詳しく載ってますのでこれも割愛します。
 
 ここでの解説は、主にIFPの中のアニメーションを削除したり追加したり、任意のIFPの任意の
アニメーションを改造したりするものになります。ちょっとIFPがいじれるようになった人が行き詰まる
ポイントの解説という位置付けになります。
 なお、質問あったらよろーと数日前に書き置きしておきましたが、特にコメントがなかったので記事に対する
質問は受け付けません。嘘は書きませんがサポートも期待しないで下さい。どうしても分からないんだ!
という方は対応しますが、「何をしたくて」「何を試したが」「どうなって」うまくいかないかは明記して下さい。
なお、その際は解決のために「こういうのを試して下さい」といったやりとりを何度かすると思うので、
解答だけを今すぐポンと欲しがる人は他を当たった方が無難です。
 
 そうそうもう一つ。これはあくまで動画制作のための素材制作を目的としたIFP改造であり、通常プレイ時に
楽しむことを目的とはしていません。「〜したら落ちた」などとバグ出しみたいなことを言われても、撮影に
支障の出るレベルのバグでなければ対応はしません。ご了承下さい。
 
 
 では、まず、「silenced.ifp」にある「SilenceCrouchfire」というアニメーションを改造してみましょう。
 このIFPはanimフォルダ内の「anim.img」に入っています。このimgに入っているのはゲームで使用される
モーションが主に入ってます。最終的にはgta3.imgにIFPを移動してしまっても動作すると思うのですが、
同じファイルが別のimgファイルに2つ以上存在すると、ゲーム開始時に適用される優先度等が絡んで
面倒になるため、元のIFPを改造する際には元のimgファイルに格納した方がいいでしょう。
 
 
イメージ 1
 これをどこか編集用のフォルダにコピーして、それを改造します。ドラッグしてコピーして下さい。
 
  
イメージ 2
 
 これがsilenced.ifpをAnimation Managerで開いて、モデルをLoadした状態です。モデルはなんでもOK
 
イメージ 4
 これがSilenceCrouchfireアニメーションです。これを両手を広げて左右に打ってるガンカタみたいな
モーションに改造してみます。
 
イメージ 5
 
 
 まず、GMAXを起動して「DFF IO」>開いたダイアログ内の「A」ボタンを有効にした状態で「Import DFF」で
モデルを呼び出します。テクスチャを貼っていないと動きがわかりにくいので、有効にしておいて下さい。
 
イメージ 6
 次に「IFP IO」ボタンでIFPインポート用ダイアログを開きます。
 
イメージ 7
 IFP IOダイアログ上にもDFFインポートボタンがありますが、こちらでインポートしようとするとやたらと時間が
かかるので、あらかじめDFF IOダイアログからインポートしておきました。最終的にはどちらでもいいです。
 
 では、IFPファイルを読み込みます。この辺は色んな解説サイトやブログに載ってるまんまだと思います。
特に操作で悩む部分もないでしょう。
 
イメージ 8
 IFPをLOADした状態。
 
 ここで、モデルをボーンまるごと全部選択したあと、SilenceCrouchfireを選択し、「Apply Animation」ボタンを
押しますと、以下のようにモデルにアニメーションが反映されます。
 
イメージ 9
 こっち向いて構えてくれると思いきや、XYZ軸がおかしなことになっていますね。これはモデルの基準軸と
アニメーションの基準軸が異なるためで、モデル自体はY軸に対して平行に立ちます。しかしアニメーションは
Z軸を基準にしているので、こうなります。ただ、ボーンの進行方向を示す「Affect Pivot Only」で正しい方向を
指定してあるため、基準軸が狂っても動作に支障は出ません。
 
イメージ 10
 では改造してみましょう。まずはボーンだけ選択したいので、GMAXの上のメニューの「All」を「Helper」に
切り替えておきます。
 
イメージ 11
 手を構えた位置だけを変えたいので、その部分だけを改造します。
 上図を見ると、10〜24まで同じポーズを取っていますので、その最初と最後のフレームを除いて残りを
一旦削除してしまいましょう。ぶっちゃけ動きに変化がないなら、完全に無駄なフレームです。
 上の緑のように11〜23を選択してDelete。
 
イメージ 3
 
 すると、11〜23Fの中がめちゃくちゃなアニメーションになってしまいました。ここが1つのヤマです。
 登録されたフレームは、1つ前のフレームからどの軸が何度回転したかという情報を持っていますが、
そのフレームが削除されると、例えば30度の回転だったとしても、それが本当に+30度なのか、実は
−230度なのか、あるいは+390度回転なのかが分からなくなります。これが回転角度を崩壊させる
原因です。ジンバルロックとは違う現象だと思います。
 
 これを改善させるには、回転終了のフレーム(ここでは24F)でのその回転が崩壊しているボーンを選択し、
フレーム位置を示すスクロールバー上で「Create Key」をすればOKです。改めてその位置でボーンの
回転角度を再計算させることで、0度なのか360度なのか、あるいは−360度なのか分からなくなっていた
回転角を「ほぼ0度でOK」と教え直すことで修正できます。敢えて360度回転させたい場合は、むしろ
Create Keyし直さないように注意しなければなりません。
 みるちおさんの解説では「全ボーンを選択してCreate Keyしろ」と書いてありますが、これは全ボーンを
やってしまえばラクですよ、という意味であって、回転角が崩壊しているボーンに限って実行してあげるのが
実際には必要最小限の処理になります。もしヘタに全ボーンをCreate Keyすると、元々フレーム登録されて
いなかったボーンまで新規に登録することになるため、上半身だけのモーションだったはずなのに一部の
フレームだけ下半身も動いてしまう、というような想定外の問題も出てきますので注意が必要です。
 
 ただ、多くのボーンが崩壊していると1つ1つ探してCreate Keyするのは面倒です。なのでそういう場合は
全ボーン一括で処理してしまうのもアリです。最後に、余計にフレーム登録してしまったボーンの登録を
解除すればいいので、その方法を次回で解説します。
 
 
 結局のところ、おかしくなっていたのは「L Calf」「R Thigh」「Bip01 R Clavicle」の3つだったので、それを
Create Keyすると直りました。下図は下半身2つのボーンまで修正した状態。
 
イメージ 12
 と思ったら、ClavicleをなおしたらR UpperArmがおかしくなり、それをなおしたらForeArmが・・・というように
子ボーンへ影響が波及したのでちょっと面倒でした。ただ、原理が分かっていれば混乱せずに修正が
利きます。最終的にFingerまで順番にCreate Keyすることで完全に直りました。
 
 続いて、ポーズの最初である10F目のボーン位置を動かします。
 なお、基本的にボーンは回転以外使わず、移動は避けて下さい。元々モデルを作成した段階でそのボーンの
相対位置座標が決定されているため、それを移動させるとTranskeyを設定したときと同じような現象、つまり
キャラによって骨格がおかしくなる現象が発生してしまいます。
 
 また、ボーンの回転は、マウスで動かしてマウスボタンを離す度にクォータニオンに変換され、それが
オイラー回転角へ変換され、GMAXに表示されます。クォータニオンに変換されるのはどういうことかと
言うと、ボーンを直接回転させるときは「Affect Pivot Only」で指定した方向を基準としたXYZ軸が一時的に
作られて回転が実行され(クォータニオン回転)、その始点と終点から絶対XYZ軸に対して何度回転したか
(オイラー角回転)が求められ、テキストボックスに結果が表示される、という仕組みです。つまり、ボーンを
直接回転させる時のXYZと、テキストボックスに表示されるXYZはそもそも軸が違うのです。
 
イメージ 13
 
 
なので回転させた分が意図した角度変化量にはなりませんし、上のテキストボックスに直接角度を入力しても
思い通りの回転位置にはなりません。クォータニオンの計算上、90度をまたぐ度に変換の際に+か−かを
正確に反映させる必要があるため、前述したような回転の崩壊は常に起こりうるものと認識しておいて下さい。
基本的に、動かしたボーンはCreateKeyしておくのが無難です。
 
イメージ 14
 ブーン
 
 これは単一フレームのみ処理したので、次のフレームの間は・・・
 
イメージ 15
 
 仕事を選べない先生
 
 
 これも、最終的にはCreate Keyするんですが、24F目は変更していませんでした。
 ここで、10Fの情報を24F目にコピーしたいんですが、実はこれができない。やり方が分かりません。
なので、フレーム情報をコピーしたい場合はボーンを1つずつ選択し、そのときの回転角度をメモし、
24Fにその値をダイレクトに入力してコピーする必要があります。これはかなり面倒です。
 
 GMAXのAnimateボタンを押さない状態でボーンを動かすと、以降のフレームは新たな補間は実行されず、
そのままの姿勢で次のフレームまでいってくれるのですが、使いどころが難しいです。今のところは
角度情報の手動コピーが間違いないでしょう。
 もっとも、1度未満の誤差はほとんどわからないので完全にコピーする必要はありません。
 
 
 コピーし終わって、それぞれのボーンをCreate Keyすると無事同じモーションのままになります。
 ただ、まったく同じのはずなのに若干カーブを描いたりしていませんか? これはGMAXの補間処理上の
問題で、IFPに変換する際にはその謎の補間動作は無視されます。編集中は気になるものですが、
無駄に細かくフレーム登録したりするのは本当に無駄なので、実際にはどう動くのかをよくイメージしながら
改造して下さい。
 
 まだ全然作りかけですが、これはただのサンプルなのでこれでIFP化してしまいましょう。
 以降の作業は
 
 ① silenced.ifpを「IFP Dump」でダンプする
 ② GMaxSLGRAB.exeを「Grab」する → silenced.txtができる
 ③ ボーン全部選択して「Replace」
 ④ 「Grab」 → ReplaceIFP.txtができる
 ⑤ ぐぐれ
 ⑥ silenced.ifpの改造終わり
 
となります。
 
 
 今回はIFP改造時に発生する諸処の面倒ごとについて解説しました。
 次回は既存のカットシーンのIFPの一部を抜き出して撮影用に利用する方法を紹介します。
こっちの方がメインなので、基礎についてはしょりたいので2回に分けました。
 
 
次回に続くヾ( ゚д゚)ノ゙
 
 
 
 
 
 
 
 

予告

 
 近々IFPアニメーションの改造の仕方について書くので、わからないところ、できないところがあったら
コメント書いておいてくれると解説するかもよぉヾ( ゚д゚)ノ゙

IFPファイルの構造

 
 2012/2/26 更新しましたヾ( ゚д゚)ノ゙
 
 
 キャラクターの仕草や動作を決めるIFPですが、中身はあまり知られていません。
 なので書いておきます。
 
 
 まず、IFPはバイナリデータなので、中身を見るためにテキスト化します。
 
イメージ 1
 
 まず、上のようにGMAXでIFP IOからテキトーなIFPを読み出します。GMAXやらIFP IOやら、アニメーションをいじりたい人はまず物置き(仮)[http://ponz2009.web.fc2.com/index.html]さんなどに行って事前の知識を仕入れておいて下さい。
 
 
イメージ 2
 
  ご存じのように、ボーンを全部選択して「Apply Animation」し、ボーンに反映されたら「Replace」しますと
メモリ上のアニメーションデータが現在編集中のデータと入れ替わります。そこでGMaxSLGRAB.exeを
実行すると、そのメモリ上のデータが「ReplaceIFP.txt」というテキストファイルに出力されます。この
テキストファイルを見ることになります。
 
 以下がそのデータです。今回は中身を知るだけなので、R UpperArmとR Forearmのボーンだけを選択して
Replaceしてあります。こうするとそのボーンについてのアニメーションデータだけが抜き出せます。
つまり、一旦全身ボーンに対して「Create Key」をしてアニメーションを作ったら、本当に動かすボーンだけを
選択してReplaceすれば余計なボーンまで影響が出なくなるようにすることができます。上半身の手振り
だけなどの場合は、Spine1より上のボーンだけを選ぶようにするといいかもしれません。
 
-------------------------------------------------------------------------------------
<!-- path="出力したテキストへのパス〜〜\ReplaceIFP.txt" -->
//
//
//<ifpanimationstart>
//Animation Jaykong start Here
c 24
Jaykong
i 3
2 544 1
c 24
R~UpperArm
i 3
4 17 22
w 5
626 2534 1066 -2970 0
w 3
71 -6 21
w 5
486 562 1269 -3822 40
w 3
72 -7 20
w 5
394 356 1550 -3753 50
w 3
72 -5 22
w 5
185 284 1998 -3559 70
w 3
71 -6 22
↓以下長々と続いて、最後に
//</ifpanimationend>
//
//
//<ifpheaderstart>
//This is Header Section
//Please Replace this over the original Header
c 4
ANP3
i 1
-51852
c 24
custom
i 1
1
//</ifpheaderend>
----------------------------------------------------------------------------------
 
 こんな中身になっています。まるで暗号ですが、ちゃんと規則があるので書いていきます。
 
■ //
 コメント文です。IFPファイルへ変換するとき、たぶん無視されます。
 
■ C 24とか
 C 24 : 次の行には最大24のChar(1byte文字)のデータが来ますよ、という意味。
 i 3 : 次の行には3つのInteger(4byte?の符号無し整数)のデータが来ますよ、という意味。
 w 5 : 次の行には5つのWord(2byteの符号付き整数)のデータが来ますよ、という意味。
 
です。これで大部分が解読できたと思います。
でもちょっと待って下さい。C言語などを勉強してる人は、Integerは符号有り整数で、Wordは符号無しだと
認識してると思います。上の説明だと逆ですよね。でも実際そういう値が入ってるので仕方ないです。
そういうもんだと解釈して下さい。
 
 次に、それぞれの値について書いていきますが、GTAGarageさん[http://bit.ly/xQ2BcW] の情報を
元に書いているのでそっちを見た方がいいかもしれません。
 
■ c 24
■ Jaykong
  アニメーションの名前です。IFP名ではありません。IFPの中にはいくつものアニメーションを登録する
ことができますが、これはその1つをGrabしてテキスト化したものなので、その名前が付いてるんですね。
ちなみにJaykongとは私が作ったカスタムモーションの名前です。
 「c 24」の通り、アニメーション名は24文字まで入力が可能です。ただし、GTAの変数は長文字列型の
変数でも16文字の文字列しか入れることができないため、16文字以上の名前は避けた方が無難です。
 
■ i 3
■ 2 544 1
  「Integer型の数字が3つ」ですから、「2」「544」「1」ですね。
 「2」は、このテキストファイルに出力された、アニメーション情報が記述されているボーンの数です。
今回は説明のためにR UpperArmとR Forearmの2つを抜き出したと言いましたので、2になってますね。
 「544」は、この「Jaykong」のアニメーションの動作データが全部で544byteありますよ、という意味です。
これは後ほど説明します。
 最後の「1」は予約みたいで、1固定でOKです。
 
 
 ここまでが「Jaykong」というアニメーションのヘッダ情報になります。ここから下はJaykongの実際の
動作データの羅列です。
 
 
■ c 24
■ R~UpperArm
  ボーン名です。以下に記述するデータがどのボーンに対するものかという識別子ですね。
 注意事項として、「R UpperArm」ではなく「R~UpperArm」です。
 
■ i 3
■ 4 17 22
  「4」と「17」と「22」ですね。
 「4」は、GTAGarageではボーンがRootの時は4、それ以外は3と書いてありますが、3でも4でも動作
するようです。4にしておけばいいんじゃないでしょーか。
 「17」は、このボーンの動作データが全部で何フレームあるかということです。動作開始から終了まで、
一切変化点がなければ最初と最後のフレームしかないので、2になります。
 「22」は、そのボーンのID番号です。色んなアニメーションをGrabして、どのボーンがどのIDになるかを
把握しておくとよいでしょう。「R~UpperArm」は22番ということですね。ちなみにRootが0番です。
 GMAXの「Select Object」で「Display」にチェックを入れたときの並びと同じですので、それを見れば
いいかもしんない。
 
■ w 5
■ 626 2534 1066 -2970 0
 Word型の数字が5つという意味でしたね。
 最初の4つはそれぞれQx・Qy・Qz・Wという、ボーンの回転を現すクォータニオン値(四元数)になります。
ボーンを回転させるときに使う「Select and Rotate」というボタンを押したとき、下のX・Y・Zの数字が入る
ところに回転の量が表示されますが、それを四元数に変換したものです。
 変換式は、
 
ψ=RotateX
θ=RotateY
φ=RotateZ
として、各クォータニオン要素は
 
Qx = cos(φ/2)cos(θ/2)sin(ψ/2) - sin(φ/2)sin(θ/2)cos(ψ/2)
Qy = cos(φ/2)sin(θ/2)cos(ψ/2) + sin(φ/2)cos(θ/2)sin(ψ/2)
Qz = sin(φ/2)cos(θ/2)cos(ψ/2) - cos(φ/2)sin(θ/2)sin(ψ/2)
W = cos(φ/2)cos(θ/2)cos(ψ/2) + sin(φ/2)sin(θ/2)sin(ψ/2)

です。cosとsinが混在していることから、90°ごとに+と−がころころ入れ替わりますのでご注意下さい。
 最後の1つは時間を示します。恐らくフレームです。ここでは0なので0フレーム目、つまり最初のフレーム
であることを指しています。

■ w 3
■ 71 -6 21
 これは一番分かりやすい数字で、X・Y・Z座標です。GMAX表示上での「0.001」がここでの1になります。
つまりGMAX上ではそれぞれ「X 0.071 Y -0.006 Z 0.021」に対応します。
 
 上の5つのデータとこの3つのデータが1フレーム分のデータセットになります。つまり、回転データで
4つ、時間データで1つ、座標データ3つ、合計8つのデータで1フレームが成り立っているということです。
 
 で、さっきの「544」ですが、この「Word型データ」が動作データそのものですので、その合計値を示す
ものになります。ただし、Word型は1つのデータが2byteなので、実際には全部で「544 / 2 = 272」の
動作データがあることになります。さらに、1フレーム当たり8つのデータと言いましたので、
全部で「272 / 8 = 34」フレームあるということになります。
 あれ?17フレームじゃなかったっけ?と思った方。あれはあくまでそのボーンについてです。今回は
R UpperArmとR Forearmの2つのボーンがあるので、合わせると34フレームになるわけです。
同じフレームでそれぞれの動作データを登録していたので、今回はちょうど17x2=34になっています。
 
 
 こんな感じのデータが延々続きます。
 で、最後にこのアニメーションが入っているIFPファイルそのもののヘッダ情報が用意されます。
IFPファイルを「IFP Dump」して「Replace」して「Grab」するとIFPファイルそのものをテキストファイル化
できますが、そのJaykongのアニメーション部分を今回のテキストファイルと差し替え、用意された
ヘッダ情報をIFPのヘッダと入れ替えればOKというのは、皆さんご存じかと思います。
 一応、ヘッダ情報についての解説をしておきます。
 
■ c 4
■ANP3
 IFPの形式。「Animation Package 3」というフォーマットだとゆーことだそうです。よくわからん。
 
■ i 1
■ -51852
 データファイルの末尾までのオフセット値らしいです。謎の数値ですね。ただし、末尾までのオフセット
ということは、データの量に応じて変化するということで、データが0のときにはいくつの数字が入るのか
分かれば、これは計算できることになります。
 よく分からない。ころころ変わるっぽい。
 とりあえず、いくつに設定してもGTAに読ませなければ関係ないようなので、適当な数字を入れて下さい。
その後Ryosuke氏のGTA Animation ManagerでIFPを読み出し、Saveすることで正しい値が入るようです。
それでもダメなら、GMAXに読み込ませてGrabすればOK。
 
 
■ c 24
■custom
 IFPファイルと同じ名前がいいんじゃないかな!

■ i 1
■ 1
 このIFPファイルに入っているアニメーションの数。
 
 
 
以上となります。これを理解しておけば、メモ帳からアニメーションデータを作り、それをIFPに変換して
無事動かすことも可能になります。IFPへの変換はT2B.exeを使ったアレですので、ご存じかと思います。
 
以上、おわりヾ( ゚д゚)ノ゙
 
 
 
 

身長比較

イメージ 1
 
 てことで、紅魔勢が揃ってきました。
 
 一番気になっていたのが、美鈴の身長とレミリアとの不協和感。ハイヌさんのモデルを
K.C.エピステーメーさんが神綺様に改造したものを美鈴に改造しました。お陰でお姉さんっぽくなり、
身長もレミリアよりぐっと高く、原作寄りに。ただし東洋人なので西洋人よりは背は低いです。
 
 元々レミリアは見た目の年齢が13〜14歳くらいという個人的な感覚なので、このハイヌさんのレミリアは
まさにジャストポイント。そこから3〜4歳大人な雰囲気なのがパチュリーで、小悪魔は美鈴と身体年齢的には
ほぼ同じといったところ。小悪魔はBasilicoさんのモデルの顔を若干改造して身長を高くしてあります。
 
 第10話のオープニングにこれらのキャラが登場するので、どうしても作らねばならなかったのでした。
お陰であっという間に前回投稿から2ヶ月を過ぎてしまいましたが、とりあえず昔から一番気にしていた、
モデル製作が可能になったのでもはや邪魔するものはあんまりない。
 
 とりあえず、オープニングだけでもできたら上げましょうかね。
 
 
 

.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事