第7回 〜 機体を組み立てる その1 〜
さぁ、機体作りも後半戦。ここから組み立て―.dnm ファイルの作成に入ります。.dnm ファイルを作るための便利なツールも存在しますが、
今回は .dnm の内容を理解することが重要なので、テキストエディタを使って組み立てを行います。
使用するテキストエディタですが、ここでは Windows 標準付属の「メモ帳」(notepad.exe)を使います。以下「メモ帳」と記述しますが、
他のテキストエディタを使ってももちろんできます。ただし、行番号が表示できる機能のあるものを使って下さい。
ちなみにメモ帳の場合、「書式」メニューの「右端で折り返す」のチェックをはずし、「表示」メニューの「ステータス バー」にチェックをしないと
行番号が表示されませんのでご注意下さい。
また、今後メモ帳で .srf ファイルや .dnm ファイルを開くことが多くなります。これらのファイルをダブルクリックした時に、すぐに
メモ帳が起動するように設定しておくと便利です。
さて、メモ帳を起動したら、まずはこの2行を入力します。
DYNAMODEL
DNMVER 1
この2行は、これが.dnm ファイルであること、そしてそのバージョンがいくつなのかを表しています。バージョンは通常1でOKです。
(バージョンによる仕様の違いついては「WiFTeC」を参照)
ところで、第1回で、「.dnm はプラモデルのキットのようなもの」と
言いましたが、実はその内容もこれとよく似ています。
.dnm ファイルは大きく分けて、PCK セクションとSRF セクションという、ふたつの部分からできています。まず先に必要なのは PCK セクションで、
今まで作ったパーツをここで定義していきます。「部品に名前をつけて箱詰め」しているようなものだと考えてください。
では、具体的な方法を解説します。まず、上の2行から1行あけて、このように入力します。
DYNAMODEL
DNMVER 1
PCK body.srf
できたらこれはそのままにしておき、もう一つメモ帳を使って、胴体の .srf ファイルを開きます。どの場所に頂点があり、どのように面が張られているか、
表裏の設定や色はどうなっているかなどのデータがずらっと並んでいるのですが、その詳細は今はとりあえずいいです。
まず、「SURF」の前をクリックして、一番下までスクロールします…
そしてシフトキーを押しながら、最後の「E」の後ろをクリックします。ここまでのすべてが選択されますので、コピーしましょう。
コピーが済んだら、次は行数を調べなくてはなりません。最後の「E」の後ろをもう一度クリックすると…
ここに今カーソルがある位置が表示されます。どうやら、胴体の .srf ファイルは 451 行あるようですね。
(1,2行の違いがあるかもしれません)
行数がわかったので、.dnm に貼り付けましょう。「body.srf」の後ろにさっきの行数を追加するのを忘れないようにして下さいね。
DYNAMODEL
DNMVER 1
PCK body.srf 451
SURF
V 0.000 0.000 4.050 R
V 0.000 0.200 3.900 R
〜中略〜
E
E
これで胴体のパーツが「箱詰め」されたことになります。パーツをコピーして貼り付けるだけですから、簡単ですよね?
というわけで他のパーツもどんどん入れてしまいましょう。前回スクリプトを使った .srf ファイルについては、そちらをコピーします。
「作った時とファイル名がちがう」とお思いの方もいらっしゃるかと思いますが、後述する SRF セクションにて読み出す時に、ここでつけた名前を使う
ので、できればそろえてもらえると助かります。違う名前にした場合は、SRF セクションのファイル名もそれにあわせて変えることになりますのでご注意下さい。
作業の流れとしては、 PCK + ファイル名を書く → パーツをコピー + 行数を調べる → 行数を書いてから貼り付け のくりかえしです。
下の例は行数が異なっていたり、コメントが書かれていたりしますので、PCK の行はコピーせずきちんと打ってください。
DYNAMODEL
DNMVER 1
PCK body.srf 451 胴体
SURF
V 0.000 0.000 4.050 R
V 0.000 0.200 3.900 R
〜中略〜
E
E
PCK engine.srf 384 エンジン
SURF
V 0.000 0.000 0.500 R
V 0.000 0.000 -0.500 R
〜中略〜
E
E
PCK nosegear.srf 235 ノーズギア(前脚)
SURF
V 0.030 0.000 0.030 R
V -0.030 0.000 0.030 R
〜中略〜
E
E
PCK maingear.srf 192 メインギア(主脚)
SURF
V 0.000 0.040 0.040 R
V 0.000 -0.040 0.040 R
〜中略〜
E
E
PCK mainwing.srf 186 主翼
SURF
V -0.6000 0.0000 0.5000
V -0.6000 0.1000 0.0000 R
〜中略〜
E
E
PCK aileron_l.srf 33 左エルロン
SURF
V -6.0000 0.0000 -1.2000
V -6.0000 0.0160 -1.0000
〜中略〜
E
E
PCK aileron_r.srf 33 右エルロン
SURF
V 6.0000 0.0000 -1.2000
V 6.0000 0.0160 -1.0000
〜中略〜
E
E
PCK tailboom.srf 216 テイルブーム(後部胴体)と尾翼
SURF
V 0.0000 0.1000 -1.7500 R
V 0.0000 0.1000 -5.0000 R
〜中略〜
E
E
PCK elevator.srf 39 エレベータ
SURF
V 0.0000 1.6500 -7.5000
V -2.0000 1.6500 -7.2500
〜中略〜
E
E
PCK rudder.srf 33 ラダー
SURF
V 0.0000 0.0000 -6.4500
V 0.0000 1.5000 -7.0580
〜中略〜
E
E
ここまでで、すべてのパーツが組み込まれたことになります。ちなみに同じパーツは何度でも読み込んで使えますから、例えば4基のエンジンを装備したジャンボ機であっても、
PCK セクションにはエンジン一つ分のパーツがあればいいことになります。この辺はプラモデルとはちょっと違いますね。
さて、今度はSRF セクションの製作に入ります。さっきまでの PCK セクションが部品の箱詰めならこちらはパーツの配置や組み合わせが書かれた説明書の
ようなものです。
SRF "0000"
FIL body.srf
CLA 0
NST 1
STA 0.00 0.00 0.00 0 0 0 1
POS 0.00 0.00 0.00 0 0 0 1
CNT 0.00 0.00 0.00
REL DEP
NCH 0
END
上のひとかたまりを SRF ノードと呼びます。この SRF ノード一つで、パーツ一つ分の役割や動き、場所などを決めることができます。それぞれの行の
詳しい意味についてはYSFSモデリング用語集Wikiを見ていただくことにして、まずは実際に書いてみましょう。
SRF セクションは PCKセクションが終わったすぐ後から始めます。同じようにやってみてください。
E
E (ラダーの最後の「E」)
SRF "0000"
FIL body.srf
CLA 0
NST 1
STA 0.00 0.00 0.00 0 0 0 1
POS 0.00 0.00 0.00 0 0 0 1
CNT 0.00 0.00 0.00
REL DEP
NCH 0
END
SRF "0001"
FIL tailboom.srf
CLA 0
NST 1
STA 0.00 0.00 0.00 0 0 0 1
POS 0.00 0.00 0.00 0 0 0 1
CNT 0.00 0.00 0.00
REL DEP
NCH 0
END
END .dnm がここまでで完全に終わることを表します。
最終的にはすべてのパーツを読み込んで配置することになりますが、とりあえずここでいったん保存して、
実際にどのようになるのかを見てみることにしましょう。保存する時はファイルの種類をすべてのファイルにするとともに、
後ろに拡張子(.dnm)を忘れずにつけなくてはなりません。また、保存するフォルダの名前にも注意しましょう。全角が含まれていると
SurfView で読み込めません。
ファイル名は何でもいいですが、機体が「minagi」という名前なので、「minagi.dnm」としておきましょうか。
保存できたら、早速 Surfview で開いてみましょう。右のようになっていればばっちりです。
なお、メッセージが出て開けない場合は、.dnm ファイルのどこかに問題があります。最初の DYNAMODEL や最後の END がきちんとあるか、ファイル名は
間違っていないか、パーツの行数は正しいかなどをチェックしてみましょう。
SRFノードは 「SRF」から「END」までがひとかたまりで、「FIL」の行で PCK セクションにあるパーツ(.srfファイル)を読み込むことが
なんとなくわかってもらえたかと思います。
さてさて、SRF ノードには他にもいろんな名前の行がありますね。これらは一体何なのでしょうか。
ちょっと順番は違いますが、まずは、「POS」で始まる行について解説したいと思います。「POS」は「Position」すなわちパーツの場所を表す
行です。位置と角度の両方を指定できるようになっています。
では minagi にエンジンを取り付けて、その効果を見てみましょう。最後の「END」の前に、次の SRF ノードを追加します。
SRF "0002"
FIL engine.srf
CLA 0
NST 1
STA 0.00 0.00 0.00 0 0 0 1
POS 0.00 0.00 0.00 0 0 0 1
CNT 0.00 0.00 0.00
REL DEP
NCH 0
END
できたら上書き保存して、また SurfView で開いてみましょう。
…あれ?
どうやらエンジンの取り付け位置が低すぎて胴体にはまってしまっているようです。もう少し上に動かさないといけませんね。
そこで POS を使います。この行のうち、左から3つの数値はそれぞれX座標・Y座標・Z座標をメートル単位で表しています。Gepolyxで胴体のパーツを読み込んでカーソルを動かしてみるとより分かりやすいかと思います。
ここでは、上へ0.60[m]、ついでに後ろへ0.20[m] 動かすことにしましょう。
POS 0.00 0.60 -0.20 0 0 0 1
となります。
直したらまた上書き保存して、再び Surfview でチェックです。今度はいいみたいですね。
POS ではこの他に角度を設定して、パーツを回転させて配置することができまが、その方法については次回にやってみることにしましょう。
では、第7回はこれで終了です。おつかれさまでした。
前へ 次へ