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 の確認



.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 しています。
  主翼は地上では水平に近い上半角ですが、離陸時から主翼がそっていきます。
  図は最大の状態です。 外側のフラップとエルロンとが追随してそっています。



                   [ 戻る ]