朝飯中隊駐機場

DNM File Builder チュートリアル

はじめに

DNM File BuilderはDNMファイルを効率的に構成するためのユーティリティーです。これを用いてDNMを構成する方法を具体例を用いて紹介します。なお、それ以前の段階であるモデリングやパーツ製作は扱いません。そういった操作は習熟されていることを前提とさせて頂きます。また、途中で使用する外部スクリプトについては、各スクリプトのマニュアルを参照して下さい。

今回はネット対戦向けの軽量型グリペンを例題に使用していきます。高精度モデルでもパーツ数が増えたりするだけで、基本的には同じようにして製作できます。

チュートリアル

Surfデータの用意

今回はパーツの用意をメタセコイアで行います。あらかじめ必要なパーツを全てメタセコイアのオブジェクトとして用意しておきます。(図.1)動翼や主脚等、左右対称のパーツは片側だけ用意しておきます。これは、後ほどDNMの状態からミラーリングを行うためです。

図.1 メタセコイアでパーツを用意
図.1 メタセコイアでパーツを用意

この状態で保存したmqoファイルをmqo2srfを用いて変換します。今回は全ての作業をメタセコイアで終了させているため、RGB色表記を使用してみます。「RGBで出力する」にチェックを入れ(図.2)mqoファイルをドラッグアンドドロップします。こうすると、オブジェクト名を付けられたsrfファイルがmqoと同じディレクトリに出力されます。

図.2 mqo2srfの設定
図.2 mqo2srfの設定

Surfファイルの追加

DNM File Builderを起動し、ウィンドウに最初のSurfファイルをドラッグアンドドロップします。PCKのリストにSurfファイルが追加され、SRFノードを生成するかどうか尋ねられます。(図.3)ここで「はい」を選択すると、新しいSRFノードのIDを尋ねられるので(図.4)「0000」など適当な文字列を入力して「OK」を押します。最後にCLAを選択ないし入力するよう要求されるので、適切な数値を選択するか(図.5)直接入力してOKをクリックして下さい。設定した値を入力済みのSRFノードが生成されます。(図.6)

図.3 SRFの生成を選択
図.3 SRFの生成を選択
図.4 SRFのIDを入力
図.4 SRFのIDを入力
図.5 CLAの選択
図.5 CLAの選択
図.6 新規生成されたSRF
図.6 新規生成されたSRF

必要なSurfを全てドラッグアンドドロップし、この作業を行います。複数の動作を割り当てたいパーツがある場合は、その前に空Surfのノード入れる必要があるため、IDをあらかじめ飛ばしておくと後々楽になります。(図.7)

図.7 全てのSurfを追加
図.7 全てのSurfを追加

DNMファイルの保存

ここで一旦DNMファイルを保存します。FileメニューからSaveを選び、ファイル名を指定して保存します。保存する名前は任意の名前で問題ありません。(図.8)

図.8 ファイル名を指定して保存
図.8 ファイル名を指定して保存

ここで一旦surfviewoで確認してみます。(図.9)ExternalメニューからView with surfviewoを選択します。RGBで出力しているため、色は正しく表示されませんが、ポリゴンの欠けや不自然な影などがないか確認します。問題があればメタセコイアで修正し、Surfに変換してからドラッグアンドドロップしてOverwriteします。なお、この操作にはあらかじめsurfviewのパスを設定しておく必要があります。surfviewのパスはEditのOptionメニューから設定できます。

図.9 surfviewoで一旦確認
図.9 surfviewoで一旦確認

空ノードの生成/追加

空ノードを生成するに先立ち、あらかじめ空Surfを生成しておきます。PCKのリスト上で右クリックし、Insert New PCKを選択するとSurfファイル名を尋ねられるので、適切なファイル名を指定してOKをクリックして下さい。(ここでは「null.srf」とします。)頂点もポリゴンも設定されていないPCKが追加されます。(図.10)

図.10 空Surfを生成
図.10 空Surfを生成

複数の動作を割り当てたいパーツのノードの上で右クリックし、Insert New SRFを選択します。適切なIDを入力すると、FILに設定するPCKを選択するよう求められるので(図.11)先ほど生成した空Surfを選択します。最後にCLAを選択ないし入力するよう求められるので、目的のCLAを指定します。

図.11 空ノードを生成
図.11 空ノードを生成

必要な空SRFを全て生成したら、SRF treeウィンドウ上で子となるノードを親となるノード上にドラッグアンドドロップし、親子関係を設定します。親子関係の設定が必要となる全てのノードに対して実行します。(図.12)

図.12 親子関係を設定
図.12 親子関係を設定

動作の設定

動作に必要なノードを全て定義したら、次は動翼の設定に移ります。

まず、回転軸が座標軸に平行でないパーツの設定を行います。PCKリスト上で右クリックし、ScriptからSurfAlignを選択します。(図.13)SurfAlignにBaseとEdgeの値を入力し、適切な軸を選択してProcessを押します。(図.14)処理したSurfデータを使用しているSRFノードのPOSに設定量が入力されていますが、もしそのノードが空ノードの子である場合、一番根本の親のPOSと値を入れ替える必要があります。子でない場合は入れ替えの必要はありません。

図.13 SurfAlignを選択
図.13 SurfAlignを選択
図.14 SurfAlignを実行
図.14 SurfAlignを実行

SurfAlignをかける必要があるパーツ全てを処理し終わったら、回転軸が座標軸に平行なパーツの座標設定と、動作量の設定に移ります。

XYZいずれかの軸に平行な回転軸を持つパーツについては、POSとCNTに軸となる同一の座標を指定します。それ以外のパーツについては、SurfAlignを実行したままPOSやCNTの値を変更せず、STAの値のみ設定します。(図.15)のように直接SRFの内容を変更するか、あるいはSRFリスト上で右クリックし、Control wing wizardを使用して設定(図.15-2)します。

図.13 軸座標と動作量を設定
図.15 軸座標と動作量を設定
図.15-2 Control wing wizardを使用
図.15-2 Control wing wizardを使用

Control wing wizardでは、SRFに設定したいCLAを選択しOKボタンを押すと、STAの設定ウィンドウ(図.15-3)が表示されます。画面の説明に従い、所定の値を入力したらOKボタンを押します。実際にSRFに書き込まれる設定の内容が表示されるので、それで問題なければOKボタンをクリックしてSRFに反映させます。この操作を動作パーツ全てに対して行います。

図.15-3 Control wing wizardを使用
図.15-3 STAの設定

ミラーリング

動作量の設定が全て完了したら引き続きミラーリングを行います。ScriptメニューからDNMMirrorを選択します。(図.16)

図.16 DNMMirrorを選択
図.16 DNMMirrorを選択

DNMMirrorでは対称パーツが存在する全てのノードに対して、ノード情報とSurfデータのミラーリングを指定します。(図.17)画像では誤ってmain.srfに設定していますが、正しくはカナードやフラップ、エルロン等に指定します。親子関係にあるノードでは、一番根本の親ノードに対して指定すると全ての子にも指定されます。親ノードの指定漏れがあると動作がおかしくなるので、空Surfのノードも含めて対称部品全てに指定します。指定が完了したら「変換」を押し、ウィンドウを閉じます。なお、エルロンのCLAが設定されているノードでは、自動的に動作方向の入れ替えが行われます。

図.17 ミラーリングを指定
図.17 ミラーリングを指定

DNMMirrorで生成された対称パーツには全て「_mir_」がついているので、これをわかりやすい名前に変換します。変換しなくても支障はありませんので、細かいことを気にしないのであれば、そのまま仕上げに進んでしまっても大丈夫です。

ExternalメニューからOpen DNM in text editorを選択します。今回は正規表現を用いた一括置換を行うため、OptionでEditorにあらかじめ秀丸を設定してあります。検索メニューから置換を選択し、正規表現を用いて「_mir_\f.+\f_l」を「\1_r」で置換します。(図.18)その後、「_mir_00」を「01」で置換します。

図.18 秀丸で置換
図.18 秀丸で置換

エディターを閉じると自動的にDNMが読み直されます。(図.19)ここで同名のPCKが存在するという警告がでますが、空SurfなのでOverwriteを選択してしまって問題ありません。

図.19 名前を変更
図.19 名前を変更

最後に、surfviewoを用いて動翼の動作を確認しておきます。(図.20)問題があれば修正しておきます。

図.20 surfviewoで動作を確認
図.20 surfviewoで動作を確認

仕上げ

DNMが完成したら最後に仕上げを行います。仕上げの方法はいろいろありますが、以下のような手順がお勧めです。

  1. EditメニューよりSort PCK listをascendingで実行。
  2. ToolメニューよりChange DNMVERを実行し、DNMVERを1に設定。
  3. ToolメニューよりMove ZA nodeを実行。
  4. ScriptメニューよりDNMRenumberを実行。
  5. ToolメニューよりRoot to childを実行。
  6. ScriptメニューよりRecalcSurfを実行。
  7. ScriptメニューよりSetFigureを0または3か4で実行。

このような作業を行うと、あとから再編集しやすくなったり表示が乱れにくくなったり等、色々なメリットがあります。(図.21)仕上げが完了したらFileメニューよりSaveを選択します。

図.21 仕上げ完了
図.21 仕上げ完了

最終確認

保存したDNMをfsmainoで確認します。surfviewoでは正しく表示されなかった色もfsmainoであれば正しく表示されます。(図.22)操作入力に対して正しく動作しているかなどや、透明パーツがの描写に問題ないかどうか確認します。問題があれば修正します。

図.22 YSFS本体で確認
図.22 YSFS本体で確認

最後に

以上でDNMファイルの編集は終了です。あとはcockpitやcoll、coarseを製作し、datを設定すれば全ての作業が完了です。掲示板なり自分のサイトなりで公開するだけです。

このように、DNM File Builderを使用するとテキストエディタなどで編集するのに比べ、遙かに効率的に編集することが出来ます。このチュートリアルが全く初めてDNMを作る方や、使い方がいまいちわからなかった方などの参考になれば幸いです。

↑このページのトップ ←技術研究に戻る ←ホームページに戻る