■DNM File Builder 1.24d ●はじめに  DNM File Builderをダウンロードして頂き、どうもありがとうございます。 日々巨大化、複雑化するDNMファイルを効率よく編集するために、より直感的な 操作のできるDNM編集ソフトを目指して製作しました。  一機体制作者として欲しい機能を盛り込んであるつもりですが、機能追加の ご要望等御座いましたらお気軽にご連絡下さい。 ●特徴 ・純Perl/Tk ・PCK行数の自動カウント ・NST,NCHの自動カウント ・PCK,SRFの内容編集やDNM構造編集のUndo/Redo ・マウス操作による簡単な並び替え ・マウス操作による直感的なぶら下がり関係の編集 ・外部スクリプトとの連携による高度な編集の実行 ●動作環境 ・perl (ver.5以上必須 ver.5.6以上のActivePerlを強く推奨)  ※TkおよびWin32モジュールがインストールされていること ・Windows98以上が正常に動作する環境(NT系のOSを推奨) ・XGA以上の画面解像度を推奨 ●機能説明  DFBの各機能について説明します。なお、DNMファイルはメニューから開く他、 DnDやコマンドライン引数としても指定可能です。  また、ファイルを開いている状態でDNMファイルがDnDされると、 処理方法を選択するダイアログが表示されます。 [Open] は現在開いているファイルを閉じてDnDされたファイルを読み込みます。 [Import] は現在開いているファイルにDnDされたファイルを追加読み込みします。 重複するPCKやSRFが発見されるとダイアログが表示されます。 [Cancel] はDnDをキャンセルします。 メニューバーの機能は以下の通り ○Fileメニュー ・Open DNMファイルを開きます。 ・Close DNMファイルを閉じて全てのデータを削除します。    ・Reload 現在開いているファイルを読み込み直します。 ・Save DNMファイルを上書き保存します。 ・Save as DNMファイルを別名で保存します。 ・[DNMファイルのパス] 最近開いたDNMファイルを5件まで表示します。 ・Quit スクリプトを終了します。 ○Editメニュー ・Undo テキストエリアにフォーカスがある場合は、 テキストエリア内で行った操作を取り消します。 それ以外の場所にフォーカスがある場合は、 DNMに加えられた変更を取り消します。 ・Redo テキストエリアにフォーカスがある場合は、 テキストエリア内で取り消された操作をやり直します。 それ以外の場所にフォーカスがある場合は、 DNMに加えられた変更の取り消しをやり直します。 ・Search in PCK list PCKリストからキーワードを検索します。 ・Search in SRF list SRFリストからキーワードを検索します。 ・Replace string 全てのデータを対象に置換を行います。 ・Sort PCK list PCKのリストをsurf名で並び替えます。 ascendingで昇順、descendingで降順に並び替えます。 ・Sort SRF list SRFのリストをIDで並び替えます。 ascendingで昇順、descendingで降順に並び替えます。 ・Option ※設定の変更を完全に適用するにはDFBの再起動が必要です。 ○OKボタン 現在の内容で設定ファイルを更新します。 ○Cancelボタン 変更を中止して現在の設定ファイルの設定に戻します。 ○Resetボタン 全ての設定を初期化します。 OKボタンを押すまでは設定ファイルに保存されません。 ○Visualタブ - 外観に関する設定を行います。 ・Font 表示に使用するフォントを指定します。 "フォント名+半角スペース+フォントサイズ" のように指定します。 フォント名にはインストールされているフォントの他、 System,Terminal,FixedSysなども使えます。 ・List width リストの横幅を指定します。 ・List height リストの高さを指定します。 ○Backupタブ - バックアップに関する設定を行います。 ・Backup mode Saveを選択している場合は上書き保存するたびに バックアップを作成します。 ・Backup ext. バックアップの際に付加する拡張子を指定します。 ○Directoryタブ - ディレクトリの設定を行います。 ・Temporary dir. テンポラリファイルのディレクトリ名を指定します。 dnmbuild.plと同じディレクトリに設置する必要があります。 ・Script dir. 外部スクリプトの格納ディレクトリ名を指定します。 dnmbuild.plと同じディレクトリに設置する必要があります。 ・SurfView dir. surfview、surfviewoのあるディレクトリを指定します。 必ずフルパスで指定する必要があります。 ・SurfView dir. 三輪=mozo氏のDnmviewerのあるディレクトリを指定します。 必ずフルパスで指定する必要があります。 ・Gepolyo dir. 三輪=mozo氏のGepolyoのあるディレクトリを指定します。 必ずフルパスで指定する必要があります。 ・VSE dir. Makoto氏のVisual SRF Editorのあるディレクトリを指定します。 必ずフルパスで指定する必要があります。 ○Filesタブ - 外部ファイルの設定を行います。 ・Text editor DNMを開くテキストエディタを指定します。 notepad.exe以外はフルパスで指定する必要があります。 ○Specialタブ - 特殊機能のON/OFFを設定します。 ・Never show tree window SRFのツリー表示ウィンドウを常に表示しなくします。 ・Connect tree window SRFのツリー表示ウィンドウを常にメインウィンドウと 連動して表示します。 ・Auto sort CLD CLDに変更が加えられると自動で並び替を行います。 ・Set diff POS when setting a child SRFツリーから子ノードを設定するときに、子のPOSを 親のPOSとの差分に設定します。 ・Max undo history (0 means disable this function): 指定した回数分だけDNMの変更履歴を保持し、Undo/Redoを 出来るようにします。 あまりに大きな値を指定すると、メモリを何十MBも消費 することになるので、ほどほどの値にしておいて下さい。 また、この機能を有効にすると処理速度が若干低下します。 気になる方は0を指定して履歴機能を無効にしてください。 ○Toolメニュー ・Change DNVER DNMVERを変更するダイアログを表示します。 ・Move ZA node ZAないしZZを含むSurfを使用しているノードをDNMVERに応じて、 0であればSRFの先頭に、1であれば末尾に移動します。 ・Root to child どのノードの子にも指定されていないノード(ルートノード)を 全て先頭ノードの子に指定します。 ・Sort all CLDs 全てのSRFノードのCLDの並び順をSRFの登録順に並び替えます。 ・Delete non used PCK SRFノードで使用されていないPCKデータを削除します。 ○Scriptメニュー DNMを処理する外部スクリプトを実行します 上段のものはDNMファイルを上書き保存してから処理します 下段のものは編集中のデータを直接更新します 各スクリプトの機能はオリジナルのマニュアルを参照して下さい ○Externalメニュー ・View with surfview 編集中のDNMをテンポラリに出力し、surfviewで開きます。 RGBでの色形式が含まれていればYS表記に変換するか尋ねられます。 変換されるのは表示用のデータだけで、編集中のデータには反映されません。 ・View with surfviewo 編集中のDNMをテンポラリに出力し、surfviewoで開きます。 RGBでの色形式が含まれていればYS表記に変換するか尋ねられます。 変換されるのは表示用のデータだけで、編集中のデータには反映されません。 ・View with Dnmviewer 編集中のDNMをテンポラリに出力し、Dnmviewerで開きます。 Dnmviewerで変更し保存してもそのままでは反映されません。 ・Edit DNM by text editor 編集中のDNMをテンポラリに出力し、指定したエディタで開きます。 エディタの起動中はDFBを操作することが出来なくなります。 エディタを閉じるとDNMを再読込します。 ・Edit DNM by dnmviewer 編集中のDNMをテンポラリに出力し、Dnmviewerで開きます。 Dnmviewerの起動中はDFBを操作することが出来なくなります。 Dnmviewerを閉じるとDNMを読み込みし直します。 ○Windowメニュー ・Open SRF tree SRFのぶら下がり構造を示すツリーを表示します。 ・Close SRF tree SRFのぶら下がり構造を示すツリーを非表示にします。 PCKリスト上での右クリックメニューの機能は以下の通り ・Insert New PCK 選択した位置に新しいPCKを追加します。 追加されるPCKには空Surfが設定されています。 ・Rename surf PCKのファイル名を変更します。 対応するSRFのFILも同時に更新出来ます。 ・Cut PCKデータをクリップボードに切り抜きします。 ・Copy PCKデータをクリップボードにコピーします。 ・Paste クリップボードからPCKデータを貼り付けします。 ・Surf Information Surfデータの行数、頂点数、ポリゴン数、データサイズを表示します。 ・View with surfview Surfデータをsurfviewで開きます。 RGBでの色形式が含まれていればYS表記に変換するか尋ねられます。 変換されるのは表示用のデータだけで、編集中のデータには反映されません。 ・View with surfviewo Surfデータをsurfviewoで開きます。 RGBでの色形式が含まれていればYS表記に変換するか尋ねられます。 変換されるのは表示用のデータだけで、編集中のデータには反映されません。 ・Edit with Gepolyo SurfデータをGepolyoで開きます。 ・Edit with Gepoly SurfデータをGepolyo同梱のGepolyで開きます。 ・Edit with VSE SurfデータをVisual Surf Editorで開きます。 ・View with Dnmviewer SurfデータをDnmviewerで開きます。 ・Export surf to file PCKのsurfデータをファイルに出力します。 ・Insert surf from file surfファイルからPCKをクリック位置に挿入します。 ・Import PCKs from DNM file DNMファイルからPCKデータを追加読み込みします。 ・Script surfファイルを処理する外部スクリプトを実行します。 編集中のデータを直接処理します。 ・Delete PCK 選択したPCKを削除します。 PCKリスト上でのマウスと十字キー操作は以下の通り ・↑↓ 選択/表示しているアイテムを切り替えます。 ・Delete 選択しているアイテムを削除します。 ・Ctrl/Shift+↑↓ 選択しているアイテムを移動します。 ・クリック 選択/表示しているアイテムを切り替えます。 ・Ctrl+クリック 選択中のアイテムをクリックしたアイテムと入れ替えます。 ・Shift+Ctrl+クリック 選択中のアイテムをクリックしたアイテムの位置に挿入します。 SRFリスト上での右クリックメニューの機能は以下の通り ・Insert New SRF 選択した位置に新しいSRFを追加します。 PCKのSurf名一覧から選ぶか、任意のSurf名を指定して下さい。 追加されるSRFには基本的なパラメタが設定されています。 ・Rename SRF ID SRFのIDを書き換えます。 CLDのIDも同時に更新出来ます。 ・Change CLD order リストを使ってSRFのCLDを並び替えるダイアログを表示します。 リストの操作方法はPCK/SRFのリストと同様ですが、 Ctrl-Nで新しいCLDを追加することが出来ます。 ・Sort CLD CLDをSRFの登録順に従って並び替えます。 ・Control wing wizard 動翼などの動作を設定するためのウィザードを実行します。 始めにCLAを尋ねられるので目的の値を選択して下さい。 選択したCLAに応じて、動作状況の説明付きでSTAを設定出来ます。 また、回転量は度で指定できるので、より直感的に設定出来ます。 ・Cut SRFデータをクリップボードに切り抜きします。 ・Copy SRFデータをクリップボードにコピーします。 ・Paste クリップボードからSRFデータを貼り付けします。 ・Import SRFs from DNM file DNMファイルからSRFのみを読み込みます。 ・Delete SRF 選択したSRFを削除します。 SRFリスト上でのマウスと十字キー操作は以下の通り ・↑↓ 選択/表示しているアイテムを切り替えます。 ・Delete 選択しているアイテムを削除します。 ・Ctrl/Shift+↑↓ 選択しているアイテムを移動します。 ・クリック 選択/表示しているアイテムを切り替えます。 ・Ctrl+クリック 選択中のアイテムをクリックしたアイテムと入れ替えます。 ・Shift+Ctrl+クリック 選択中のアイテムをクリックしたアイテムの位置に挿入します。 ・Shift+クリック クリックしたアイテムを選択中のアイテムの子ノードにします。 選択中のアイテムがクリックしたアイテムの直接の子である場合は クリックしたアイテムの子から削除し、クリックしたアイテムの 親ノード(存在しなければルート)の子に指定します。 SRFツリー上でのマウスと十字キー操作は以下の通り ・↑↓ 選択/表示しているアイテムを切り替えます。 ・Delete 選択しているアイテムを削除します。 ・クリック 選択/表示しているアイテムを切り替えます。 ・ドラッグアンドドロップ ドラッグしたアイテムをドロップしたアイテムの子に設定します。 設定時のルールはSRFリスト上でのShift+クリックと同様です。 メニュー中に表示されていないキーボードショートカットは以下の通り ・Ctrl-O File -> Open ・Ctrl-R File -> Reload ・Ctrl-S File -> Save ・Ctrl-Q File -> Quit ・Ctrl-U Edit -> Undo ・Ctrl-Y Edit -> Redo ●外部スクリプトの追加について  外部スクリプトを追加するにはメニュー関連を編集する必要があります。 また、外部スクリプトは第一引数に与えられたファイルを開き、 そのファイルに上書き保存するようになっている必要があります。 従って、dnmbuild.plと追加するスクリプト両方の改造が必要となります。 ●著作権/免責  このスクリプトの著作権はF22愛好会が所有します。 無断での改変あるいは配布を禁止します。  このスクリプトを使用したことによるあらゆる損害について、 F22愛好会は一切の責任を負いません。 また、YSFSの作者である山川氏にこのスクリプトについて 問い合わせることは 絶対に しないで下さい。 ^^^^^^ ●更新履歴 1.24d 2009/10/05 付属スクリプトのDNM2MqoとSrf2Mqoで倍率を指定出来るようにした 1.24c 2009/10/08 テキストエリアでControl-Sを押したときに挿入される       \x13の制御文字を保存時に無視するようにした       保存時にPCKノード末尾に不要な空行が発生するのを修正       ToolメニューのRoot to childがおかしな動作だったのを修正       Set diff POS when setting a childをデフォルトで無効に変更 1.24b 2009/09/25 付属スクリプトのSurfScaleを桁数指定可能版に更新 1.24a 2009/08/23 新規SRFノード生成時にCLA 9(爆弾槽ドア)が選択できなかったのを修正 新規SRFノード生成時にCLA 21(回転銃座)を選択できるようにした 1.24 2009/08/18 バックアップ作成を有効にしていると外部エディタや DNM編集スクリプトが動作しなくなっていたのを修正 その他細かいバグフィックス 1.23d 2008/09/24 Delete Non Used PCKがUndo出来なかったのを修正 1.23c 2008/07/25 付属スクリプトのRecalcSrfを更新した 1.23b 2008/06/20 付属スクリプトのUnShadowを更新した DNM用スクリプトにUnShadowを追加した 1.23a 2008/05/23 PCKまたはSRFの内容が変更された状態で、そのデータを表示している時に Undo/Redoをしてもデータが更新されない問題を修正した 1.23 2008/05/21 DNM構造を操作した場合にもUndo/Redoが出来るようにした 1.22a 2007/05/14 付属スクリプトのDNMMirrorを更新した 1.22 2007/03/15 Makoto氏のVisual SRF EditorをPCK Listから起動できるようにした [C.K.Packs http://cepkzspack.hp.infoseek.co.jp/]よりMISC>TOOLの ページからVSEをダウンロードしてOptionのVSE Dir.を設定してください。 1.21d 2007/01/10 ActivePerl 5.8でSRFツリーをクリックした時、SRFリストと連動するのが 無効になっていたのを修正 1.21c 2007/01/06 付属スクリプトのChangeColorが無効になっていたのを修正 1.21b 2006/12/30 新規制作ファイルを閉じようとしたとき保存を尋ねられないのを修正 付属スクリプトにColorBrightを追加 付属スクリプトにColorRoundを追加 付属スクリプトのDNMScaleをSurfScaleに差し替え 付属スクリプトの大半を最新版に差し替え 1.21a 2006/12/28 Gepoly/oでPCKを編集したときカーソルが戻らなくなっていたのを修正 Gepoly/oでPCKを編集したとき読込時にダイアログを出さないようにした Gepoly/oで出力したRGB色形式を含むファイルに対して自動変換が無効に なっていたのを修正 1.21 2006/12/20 ToolメニューにDelete non used PCKを追加 1.20c 2006/11/09 外部アプリの選択ダイアログが表示されなくなっていたのを修正 1.20b 2006/08/20 バグフィックス ActivePerl 5.8でもDFB本体は動作するようにした Special Thanks to 三輪=mozo氏 1.20a 2006/03/14 DNMViewerをエディタとして起動できなくなっていたのを修正 1.20 2006/03/07 Gepolyoを外部エディタとして起動するメニューを追加した 1.19 2005/08/05 ダイアログが表示されている間もツリーが操作できたのを修正 付属スクリプトの簡単な説明をHelpに追加(英語圏の方向け) 付属スクリプトのSetTranceparencyをRGB対応版に更新 付属スクリプトのSurfAlignの処理状況を標準出力に表示するようにした 1.18 2005/06/22 surfview/oで開くとき、色のRGB表記が含まれていた場合、 YS表記に変換してからビューアを起動するかどうか確認するようにした 付属スクリプトにColorConvertを追加 SRFツリーウィンドウの表示順がfsmainでの描画順になるようにした 1.17e 2005/06/04 外部スクリプト実行時のエラーチェックを行うようにした 1.17d 2005/05/11 Dnmviewerを外部エディタとして起動するメニューを追加した 1.17c 2005/04/08 外部スクリプトが実行出来なくなっていたのを修正した 1.17b 2005/04/07 CLDのソート順をID順からSRFの登録順に変更した 保存時にFILのデータが失われてしまう場合があるのを修正した PCKを消したとき、対応するSRFの削除を選んでも全て削除されない場合があるのを修正した バージョン情報を表示するようにした(Menu->Help->About) 1.17a 2005/03/30 外部ビューワーを起動する時のカレントディレクトリをビュワーのあるディレクトリにした SRFノードを選択して保存するとFILが失われることがあるのを修正した Control wing wizardをCLA 9以降に対応した 1.17 2005/03/28 DnmviewerをExternalメニューから起動出来るようにした ※三輪=mozo氏のサイト[さて、飯にしようか http://user.ftth100.net/mozo/]より  Dnmviewerをダウンロードし、OptionでDNMviewer dir.を設定して下さい。 最近開いたDNMファイルの履歴を5件まで保存するようにした ファイルを開く/閉じる時に、保存をキャンセルすると全てキャンセルされてしまうのを修正 1.16c 2005/03/13 FILの設定されていないSRFノードがあると空のFILが出力されるのを修正 SRFノード名に.が含まれているとSRTツリーが表示出来ないのを修正 1.16b 2005/03/08 動翼設定ウィザードでCLA 9,18,20が選択出来なかったのを修正 1.16a 2005/03/08 ChangeColorを実行するとPCKの順番が保存されないのを修正 CLAの追加と役割変更に対応 1.16 2005/02/28 Unshadow実行時にSetFigureが実行されてしまうのを修正 Move ZA nodeが正しく動作しない場合があるのを修正 SurfAlign時にPOS変更対象ノードが子ノードだった場合自動変更しないようにした 付属スクリプトにSurf2MqoとBrightAllを追加 1.15 2005/02/05 DNMを閉じるとき保存をキャンセルしても保存されてしまうのを修正 付属スクリプトにSurfRotateMoveを追加 付属スクリプトのChangeColorとSetTranceparencyを最新版に更新 1.14 2004/12/10 SRFリストの右クリックメニューに動翼設定ウィザードを追加 PCK/SRFリストにアイテムが存在しないとき、右クリックメニューから 命令を選択しても何もしないようにした 1.13 2004/10/06 外部スクリプトを実行したりデータを保存した後も 選択したアイテムを表示し続けるようにした Ctrlを使ったショートカットを追加した(Ctrl-SでSave、等) DNMからデータを追加読み込みする機能を実装した PCKデータのみをDNMから取り込む機能を実装した DNMを開いているときDNMをDnDした場合の動作を選ぶようにした DNMRenumber,UnShadowのパラメタオプションを設定できるようにした 1.12a 2004/10/04 付属のChangeColorをYS/RGB両対応版に差し替えた 1.12 2004/10/03 Insert new SRFがキャンセル出来なかったのを修正 Insert new SRFでCLAに合わせてSTA数を変えるようにした Surfファイルの挿入/DnDでもCLAを設定できるようにした CLDをリストを使って並び替え/追加/削除られるようにした SRFツリーからDeleteキーで削除できるようにした SRFを削除するとき親のCLDからも削除するか確認するようにした その他細かい使い勝手の向上 1.11 2004/10/02 リストの入れ替えをShift-↑↓でも出来るようにした リストの端でのカーソルキーによる入れ替え時の動作を変更 エディタでDNMを開いて編集する機能を実装 ↑に伴いメニューとオプション画面の構成を一部変更 スクリプトコンソールを実装 1.10 2004/09/30 右クリックメニューから新しいアイテムを追加できるようにした ファイルのリロード機能を実装した 編集中のデータがあるときファイルを開く/閉じる時の挙動を変更 1.09 2004/09/28 PCKとSRFのリストのアイテムをカット/コピー/ペースト出来るようにした ↑に伴い右クリックメニューの表記を一部変更した クリップボードからの読み込み時最後の一行が読まれなかったのを修正 1.08a 2004/09/25 付属のDNMMirrorでPCKのミラーリングが反映されなかったのを修正 1.08 2004/09/23 設定の初期化機能を実装 設定ファイルが無い場合の処理を追加 表示アイテムの切り替えを大幅に高速化 ウィンドウのリサイズ時の挙動を変更 終了時のウィンドウの大きさを記憶するようにした タイトルとインフォバーではファイル名だけ表示するようにした 一部のスクリプトでPCKのリストが並び変わってしまうのを修正 SRFリストでCtrl+↑↓が効かなくなっていたのを修正 1.07 2004/08/31 オプション設定で最後に開いたタブを保存するようにした SRFデータを編集後にリストをクリックした時の挙動を修正 Viewer関連のエラーメッセージを改善 付属スクリプトのRecalcSrfを更新 1.06a 2004/08/30 surfview/oのディレクトリ指定に相対パスを使用できるようにした 1.06 2004/08/28 surfview/oとの連係機能を追加 1.05 2004/08/21 CLDの並び替え機能を追加 Surfの詳細情報の表示機能を追加 ウィンドウを閉じたときの終了処理を実装 ウィンドウの表示位置を記憶するようにした オプション設定をカテゴリ別に表示するようにした ツリーウィンドウの表示のON/OFFを実装 1.04 2004/08/17 SRFツリー上での親子関係の設定を実装 1.03 2004/08/16 親子設定のバグを修正 マウス操作での親子関係の解除を実装 重複データがある場合の選択処理を実装 1.02 2004/08/15 インフォメーションバーを追加 1.01 2004/08/14 SRFのツリー表示とSRFリストの連動を実装 透明ノードの一括移動機能を追加 1.00 2004/08/13 SRFのツリー表示機能を追加 recalsrf.pl,vtxlim.plをDNM用スクリプトにも追加 dnmmir.plを追加 0.92β 2004/08/11 細かいバグの修正 DNMVER変更機能の追加 unshadow.plを追加 0.91β 2004/08/11 細かいバグの修正 ソート機能の追加 0.9β 2004/08/10 一通りの機能をそろえたRC版としてリリース