桂竜橋
Home > Document > peff.exe の使い方

更新:2012/12/05

FMS のためのポリゴンエディタ peff.exe について

peff は Polygon Editor For FMS の頭文字から命名しています。 FMS のフォトフィールドにポリゴンを追加するためのアプリケーションです。

追加したポリゴンに背景画像をマッピングすることが出来ますので、 FMS で橋の下を通したり、木立の向こう側を通す場合、機体が隠れるようになります。

FMS 用の機体を作成される方達がメタセコイアを使われていること、私がメタセコイア しか使ったことがないことなどから、メタセコイアのユーザーインターフェースを 大幅に模倣させていただいています。

メタセコイアの作者様には一応のお許しを頂きました。この場を借りてお礼申し上げます。

peff.exe の使い方−基本編

SimScene.exe

編集には、SimScene.exe などで作成した6面画像が必要です。 6面画像を読み込まないでポリゴンデータだけを編集・保存することも出来ますが、 6面画像を読み込んでいない状態では .scn ファイルを出力出来ない仕様になっています。

基本的には SimScene.exe で作成した .scn を読み込んで ポリゴンを追加・編集するためのアプリケーションとお考え下さい。

_vista.bmp

SimScene.exe が6面画像と .scn を出力する処理では _vista.bmp を出力します。 .scn にもそれが反映されています。

peff.exe の出力する .scn も _vista.bmp を必要とします。 Pano2Cube.exe などで作成した6面画像だけを読み込んで .scn を作成された場合、 _vista.bmp が無い状態になりますので、それを FMS で読み込むとエラーが発生します。

という仕様がメンドクサイので、peff.exe ver 1.01 から Windows Vista 用 ビットマップのファイル名を「fms_vista.bmp」に固定し、シーンファイルを出力する フォルダにそれが無ければ画像ファイルを出力する仕様としました。

SimScene.exe ver 1.80 も同様の仕様変更を行っています。

扱えるポリゴンは4角形限定です。これは FMS が三角形のポリゴンを扱えないことによります。

系の話

いわゆる右手系、左手系のことです。親指 X、 人差し指 Y、 中指 Z、 のアレです。

右手系XYZ FMSXYZ 左手系XYZ
右手系(メタセコイア) 右手系?(FMS) 左手系(peff DirectX)

peff は DirectX の座標をそのまま使っていますので、左手系です。 FMS は右手の人差し指で向こうを指した形なので右手系?としましたが、 peff との関係は Y, Z が入れ替わるだけになります。 peff の Z プラス方向が FMS の Y プラスとなり、機体の進行方向になります。 FMS パラメータパネルの Y, Z にはこれらのことが反映されています。

FMSパラメーター

出力されるファイルについて

peff.exe では以下の3種類のファイルを出力します。

  • .scn ファイル

    FMS が読み込むためのファイルです。peff.exe で編集したポリゴンデータが反映されています。 ファイルの先頭部分にコメントの形で FMS パラメーターが記述されていて peff.exe も読み込みます。

  • .pfo ファイル

    ポリゴンデータのバイナリファイルです。テキストエディタでは開けません。 データにはポリゴンデータの他に、記録された機体マークの位置も書き込まれます。

  • .txt ファイル

    メニューの「表示|メモ」を選択すると簡単なエディタが表示されます。 書き留めておきたい簡単なメモを書けます。このデータがテキストファイルとして 保存されます。

表示

原点と上からと

peff のカメラには、2通りのモードがあります。

「原点」モード

「原点」モードは、3D空間の原点位置にカメラがあって、カメラの向きが 自由に動きます。FMS でカメラが機体を追っている状態と同じです。

「自由」モード

「自由」モードは、カメラが3D空間内を自由に動きますが、視点は原点位置に固定 されます。メタセコイアでオブジェクトを編集しているときの視点です。

ツールバーで切り替え

カメラ位置ボタン

ツールバーのカメラモードを指定するボタンです。左から「原点」「自由」「真上」 となり、上記の位置・視点にカメラの状態が変わります。「真上」は「自由」と同じモード ですが、真上から見たいことが多くあるので、付けてあります。 これらのボタンでカメラモードを切り替える時、その位置やズームの情報がボタンに記憶されます。

メニューで切り替え

カメラ位置メニュー

メニューのカメラ位置(視点)を指定する項目です。これらの項目を選択したときは、 ボタンに記憶されていた情報はリセットされます。

最後の「選択部を視点回転の中心」はポリゴンに選択された要素があれば、そこが 視点になります。モードは強制的に「自由」になります。込み入った部分を編集する場合に 便利です。

マウスでグリグリ

  • マウスの右ボタンでドラッグすると視点またはカメラ位置が上下左右に回転します。 コントロールキーを押していると回転量が10分の1になります。
  • 「自由」モードのとき、マウスの中ボタンでドラッグすると、見える範囲がシフトされます。
  • 中ボタンを回すとズームが変わります。

左ボタンは、選択・編集で使われます。

その他のツールボタン

ツールボタン

編集に必要な要素の表示を切り替えるボタン群です。

「背景」「パーツ」「ポリゴン」と表示されたボタンで、まとめてオンオフが出来ます。

ポリゴンの作成

ポリゴンボタン

ツールパネルにある上図ボタンを押すとポリゴン作成ダイアログが表示されます。

上のボタンが見当たらない時は、メニューの「パネル|ツール」です。

ポリゴン作成フォーム

分割数は最大値が 10 に設定されています。サイズの最大値は広さの2倍に設定されます。

位置指定以下について記述します。

  • 「発進位置」 スタートマークボタン

    FMS パラメーターで指定された発進位置にポリゴンが作成されます。 上図ボタンのオンオフでスクリーン上に現れるデフォルトで白色マークの位置です。

  • 「機体位置」 機体マークボタン

    上図ボタンでスクリーンに現れるデフォルトで赤色マークの位置にポリゴンが作成されます。

    このマークはカーソルキーと PageUp, PageDown キー又は(あれば)テンキーで 前後左右上下に移動させることが出来ます。移動速度はスペースキーで加速、 コントロールキーで減速させることが出来ます。機体位置は左下に数値表示されますので、 数値と見た目で位置の目安にします。

    発進位置、機体マークの大きさはそれぞれデフォルトで 4m, 3m に設定されています。 「ファイル|設定」で変えることが出来ます。

    機体の位置はメニューの「機体マーク|記憶する」で20個までメニュー項目に 登録することが出来ます。登録された位置は .pfo ファイルに保存されます。

  • 「選択重心」は、それまでに選択されたオブジェクトの重心位置があれば その位置に作成されます。
  • 「位置指定」はダイアログに表示されているXYZ座標に作成されます。
  • 「新しいレイヤーに作成」チェックボックスをオンにすると、 後述するレイヤーが新しく作成され、そのレイヤーに作成されます。

作成されるポリゴンの表面はYプラス方向(上向き)で出現します。 初期の頃、向きも指定出来る実装を考えていましたが、後述する「面をカメラへ向ける」 「視点軸で回転させる」が実装されてからは、不都合を感じなくなりましたので、 そのままにしています。

ポリゴンの表と裏

黒い表と明るい裏

作成されるポリゴンの黒くて半透明な面が表です。明るいグレーな面が裏です。 色は「ファイル|設定」で変更出来ます。

FMS では、面の頂点データをカメラ位置から見て右回りに渡すと裏向きとなって 透明なポリゴンになります。透明ではあっても機体は乗ることが出来るので、 通常のフォトフィールドで地面になっているポリゴンは右回りの裏向きに配置 されています。

左廻りに渡すと表面が表示され、色やテキスチャを表示することが出来ます。 6面画像を表示させるポリゴンは頂点データを左回りで渡しています。

peff で作成するポリゴンの表面は、頂点を右回りで保持しますので、FMS では 都合良く裏面になります。編集中のポリゴンの位置確認を容易にするため黒の半透明 に設定されています。

peff でのポリゴン編集は「裏向きの透明ポリゴンを編集すること」と言えます。

透明なポリゴンで斜面などのオブジェクトを作成するとき、カメラ位置から 裏面が見えてしまう場合があります。そのまま FMS で表示すると、とても美しくない 状態になります。 peff のデフォルトの色設定では裏面を明るい色にして裏面が見えていることを 強調するようにしています。

背景を適用する

面が選択された状態でメニューの「選択範囲|背景を適用する」を選択すると ポリゴンの線の色と透明度が変わり、背景が適用されたポリゴンであることを 示します。色と透明度は「ファイル|設定」で変えることが出来ます。

対象ポリゴンは、出力される .scn 内で背景画像がマッピングされます。 FMS では対象ポリゴンの表面にテキスチャが表示されますので、機体がポリゴンの向こう側を 通るとき機体が見えなくなります。 背景を適用されたポリゴンでは、前述の「裏向きの透明ポリゴンを編集する」も意味が反転します。

編集中に背景画像がマッピングされて表示されることはありません。 編集中にマッピング画像を見たい場合は、メニューの「表示|テキスチャポリゴンを表示」 を選択して見ることが出来ます。表示されたテキスチャポリゴンを編集することは 出来ません。表示されるテキスチャポリゴンはほとんどが細分化されています。 これは、テキスチャを表示するポリゴンと背景画像が平行でないと、画像が歪むためです。

選択

選択ボタン

上のボタンが押し下げられていると選択モードになります。 以降「何々ツール」「何々ツールを選択」という記述がありますが、対象のボタンを押して モードを切り替えることを意味します。

選択の種類

ポイント選択

選択は、マウスの左ボタンで行います。メタセコイアでは左ボタンを押し下げただけで 選択出来ますが、peff では左ボタンを押して離す(以下「クリック」と言います)と その位置の要素を選択します。 これは範囲選択をモード切り替え無しで実装したかったから という理由によります。選択出来る要素は「点」「線」「面」です。

選択できる要素が重なっている場合、要素の中で一番上(=カメラに近い)要素が選択されます。

範囲選択

左ボタンを押して4ピクセル以上ドラッグすると矩形領域が表示されて範囲選択することが出来ます。 範囲選択では、指定した領域にある要素全てが上下を問わず選択されます。

メニューによる全選択

メニューの「選択範囲|すべてを選択」、「選択範囲|選択を解除」で全選択全解除 することも出来ます。

選択の仕様

  • 選択されていない要素をクリックすると選択されます。
  • 選択されている要素をクリックすると選択が解除されます。
  • 要素の無い場所をクリックすると選択が全解除されます。
  • シフトキーを押してクリックすると、選択要素を追加または取り除くことが出来ます。
  • 何も選択されていない状態でコントロールキーを押してクリックすると、 くっついている点や辺、面を分離することが出来ます。

選択の制限

レイヤー

上図はレイヤーパネルの一部です。「目」のマークはそのレイヤーが表示されていることを 示します。「鍵」のマークはそのレイヤーがロックされていることを示します。 これらの表示はマークの部分をマウスでクリックするか、ドラッグすることで 反転することが出来ます。

選択出来るのは、表示されていて、ロックされていないレイヤーのポリゴンだけです。 上図では、レイヤー3にあるポリゴンだけが選択の対象となります。

編集

操作パネルでの編集

ポリゴンボタン

メニューの「ファイル|新規作成」を実行してから、上のボタンを押して ポリゴンをひとつ作って下さい。(設定はデフォのまま) ポリゴンがひとつ全選択された状態で表示されたと思います。

次ぎに下の操作パネルで押せるボタンを押したまま左右にグリグリします。 選択状態を色々と変化させてグリグリして見て下さい。 選択された要素だけが編集されることを確認して下さい。

操作パネルの左の縦1列は「移動」、中1列は「拡大」、右1列は「回転」です。

グリグリする際、コントロールボタンを押していると、 変化量が10分の1になります。

操作パネル

操作パネルによる編集はXYZ軸に沿った編集になります。橋やビルなど 形の決まっているオブジェクトをZ軸に対して平行に配置して作成する場合に、 操作パネルでの編集は強力です。

スクリーン上での編集

移動拡大縮小ボタン

上図のボタンは、スクリーン上に表示されている現在の横方向と縦方向を軸とする編集を行うための ツールです。 スクリーン上の横軸縦軸は、カメラの位置と視点によって変化します。

例えば、移動ツールでオブジェクトを奥へ移動させたい場合、カメラ位置を上げて俯瞰状態とします。 そのまま上方向へドラッグすると選択されたオブジェクトが奥側へ移動するといった具合です。

移動

移動ボタン

上図ボタンを押すと「移動モード」になり、マウスカーソルも変化します。 マウスの左ボタンでドラッグすると選択されたオブジェクトが移動します。 何も無いところをドラッグしても移動します。

移動ツールフォーム

「移動モード」になると上図フォームが表示されます。

「相対」では移動距離が表示され、「絶対」では選択オブジェクトの重心位置が表示されます。

「OKボタン」をクリックすると、現在選択されているオブジェクトが 「相対」「絶対」のモードに合わせて移動します。Y軸方向へ 0.1 ずつ移動してみる。 ポリゴンを移動して、他のポリゴンも同じように移動させる。次々に選択した点を一カ所に集める。 など、使い方は自由です。

移動ツールでの選択

移動ツールでも選択が出来ます。選択の仕様は選択ツールと同じですが、 解除する仕組みが少し違います。

  • ドラッグして移動処理が実行された時、選択は解除されません。何も無いところをドラッグして 移動した場合も同じです。
  • 選択状態の要素をクリックしても選択は解除されません。ドラッグしていなくても 解除されません。
  • 何も無いところで左ボタンを押してドラッグしないでボタンを離すと、選択が解除されます。 メニューの「選択範囲|選択を解除」でも解除出来ます。

拡大・縮小

拡大ボタン

上図ボタンを押すと「拡大モード」になり、マウスカーソルも変化します。 拡大や選択の動作は「移動モード」と同じです。

拡大ツールフォーム

「拡大モード」になると上図フォームが表示されます。 「等比拡大」「X軸」「Y軸」「Z軸」は操作パネルと同じ動作です。 「スクリーン」もご理解頂けると思います。

拡大・縮小の基準位置は、選択オブジェクトの重心位置になります。 ですので、少なくても辺が1本以上、あるいは点が2個以上選択されていなければ 拡大・縮小は実行されません。

拡大フォーム

拡大・縮小が可能な状態で、「数値設定」ボタンを選択したとき、 上図ダイアログが表示されます。 このダイアログでは、拡大縮小のXYZ成分を個別に指定出来ます。 また、拡大縮小の基準位置を「重心」と「原点」から選ぶことが出来ます。

回転

回転ボタン

上図ボタンを押すと「回転モード」になります。マウスカーソルも変化します。 回転や選択の動作は「移動モード」と同じです。

回転ツールフォーム

「回転モード」では上図フォームが表示されます。

  • 「視点軸」ではカメラ位置と選択オブジェクトの重心を結ぶ直線を軸に回転します。
  • 「スクリーン」では横軸はスクリーンの横軸ですが、縦軸はY軸を使って回転します。
  • 「スクリーン2」では、横軸縦軸ともにスクリーンの横軸縦軸を使って回転します。 メタセコイアの球回転に近いと思います。

X軸Y軸Z軸は操作パネルと同じ動作になります。

回転フォーム

上図ダイアログは「数値設定」ボタンを選択したときに表示されます。 X軸Y軸Z軸と視点軸で回転させることが出来ます。

また、回転の中心を原点にすることも出来ますので、オブジェクトを Z軸と平行に作成しておいて、オブジェクト全体をシーンの回転に合わせて原点を中心に Y軸で回転させるといった使い方も出来ます。

ナイフ

ナイフボタン

上図ボタンを押すと「ナイフモード」になります。

ナイフツールは、ポリゴンに分割線を追加します。実際のナイフのように切り離したりはしません。

ナイフ1 ナイフ2 ナイフ3

デフォルトの設定では、上図の左から1番目、 2番目のように向かい合う辺に対して分割することが出来ます。

メニューの「ファイル|設定」ダイアログで「斜め切りを許可する」設定にすると 3番目の画像のように斜めに切ることも出来ますが、ポリゴン数がとても増えるので あまりお勧めはしません。

ハサミ

ハサミボタン

上図ボタンを押すと「ハサミモード」になります。

ハサミパターン1 ハサミパターン2

ハサミは、切っても大丈夫な辺を取り除きます。切っても大丈夫な辺とは、2つ以上の表面に 共有されている辺です。上図左側の場合、中の辺はすべて切れますが、右の図の場合は 黄色くハイライト表示された辺だけが切れます。

デフォルトの設定では、ハサミツールのカーソルが、切れる辺の上に乗ったとき、 辺の色が変わります。 「ファイル|設定」でハイライト表示と表示色を設定出来ます。

ハサミパズル

上図のような状態で要となる中央の辺を切るとどうなるでしょうか?

ハサミパズル2

答えは上図のようになりました。一番下の面とつながったのは、ハサミツールが共有している面を 検索して一番最初に見つかった面に対して処理を実行するからです。 「一番下」になったのは、たまたま一番下が最初に見つかったからという理由によります。

ハサミパズル3

ですので、こうなる場合もあります。

頂点をくっつける

くっつけるボタン

選択された頂点が2個以上あるとき、このボタンを押すとそれらの頂点がくっつきます。 頂点の位置が離れている場合は、中間点でくっつきます。

面を構成する点同士はくっつきません。違うレイヤーにある点もくっつきません。 メニューの「選択範囲|頂点をくっつける」でも同じことが出来ます。

くっつけた点をはがす

くっつけた点をバラバラにしたい場合は、 何も選択されていない状態でコントロールキーを押したまま、対象の点をクリックします。 バラバラになった点のどれかが選択されますので、移動することが出来るようになります。

面や辺を同様に選択することでその面や辺だけを分離することも出来ます。

一列に並べる

並べるボタン

選択された頂点が3個以上あるとき、このボタンを押すとそれらの頂点が一列に並びます。 メニューの「選択範囲|一列に並べる」でも同じことが出来ます。

カメラへ向ける

カメラへ向けるボタン

面が選択された状態で、このボタンを押すと、選択された面がカメラと正対します。 複数の面が選択されている場合は、面の法線ベクトルの平均値がカメラへ向くように 回転します。

機体位置にポリゴンを作成して、このボタンでカメラへ面を向ける。都合の悪い角度に なった場合は、視点軸で回転させる。といった使い方が出来ます。

メニューの「選択範囲|カメラへ向ける」でも同じことが出来ます。

位置合わせ

位置合わせ

オブジェクトが選択された状態で、上図ボタンを押すと、下図のダイアログが表示されます。

位置合わせダイアログ

実行ボタンを押すと、適用のチェックボックスがオンの要素について 新しい位置で指定された値で選択されたオブジェクトの要素が更新されます。

最小最大のボタンには選択されたオブジェクトのXYZそれぞれの最小値最大値が 記憶されています。新しい位置には平均値が入っています。 ボタンを選択すると該当の新しい位置がボタンの値で更新されます。

「元に戻す」と「やり直し」

ポリゴン編集の undo redo

編集はすべて元に戻せます。メニューの「編集|元に戻す」で実行出来ます。 元に戻した分だけやり直しが出来ます。

元に戻すためのデータは、ポリゴンの全データをメモリに書き込んでいます。 点を一つ選択しただけで全データが書き込まれます。手抜きと言えば手抜きですが、 レイヤーの順番が変わったこと、レイヤーの Visible, Locked が変化したことなども 記録されます。複雑な選択をする場合でも選択の状態を行き来できます。

私の環境(Pentium4 2.8G メモリ 2G)では 1,200 枚のポリゴン編集程度まではサクサク 動作するようです。1,600 枚を超えると少しモタつき始めます。

メモリ消費が気になるようでしたら、メニューの「編集|メモリをクリア|履歴」で データを消去することが出来ます。履歴の項目には現在の消費メモリが表示されます。

機体マークの undo redo

機体マークの移動にも「元に戻す」、「やり直し」機能がついています。

Top
inserted by FC2 system