MQOファイルをSRFファイルに変換するスクリプト Ver.2.6 動作: mqoファイルをsrfファイルやDNMファイルに変換します。 複数のオブジェクトを持つmqoファイルは複数のsrfに分割して出力したり、 あるいは単独のDNMファイルにまとめて出力することも出来ます。 単独のDNMに出力する場合は、特定のオブジェクトに対して自動的にsrfalignを かけながら出力することや、メタセコイア有償版で設定可能な階層化された オブジェクトをそのままSRFノードのツリー構造に反映することが出来ます。 また、材質設定の透明度設定や自己発光設定も反映されます。 自己発光は自己照明の値が0.5以上に設定されている素材に対して有効になります。 鏡面設定も反映されますが、左右を接続する鏡面はメタセコイアと動作が異なります。 接続距離以下の距離にある対象点を結合して左右を接合するので注意して下さい。 また、フラットシェーディングが設定されているオブジェクトは全ての頂点を丸めず、 グローシェーディングが設定されているオブジェクトは全ての頂点を丸めますが、 スムージング角度以上の頂点を丸めないで出力することも出来ます。 ※曲面生成を使っている場合は、必ずフリーズしてから変換して下さい。 ※また、左右を接続する鏡像も、使い方によってはフリーズする必要があります。 ※Tk.pm必須 GUIスクリプト 使い方: コマンドプロンプトから >mqo2srf file.mqo [-INVERT] [-NOROUND] [-SCALE(n)] [-RGB] [-[FULL]DNM] [-VISIBLE] [-RNDLIMIT] [-o(output path)] オプション: -INVERT : 全てのポリゴンの向きを反転します。 -NOROUND : 頂点定義行の末尾にRを追加しません。 -SCALE(n) : 座標値の倍率を指定します。 -FIGURE(n) : 小数点以下の桁数を指定します。 -RGB : 色をRGBで出力します。 -FULLDNM : PCKノードも含む完全なDNMファイルのみ出力します。 : このモードでは指定条件のオブジェクトにsrfalignを適用します。 : また、このモードではVISIBLEオプションは無視されます。 -DNM : パーツ定義のみのDNMファイルも出力します。 -VISIBLE : 表示されているオブジェクトのみ出力します。 -RNDLIMIT : スムージング角度以上の頂点を丸めません。 -DELNONUSE : 未使用頂点を削除します。 -o(output path) : 出力先のパスを指定します。 ""でくくる場合は-oも""の内側に入れて下さい。 あるいは、ファイル名を指定せずに実行するか、ダブルクリックで実行すると オプションの指定を行うウィンドウが表示されます。 コマンドラインオプションとの対応は以下のようになっています。 Invert Normal : -INVERT Unround All Vertex : -NOROUND RGB Color Format : -RGB Output DNM File : -DNM Output Only Complete DNM File : -FULLDNM Output Only Visible Object : -VISIBLE Unround Acute Verte : -RNDLIMIT Delete Non Used Vertex : -DELNONUSE Scale : -SCALE Figure : -FIGURE Output Dir. : -o ※ファイル名は無視され、ディレクトリのみ使用されます。 Output DNM FileまたはOutput Only Complete DNM Fileが有効になっている設定では、 変換時にsrfalignを自動的に適用しながら保存することが出来ます。 srfalignを適用したいオブジェクトがある場合は、新規にオブジェクトを作成し、 目的の回転軸上に辺を一つだけ生成します。 (辺以外のオブジェクト、または複数の辺があっても、最初の2頂点のみ使用します。) そして、このオブジェクトの名前を次の規則に従って設定します。 ・srfalign設定用オブジェクトはオブジェクト名の先頭を"al_[xyz]_"とする   [xyz] には合わせたい軸を一文字だけ入れて下さい。 ・生成した辺でsrfalignを適用するオブジェクト名をその後ろに続ける   適用するオブジェクト名は":"を区切りとして複数指定出来ます。(ヘッダ含め63bytesまで)   オブジェクト名にはワイルドカード(*と?)が使用出来ます。 また、()や[]を使った正規表現が出来ます。 ex. "al_x_slat_in:slat_out" または "al_x_slat_*" または "al_x_slat_(in|out)"   上記の三つは全てslat_inとslat_outに適用することが出来ますが、   al_x_slat_*は例えばslat_midというオブジェクトがあった場合、そちらにも適用されます。 Output Only Complete DNM Fileモードでは、個別のsrfファイルは出力されません。 その代わりにDNM内へsrfalign設定用オブジェクト以外全てをPCKノードとして含んだ、 外部のSurfファイルに依存しない完結したDNMファイルを出力します。 また、このモードはMetasequoia有償版で使用できる、オブジェクトの階層化に対応します。 オブジェクトをMetasequoia上で階層化すると、その階層を再現するようにSRFノードが CLD行を付加して出力されますので、メタセコイアの段階からノードの並び順を設定できます。 なお、srfalign設定オブジェクトが階層に含まれているとSRFノードのツリーが壊れます。 srfalign設定オブジェクトは必ず階層の一番上(一番左)に配置するようにしてください。 また、SRFノードのツリーを生成する際、複数動作対応のため空ノードを含めたい場合があると思いますが、 その場合は空のオブジェクトを"適当な名前"で、動作箇所の数だけ用意してツリーに含めてください。 ツリー生成時に、空オブジェクトは自動でnull.srfという実体を持たないPCKノードをFIL行に持つ、 いわゆる空ノードとなってツリー構造に組み込まれます。 なお、null.srfというPCKノードは自動で生成されますので、メタセコイアでnullという空の オブジェクトを作る必要はありません。 "-FULLDNM"が指定されていない場合は、"オブジェクト名.srf"というファイル名で別個の SRFファイルがMQOファイルのあるディレクトリまたは出力先ディレクトリに出力されます。 "-DNM"オプションが有効な場合は、SRFノードのみのDNMも同時に出力されます。 ※RGBオプション付きで出力したファイルはGepolyx等では正しく編集できません。 免責: F22愛好会はこのスクリプトを使用した一切の責任を負いません。 不安を感じる方はバックアップを取ってから起動して下さい。 内容物: ・mqo2srf.txt  →このファイル ・mqo2srf.pl  →Perlスクリプト 著作権等: F22愛好会が保有します。無断での再配布を禁止します。 改造などをされた上で公開されたい場合は、 事前にご連絡頂けますようお願い申し上げます。