第8回 〜 機体を組み立てる その2 〜


 前回組み立てた胴体に、ランディングギアを取り付けましょう。最後の「END」の前に、次の SRF ノードを追加します。
SRF "0003"
FIL nosegear.srf
CLA 0
NST 2
STA 0.00 0.00 0.00 0 0 0 1
STA 0.00 0.00 0.00 0 0 0 1
POS 0.00 -0.55 2.50 0 0 0 1
CNT 0.00 0.00 0.00
REL DEP
NCH 0
END

SRF "0004"
FIL maingear.srf
CLA 0
NST 2
STA 0.00 0.00 0.00 0 0 0 1
STA 0.00 0.00 0.00 0 0 0 1
POS -0.40 -0.55 -0.20 0 0 0 1
CNT 0.00 0.00 0.00
REL DEP
NCH 0
END

 POS を使って、上下左右、そして前後に移動させて配置しているのはもうおわかりかと思います。Surfview を起動して、ノーズギアと左のメインギアが取り付けられていることを確かめましょう。

 
 さて、次は右のメインギアを取り付けますが、その前に、パーツを回転させるにはどうするかを説明しますね。


 POS 行の、座標のあとに続く3つの値がそれぞれ、X軸・Y軸・Z軸を中心とした回転量を指定する部分です。 ここに角度を入力すればその分だけパーツが回転するというわけなのですが、.dnm で使われる角度の単位が「YS 形式」と呼ばれる独自のものであることに気をつけなければなりません。


 「YS 形式」の角度は、180°=32768となっています。よって 1°は 32768 ÷ 180 = 182.0444... となります。この182.0444...という値を使って、単位を変換することができます。

 例えば 20°を YS 形式に直す場合は

 20° × 182.0444... = 3640.88...(≒ 3641)

 となります。逆に、YS 形式の 8192 を「°」に直すと

 8192 ÷ 182.0444... = 45°

 となります。
 電卓のメモリにこの182.0444...を定数として入れておくと角度がすぐに求められるので便利です。
(ちなみにこの数に名前はないようです)


 また、それぞれの軸に対する回転は左図のようなイメージです。角度がプラスの値であれば矢印の方向(右回り)に、 マイナスであればその逆(左回り)に回転するということを覚えておいてください。

 また、航空機の運動にならって、それぞれの回転を( )内の名前で呼ぶことがあります。


SRF "0005"
FIL maingear.srf
CLA 0
NST 2
STA 0.00 0.00 0.00 0 0 0 1
STA 0.00 0.00 0.00 0 0 0 1
POS 0.40 -0.55 -0.20 32768 0 0 1
CNT 0.00 0.00 0.00
REL DEP
NCH 0
END

 挿入する SRF ノードはこのようになります。左メインギアとほとんど同じように見えますが、ID とPOS のX座標がちがうことそしてY軸を中心として 180°回転していることに 注意してください。チェックして図のようになっていればOKです。



 さて、せっかくですから引込脚にしましょうか。これでも一応ジェット機ですしね。


 このように操作にあわせて変化するパーツがほしいときは、CLAとその下にあるNSTSTAという 3つの行に手を加えます。

 まず、CLAについてですが、これはそのパーツが何なのか、あるいは、どんな操作でそのパーツが変化するのかということを 指定する行です。例えば、「これはランディングギアだ」と指定すればキーを押すと動くようになります。また、「これはエレベータだ」「エルロンだ」 というような場合は操縦桿の操作で動くというわけですね。

 CLA には多くの種類があります。どんなものがあるかはこちらの表をご覧下さい。

 CLA を決めたら、STAで、そのパーツが具体的にどんなふうに変化するのかを指定します。CLA によって STA の数や意味が 異なっていますから、先ほどの表を見て確認しましょう。そして、STA の行数がそのまま NST の値になるということも覚えておいてください。



 ではまず、ノーズギアを引き込めるようにしてみましょう。X軸を中心に後ろへ90°回転させて胴体に収納します。といっても、先ほど追加したノーズギアの SRF ノードにちょっとだけ手を加えるだけですけどね。
SRF "0003"
FIL nosegear.srf
CLA 0
NST 2
STA 0.00 0.00 0.00 0 -16384 0 1       ← ここです。
STA 0.00 0.00 0.00 0 0 0 1
POS 0.00 -0.55 2.50 0 0 0 1
CNT 0.00 0.00 0.00
REL DEP
NCH 0
END

 できたら SurfView で動作を確認します。フルキー(テンキーじゃない方)の1,2,3がそれぞれの状態(STA)に対応していますので、まずは押してみましょう。

 1を押して収納、2を押して展開されれば大丈夫です。ランディングギアの STA は2行ですから、3を押しても変化はありません。


 今度はメインギアを引き込めるようにしてみましょう。Y軸を中心に60°、Z軸を中心に100°回転させて胴体に収納します。左右で回転方向(角度のプラスマイナス)が 異なることに気をつけてください。
SRF "0004"
FIL maingear.srf
CLA 0
NST 2
STA 0.00 0.00 0.00 -10923 18204 0 1       ← ここと…
STA 0.00 0.00 0.00 0 0 0 1
POS -0.40 -0.55 -0.20 0 0 0 1
CNT 0.00 0.00 0.00
REL DEP
NCH 0
END
SRF "0005"
FIL maingear.srf
CLA 0
NST 2
STA 0.00 0.00 0.00 10923 -18204 0 1       ← ここです。
STA 0.00 0.00 0.00 0 0 0 1
POS 0.40 -0.55 -0.20 32768 0 0 1
CNT 0.00 0.00 0.00
REL DEP
NCH 0
END

 STA 行の数値だけではいまいちイメージがつかめなかったかもしれませんが、このようになります。どうして? という方は Y軸のみ、もしくはZ軸のみ角度を入力して試してみるとよいでしょう。

 なお、この機体では試していませんが、STA の座標に値を入力すると、POS の座標を基準として、パーツを上下左右、そして前後に 平行移動させることができます。


 ではここで、STA 行での動きの設定に関して少し補足させていただきます。今はなんとなく知っていてもらえればいいです。
 STA の切り替えが完了するまでの時間は、CLA によって少しずつ異なります。言いかえれば、STA の値が同じでも、CLA を変えると動く スピードが変わってくるということですね。あと当然ながら操作も変わります。

 また、同じ CLA で移動距離を2倍にした場合、そのパーツは2倍の速度で移動することになります。時間が決まっていますからね。

 移動はいつも一定の割合で行われますが、回転の場合、その角度が大きいと、はじめはゆっくりと動き、中盤で一気に 向きを変えて、またゆっくりと動くという、ちょっと変わった動作をします。
 
 さらに角度を大きくして ±180°(±32768)回転させた場合は、間をすっとばして、一瞬でぱっと向きを変えます。これを逆に利用 して、より高度な動作表現を行うこともできます。

 あ…また文字が多くなってしまいましたね。本当に申し訳ありません。ただ、動作設定は.dnm の要ですから、どうかお許しを。

 
 
 そして、何か忘れているような…あ、これですよこれ。

 この座標でもない角度でもないこれは「表示フラグ」といい、パーツの表示・非表示を指定します。0で非表示、1で表示になります。

 ノーズギアと左右のメインギア、あわせて3つの SRF ノードには、それぞれ2行ずつ STA がありますね。このうち、格納状態である1行目の表示フラグを 0にしましょう。これで、胴体に引き込まれている間はギアが表示されなくなります。


 非表示 → 表示と切り替わる(出現)のはすぐですが、表示 → 非表示と切り替わる(消滅)のは動作してから、いちばん最後になります。


 これで動作設定の基本はすべてです。次回はぶら下げ(パーツ同士の連結)について理解していただくほか、.dnm の作成においておそらく最も 理解しにくい部分と思われる「軸あわせ」について少しずつやっていきます。

 それでは、おつかれさまでした。




前へ   次へ

inserted by FC2 system