FSX 翼の Flex Skinned アニメーション
2014/02/11 編集中
翼のたわみをアニメーションする方法です。
FSX_Gmax を使用します。 たわみにフラップやエルロンも連動させなくてはならないので
かなり面倒です。 Envelope の Vertex の Weight の設定を間違えると、とんでもない胴体
が出来てしまいます。
Wing の Skinned Animation に取り掛かる前にやっておくこと
主翼にからむ Object は全て完成させておく。
Fuse ( 主翼を含む胴体)
Aileron (Animation は設定しない)
Flap (Animation は設定しない。Flex しない Aileron は設定しても良い)
nav_light、 attachpt_navred と同 green
landing_light、attachpt_landing
FSX SDK にある Douglas DC3 を例に説明します。(Douglass_DC3_SDK.gmax)
このファイルは開く時にエラーメッセージが5回出ますが、OK して無視する。
1.Bone を表示させる
この DC3_SDK.gmax は、gmax に読み込んでもBone は表示されません。
表示させるには、右パネルの Display アイコンをクリックして、Hide by Category の
小窓にある Bone をクリックして、その横の Remove をクリックすると新たにウィンドウ
(Remove Display Filter)が開く。
このリストのなかから Bone をクリックして OK をクリックすると、Bone が表示される。
新規に作成する時も同じです。 Export をする前で非表示にもどす。
完成した Bone (左右)
注意)
Object(パーツ)を作成したら、Editable Mesh に入って抜けて、Reset Xform を実行する。
特に可動部は、これをしておかないと奇異な動きをしてしまう。 Bone はする必要なし。
2.主翼にMaterial の設定
Material Editor で設定するのですが、一般的の方法と一点を除いて同じです。
その一点とは Enhanced Parmeters →Skinned にチェックを入れるだけです。
コピーしてチェックを入れるのが簡単な方法です。
名前の例 FSX_DC3_skinned_mesh
UVW Mapping で貼り付ける。
この項は後でも可能ですが、不具合の早期発見のために最初にやっておく。
対象となる Object は fuse
l_aileron
r_aileron
l_flap (flex しないflap は通常の Material とする)
r_flap です。
nav_light,landing_light等は、対象とならない。
3.Bone の作成と Animation
(1) wing の bone と Animation
wing の Bone 作成方法
片側の翼用の Bone の作成を行う。 ここでは右翼用から始めます。 反対側は
Animation を設定後、コピー等を行い作成。
右覧パネルの2段目の右端部の Systems をクリック
Object Type の Bones をクリック
下部の Bone Parameters の Bone Object で Bone の大きさを設定する
DC3) Bone Parameters
Width:0.2 −−−厚み
Height:5.0 −−−前後の大きさ
Taper:0.0 −−−先細りの程度 翼の場合は 0.0
長さ 3.183 3.183 3.303 1.3 で構成されている
(長さはメッシュ線上で区切るのが基本)
前後の長さと Taper はどうしてこういう設定になるのかは不明。
終端の Bone は IK Solver を使用しない場合は削除しても良い。
DC3は最初の Bone 連に終端 Bone がない。
Bone Fin は使用しない。(軸方向の回転をさせないので。)
Top view 画面で、胴体に少し食い込んだ位置をスタート地点として、クリック。翼に沿って
次のポイントをクリック。 繰り返して、最後に右クリックすると最先端を表す Bone が出来る。
Front View 画面 (or Back View) にして出来た Bone 群が翼の中に納まるよう調整する。
DC3 の場合、最初に Bone01 Bone02 右クリックで 終端 Bone03 を作成して、次に少し
はなして Bone04 右クリックで 終端 Bone_05 を作成。 そして Bone03 を
削除。 そして Bone04 を Bone02 に Link しているようです。
Bone_03 の削除
そして、名称変更で
bone01 ------>bone_right_inner
bone02 ------>bone_right_middle_1
bone04 ------>bone_right_middle_2
bone05 ------>bone__right_outer
としています。
Bone は link されているので位置の調整がしにくいので、Hierarchy → Pivot →
Don't Affext Children をクリックして調整する。 終わったら再度クリックして
元に戻しておく。 長さの調整もこの方法で Move アイコンを使って行う。
Bone は Vertex の移動等で変形させてはならない。Mirror したときに不具合が出る。
Scale も使用禁止。
Hierarchy
この段階での Link 状況。 左翼の Bone は出来ていない。
例)DC3
bone_right_inner ------------> 最上位
bone_right_middle_1
bone_right_middle_2
bone_right_outer
Douglas_DC3 ------------> 最上位
DC3_LOD_400
以下略
attachpt_landing_
attachpt_navred_
l_light_lens
l_nav_light_
wing の Animation 設定方法
Time Scale の設定 下部の時計アイコン(Time Configulation)をクリック。
窓が開くのでAnimation 覧の End Time を200 になっていなかったら 200 に変更する。
Re-scale Time をクリック 200 になっていることを確認して OK をクリック。
さらに OK をクリック これはエルロンのbone が 100〜200 を使うためです。
(サンプルの DC3 は300に設定されているが、どうして?)
イ) Bone の節点を回転することでアニメーションを設定する場合
これは一般の Animation の方法と同じです。
Bone02 を選択してアクティブにする。
右パネル上部の Motion をクリックしてロールアウト画面を出す。
下部のスライダーを 0 に 右パネルの PRS Parameters の下部のRotation をクリック。
Create Key の Position をクリック。
スライダーを 100 に移動 右パネルの Rotation をクリック。
Key Info の矢印に 1 と 2 が入る。
スライダーが 0 にあることを確認して下部の Animation ボタンをクリック。
スライダーを 100 に移動(または、Key Info の矢印で2を選択)。
Bone02 の節点を回転ツールで回転、続いて Bone03 Bone04 も回転させて、
最終位置が確定したら Animation ボタンをクリックして抜ける。
Play Animation で動きを確認する。
(DC3 の Bone 名称は
bone01 ------>bone_right_inner
bone02 ------>bone_right_middle_1
bone04 ------>bone_right_middle_2
bone05 ------>bone__right_outer です)
Bone が上がった状態
翼本体とは Skin が設定されていないので、連動していない。
この段階で、下記 4 の Skinned の設定をして Animation が
Bone と Skin で連動するか、確認しても良い。
ロ) IK Chain を使ってアニメーションを設定する場合 (参考)
操り人形のように、糸でアニメーションするようなもの。
Inverse (逆)とは、太ももがら動かすのではなく、逆のカカトから動かす
からであるか?
Object(ここでは Fuse)を Freeze するためにクリックしてアクティブにする。
画面上で右クリックして Freeze Selection をクリックするとグレー色になる。
機体中心より2番目の Bone をクリックしてアクティブにする。
上部のメニューバーの Animation をクリック IK Solvers → IK Limb Solver を選択。
2番目の Bone から点線が伸びるので3番目の Bone をクリック。
これで IK_Chain01 が出来る。
次に3番目の Bone をクリックして同様な方法でに処理して最後の Bone をクリック。
IK_Chain02 が出来る。
この IK_Chain をクリックして上下に動かすと Bone が動く。
Ik Chain の設定
IK_ Chain01 IK_Chain02 が設定された
Unfreeze All をクリックして object の freeze を解除しておく。
翼のたわみは手足ほど複雑な動きでないので IK の設定はしくても Animation が
可能。
DC3 も IK を使用していないようだ。
タイムスケール設定は一般の Animation 設定と異なる。
上記イ)で回転させるの変わりに IK Chain で移動させる。
画面のIK chain をクリックしてアクティブに。
Motion をクリック。
右パネルに IK Chain の Parameters が表れる。(一般の Animation 用とは異なる)
下部のスライダーを 0 に。
右パネルの下部のほうにPRS Parameters の入力部があるので下部のPosition をクリック。
Create Key の Position をクリック。
スライダーを 100 に移動 右パネルの Position をクリック。
Key Info の矢印に 1 と 2 が入る。
スライダーが 0 にあることを確認して下部の Animation ボタンをクリック。
スライダーを 100 に移動(または、Key Info の矢印で2を選択)。
IK Chain を上下に移動して最終位置が確定したら IK Chain を削除する。
Animation ボタンをクリックして抜ける。
Play Animation で動きを確認する。
* IK Chain を削除しないと FSX で 可動しないらしい。
以上、参考
wing の 反対側 Bone の作成方法
メニューバーの Mirror が使えれば楽なんですが、gmax では、バグで使えません。
これは gmax 上では不具合が出ないのですが、FSX に行くとおかしな表示になります。
(右欄の Modifier -->Mirror を使いたいところですが、既に Animation の設定が
されているので、これを使うと翼が下に Animate されてしまいます。)
いちどきにコピーができませんので、
次の2グループに分けて別々にコピーします。
A Bone_inner / Bone_middle_1 のグループ
B Bone_middle_2 / Bone_outer のグループ
Aグループを clone する。 その場で180°回転(右廻り)して、移動で左翼の定位置に配置。
Bグループを clone する。 hierarchy で右 bone の中に出来てしまうので、link を解除して
最上位の位置にもってくる。
Bone_middle_2
Bone_outer
Link して次のように
Bone_middle_2
Bone_outer
これを180°回転して定位置に移動。
さらに Link
Bone_inner
Bone_middle_1
Bone_middle_2
Bone_outer
になるように。
これで、右 Bone の Animation が既に設定されているので、この設定が左にも
コピーされます。
Hierarchy
この段階での Link 状況。
例)DC3
bone_left_inner ------------> 最上位
bone_left_middle_1
bone_left_middle_2
bone_left_outer
bone_right_inner ------------> 最上位
bone_right_middle_1
bone_right_middle_2
bone_right_outer
Douglas_DC3 ------------> 最上位
DC3_LOD_400
以下略
attachpt_landing_
attachpt_navred_
l_light_lens
l_nav_light_
参考
gmax において 以下に記述したメニューバーの Mirror はバグのため使えない
簡単で分かりやすいのですが、 3DS Max なら可のはず。
Bone は Copy と Mirror で作成。 (Animation もコピーされる。)
メニューバーの座標系を View から World へ変更 さらにその右の
Use Transform Cordinate Center に変更。
作成した側の 翼の Bone を全て選択する。
同じメニューバーの Mirror Selected Object をクリック。
窓が開く Mirror Axis で X を選択。
Clone Selection で Copy を選択。
出来た Bone はリネームしておく。
以上、参考です。 gmax では、使えません。
(2) Aileron / flap の bone と Animation
イ) aileron / flap の Bone作成
これらの Animation は Bone を作成してこれに連動させて Object を動かす。
Flex wing への連動は、最後に wing の Bone に aileron/flap の Bone を Link して行う。
この段階で行うと Animation の設定に支障をきたす。(後記の Hierarchy を参照)
DC3)
flap は@胴体側の Flex しない部分に付く flap01 と
AFlex する部分に付くflap02 に分かれています。
当然 Flap01 は普通の Animation 設定です。
flap02 はBone Animation となります。 aileron も Bone で Animation
させます。 すべて単独の Bone となり、終了の右クリックでできる Bone は
削除する。位置は各 Object の 前後方向(翼と直角方向)の Edge 位置の内部です。
(下図を参照)
Bone Parameters
Width:0.12 −−−厚み
Height:0.2 −−−前後の大きさ
Taper:100.0 −−−先細りの程度
長さ 0.833 (下図の長さ程度)
Bottom View 主翼の bone は隠しています
Top View
Hierarchy
この段階での Link 状況。
例)DC3
Bone_r_aileron01 ------------> 最上位の親
Bone_r_aileron02
Bone_r_aileron03
Bone_r_aileron04
Bone_r_flap01
Bone_r_flap02
Bone_r_flap03
bone_right_inner
bone_right_middle_1
bone_right_middle_2
bone_right_outer
Douglas_DC3 ------------> Bone_l_flap01 と同列
DC3_LOD_400
以下略
attachpt_landing_
attachpt_navred_
l_light_lens
l_nav_light_
ロ) aileron / flap の反対側 Bone の作成
Clone --> Modifier --> Mirror してから、マウスで移動する。
目検で良い。
(X座標の符号を反転しての移動は 2つ以上の Bone 選択になるので、
できない。 正確にしたいなら、1つづつ座標を確認しておこなう。)
この段階では 翼の Bone と Link してないのと、skinned が設定されて
いないので、今のうちに aileron の角度を Animation の初期位置にセットしてしまう。
r_aileron の bone は 上向き
l_aileron の bone は 下向き
ついでに、r_aileron ,l_arileron 自身も、同じ角度にセットしておきます。
ハ) aileron / flap の Bone Animation
Bone のみで Animation を行う。 設定は 翼用の Bone に準じる。
flap から設定していく。
(flap の場合は、左右対称なので右 bone を作成する時に Animation を設定して
おくと、左 bone に Animation がコピーされる。)
time
Bone_flap の場合 0 〜 100
aileron は上記の初期角度の設定がしてあるか確認してからすること。
右用を作成してから、左用に進む。
time
Bone_aileron の場合 100 〜150 〜 200 (中立軸がある)
この段階で、下記 4 の Skinned の設定をして Animation が
Bone と Skin で連動するか、確認しても良い。
余談
Jet Way の伸び縮みする Bone の設定
Hieralchy → Rotate Joints で X,Y,Z の Active のチェックをはずす。
Sliding Joint → X Axis の Active と Limit にチエックをいれる。
From の数値を変える。
4.Skinned の設定
Bone の Aimation に追従して翼がたわむ設定
Bone の動きが翼等にどの程度に影響を与えるかの設定です。
wing の Skin 設定
(注意)
サンプルの DC3 を使って実験する場合は、Bone を削除するだけでは、だめです。
すでに設定された Envelope も削除しておかないと、FSX に行った時に不具合がおきます。
Skin ---> Remove Bone で 小窓にある bone を削除しておく。
翼のある Object (例 fuse) をクリックしてアクティブにする。
Modifier List から Animation Modifier にある Skin をクリック。
Parameters の Add Bone をクリック Select Bones ウインドウが開き、
すでに作成されている Bone が表示されるので、全ての Bone を選択して Select をクリック。
右パネルの窓に選んだ Bone が表示される。 既に読み込んであると、いきなり Bone リスト
が表示される。
Bone をクリックして、その上部の Edit Envelopes をクリックすると 、
エンベロープのカプセルが発生して、vertex に weight が無色〜青〜黄色〜橙〜赤色で
着色される。 これがこの Bone の影響範囲とその Weight です。 この画面に入ると既に
Skin が設定されたことになります。
調整はカプセルの inner と outer の□しるしを移動して影響範囲を調整する。
Vertex の色は赤が影響度が最大となる。
Envelope の編集画面を出す
下図の影響範囲と影響色(Weight)を参考にして、決めてください。
bone_right_inner のエンベロープ
bone_left_inner のエンベロープ
bone_right_inner のエンベロープとは大きく異なります。 胴体の Vertex が赤に
なっていないと、gmax 上では正常でも FSX に Export すると奇異な胴体になって
しまいます。 理由は不明。
bone_right_middle_1 のエンベロープ
Bone_right_middle_2 のエンベロープ
Bone_right_outer のエンベロープ
Bone_right_middle_1の影響度
* weight の直接入力
上記の状態で
filter の Vertices のみをチェックとする 残りの2か所はノーチェック
これ→□Vertices □Envelopes
□Cross
マウスで対象となる Vertex を選択
Weight Property → Abs.Efect を 0〜1.0 の間で調整
?0.5 以下は OFF?
▽△のどちらかをドラッグすると、数値が変化します。
終わったら filter の設定を元にもどしておく、そうしないと
Envelope カプセルの拡大縮小が出来なくなる
Weight の調整
* Weight をペイントブラシで調整
この方法は、Vertex の上をドラッグして色(Weight)を付ける方法です。
上記のフォールアウトの Paint Weight をクリックする。
その下の Radius (半径) を0.5ぐらいにする。 Vertex にマウスポインターを
当てると Gizmo が出ます。
その Gizmo で対象となる Vertex 群をマウスドラッグしてこすると、
色が変わります。
Paint_Weights
右 Bone を Clone して左 Bone を作成しても、 Skin の Envelope は コピーされない。?????
参考 単独の Envelope のコピーの方法
Add Bone して全てのBoneを選択 → Edit Envelope 欄の下の窓に全ての
Bone が入っていることを確認 → ここから片側の Bone1 を選択 →
Envelope Properties のCopy アイコンをクリック → 反対側の対応する
Bone をクリック → 同じく Paste アイコンをクリック
Weight は、コピーされない。
Play Animation で動きを検証する
奇異な曲り方をしたら、Envelope を調整する。 Weight も調整する。
flap / aileron の Skin 設定
wing と同じ。
上記の直接入力で Bone 位置にある Vertex を
移動アイコンで選択して
Weight Property → Abs.Efect を 1.0 (最高 色は赤)にする。
Bone_r_aileron01
中央のBone_r_aileron02 や03 より影響範囲が広い
Bone_r_aileron04 はややサイズが大きい
Bone_r_flap02
他の2つも同じサイズ
Play Animation で Bone と Skin が連続してスムーズに連動するか確認する。
ここまででは、wing の Animation と aileron/flap の Animatinon は連動していません。
次の Link で連動するようになります。
5.Link
以下の link 状態にする。
翼の Bone に aileron / flap / landing light 等を Link させる。
flap と aileron の Bone は近接した翼の Bone に Link するのが
原則です。
Hierarchy
例)DC3
Bone_l_flap01 ------------> 最上位の親
bone_left_inner
Bone_l_flap02 bone_left_middle_1
attachpt_landing_3
Bone_l_aileron01
Bone_l_aileron02
Bone_l_flap03
bone_left_middle_2
Bone_l_aileron03
bone_left_outer
attachpt_navred_1
Bone_l_aileron04
l_nav_light_400
l_light_lens
Bone_r_flap01
以下、上記の l がrと名称が変わるだけ。
省略
Douglas_DC3 ------------> Bone_l_flap01 と同列
DC3_LOD_400
以下略
Play Animation して動作の確認をする。
不具合があれば修正をする。
Skinned Animation の確認
6.GUIDE の設定
もし、これまでに設定がされていなければ、
LODNameTool
Create new GUID
Friendly Name Go
7.Animation Manager の設定
wing
Select by Name で 右翼用の Bone を全て選択 (エルロンやフラップ用を除く)
Animation Manager に Maltiple が表示される r_wing_flex を選択
Start 0 End 100 Create をクリック
同様に左翼用も設定 l_wing_flex
* SDK の DC3 の左主翼は l_wing_flex が設定されていないので、Export しても
Flex しない。右主翼は Flex します。
flap / aileron
同様に
r_flap_percent_key, r_aileron_percent_key を選択
l_flap_percent_key, l_aileron_percent_key を選択
time
Flap の場合 Start 0 End 100
aileron の場合 Start 100 End 200
8.Export
file 名をつける
メニューバーの File --> Export
開いたウインドウの
Export Animation と Export Skin をチェック
mdl ファイルが出力される
FSX で飛行 Flap Down の状態
Flex wing に関係の無いパーツは、削除して Export しています。
主翼は地上では水平に近い上半角ですが、離陸時から主翼がそっていきます。
図は最大の状態です。 外側のフラップとエルロンとが追随してそっています。
[ 戻る ]