Wings3D Misc Memo

Wings3Dの関係のメモを載せています(カメラ視点の操作、変形処理、テクスチャの切り出し方など)。
使用バージョンは v0.98.35。環境は Mac OSX 10.4.8 がベースになってますが、一部 1.02, OSX10.5.8 環境のものもあります。

はじめに

  • Wings3Dはオープンソースで開発されている、3Dモデラーです。
  • 最初に基本的なオブジェクト(立体)を作成してから、それらを加工・変形してモデルを作っていきます。


    Wings3D 関連の情報 このメモを書くにあたり参考にした記事です。 初期設定ファイル
    対応形式

    Wings3Dの操作スタイル

    Wings3Dでの制作フローチャート

    Wings3Dの操作スタイル

    基本的に、Geometryウインドウでモデリングの作業を行ないます。このウインドウの中心にはX(赤)Y(緑)Z(青)軸それぞれの方向を示すガイドがあります。
    操作中に隠れて見えにくいと思ったなら、視点を変えることもできます。
    • マウスのホイールを回すと、ズームイン、ズームアウトができます。
    • 操作中のいつでも、Option(alt)キー+左クリックすると、マウスを動かせば視点を自由に変更できます( 左クリックすると、このモードから抜けられます)。
      初期設定では、マウスによって自由に視点を動かせません。しかしマウスで視点を操作ができるよう操作設定を変えることはできます。
    多くのを加工・変形処理は、対象(頂点,辺、面,全体のいづれか)を選択 し、マウスの右クリックメニューから、コマンドを選択実行します。
    例えば、頂点や面の移動する場合、3つの操作スタイルがあります。
    • 方向を指定した方法(通常はこれ) : 1回の移動につき、右クリックメニューで Move を選択、移動方向に決めて移動。移動量はマウスのドラッグ距離に対応
      • 数値入力指定 : 移動途中にtabキーを押せばダイアログが出現。数値を入力して、Enterキーで確定。やめる場合はESCキー。
    • 直感的な方法 :  Tweak Mode に入れば、選択部分を何度でも自由に移動できます。 F1,F2,F3キーと組み合せるとXYZ軸方向へ沿った移動ができます。
    このとき、操作のヒントとして、今の状態で実行可能な操作キーとマウスの組合せを Wings3Dのウインドウの一番下にあるTool Tips メッセージバーで教えてくれます。
    例えば L(マウスの左クリック) や、キーの組み合わせ[CTRL]、[Alt]、[ShIft]
    起動直後には、カメラ操作や、基本的なキー操作の組合せが、表示されています。

    ToolTipメッセージ

    また、複数の設定ステップを踏む(2ndarySelection ) 変形コマンドの場合、今選択しなければいけないキー操作および、作業の流れを表示することもあります
    例えばBend Command で、曲げる中心点と先端、曲げる方向の3カ所の頂点を指定指定する際に、そのつどToolTipメッセージバーに情報が表示されます。
    L : Select Rod center CTRL+L : Continue
    このとき、Wings3dは、ユーザーに、マウスでRod centerに設定する頂点をクリック(L)してから、
    CTRLキー+ マウスクリック(CTRL+L)を行い、次のステップ(先端部を選択するために)続行(Continue)すべきことを教えてくれます。最後に、 L : EXECUTE と表示されれば。左クリックで実行するという意味になります。

    Wings3Dは、よくある 「続ける/キャンセル」 確認のポップアップダイアログを何度も飛び出させる代わりに、
    Tool Tipsにそれらを遂行するためのクリック、キー操作が表示されるというインターフェースをとっています。
    キー操作に慣れれば、素早いクリック&キー連打だけで思いの変形をこなすこともできるでしょう。

    操作方法

     
    選択対象
    選択モードの種類は4つ、Wings3D では、左クリックで選択した部分が、赤く染まります。
    どの要素に対して何がしたいかを明確にすると、キー操作がつかめます。
    • 頂点 選択モード
    • 辺 選択モード
    • 面選択モード
    • オブジェクト全体 選択モード
    面選択モードでは面、頂点モードでは頂点しか選択できません。
    そして、選択領域(赤い部分)は加工や処理などが済んだり、
    モードを切替えても永続するという特徴をもっています。
    これらアイコンは、アイコンバーという場所にあります。
     
    選択対象に対して どうしたいか?

    頂点、面、辺などの選択/解除

    • 左クリック:選択/解除 の切替え
    • 左ボタン&ドラッグ: 範囲選択。
    • スペース:選択領域をリセット(全て解除)。
    • cmd+A : 全選択
    モデルの構成要素を 左クリックしていくだけで、どんどん選択領域を追加可能です。
    特定の条件にあてはまる頂点や面を一括指定したい場合は、メニューバーの Selectメニュー にあるコマンドを使います。

    改めて別の変形作業をしたい時は、不要な部分が選択されたままにならないよう、選択領域を一旦リセット(スペースキー押下)する習慣をつけると、余計な頂点まで移動させてしまう等の思わぬミスを防げます。 

    モデル加工/移動/回転

    マウス操作
     オブジェクト移動の基本は、選択後に、コンテキストメニューでMoveを選び、さらに移動方向(Normal,Free, X,Y,Z)、 を決めてから、マウスドラッグで移動します。シフトキーを押しながらだと移動量の幅がさらに大きくなります。

    Mouse Drag
    右ボタン+マウスドラッグで効果をうまく増減させるコツは、左右方向へドラッグすることです。しかし増減量が微量なので、オブジェクトを遠くに移動する場合は大変です。 このような時はシフトキーと組み合わせることで増減量を増やせば、ストレスががたまりにくいです。

    Tweak mode
    例外として、メニューバーのToolメニューからTweak mode に入れば、マウスクリック&ドラッグですぐにオブジェクトを移動させることができます。

    もし、思った方向に移動させることができずストレスを感じそうなら、次の方法を試してください。
    Tweak モードで は、ファンクションキー F1,F2,F3 のいずれかを押しながら操作すると、選択頂点をそれぞれ X、Y、Z軸方向に固定させて移動を行えます。(v1.0.2)

    ペーストで複製できない代わりに…
    Wings3Dでは、コピーペーストでモデルを複製することはできませんが、似たような結果を提供するコマンドがあります

    削除 (厳密にはモデルを掘ったり削ったりする感覚)

    • Dissolveコマンド または Delキー : 選択領域の削除。(一体化して、のっぺりする)
    • Collapseコマンド : 選択領域の崩壊 (辺や頂点が崩壊地点へ収束します。下図参照。 )
    追記:Wings3Dでは立体に対する分離/接合は得意ですが、厚みをもたないポリゴンそのものの分離/削除は苦手です
    モデルに窓のような穴を沢山開けたい場合は工夫が必要です


    熊手のようなオブジェクトを2つ向かい合わせにして、 Weld コマンドでくっつけて穴を作る方法もあります。

    その他

    • Ctrl + cmd(alt) + Z : アンドゥ
    • Ctrl + Shift + Z :リドゥ

    カメラに対して

    カメラ設定と、視点変更

    カメラ:

      ◆マウスホイールによるズームイン・アウトと次に挙げる3つのカメラ操作を覚えれば、モデルを手に取るように眺められます◆

    原点とカメラ(視点)の関係は、 地球とその周りを公転する月に似ています。

    1. 自由自在にカメラ視点を変更する設定

    (常に原点方向を表示するカメラを操作)

    Muroran X3Dの解説ページによると、メニューから、
    Edit>>Preference 、Cameraタブの設定を選び
    「MouseButton」 を "One" に、
    「CameraMode」 を "Nendo" に指定する。

    これで、Geometryウインドウ上で「 Option(alt) + 左クリック押し」すると、マウスドラッグで視点を変更できるモードになります。 あとは、キーを離してマウスをドラッグするだけで、原点方向を向いたカメラ視点を自由にうごかせます。



    このモードを解除するには、マウスの左クリック押しをしてください。

    設定はMouseButton="One" ですが、2ボタンマウスを用いた場合でも問題なく動作しています、通常時に右クリックでコンテキストメニューも使用可能。 
    ※他の3Dモデラーに慣れている人は、Blender等のカメラ操作に設定することもできます。



    ★2. 表示領域外の様子をみる方法

    (表示領域を上下左右に移動させる操作) )

    画面外の離れた場所を表示する場合に使います。
    Wings3Dでは「キーボードの矢印キーを押しつづける」ことで、いま見えているカメラ視点のまま、表示領域を上下左右へ並行移動させることができます。(キー押下あたりの移動量をふやすには、初期設定 Prefercence のCamera タブ項目 で設定できます。ArrowKey Pan の設定値を95くらいにしとけばOK)












    ★3. カメラの注視点を特定のモデルにする方法(おすすめ)

    (特定のオブジェクトの回りを周回するカメラの設定と操作)

    たとえば、原点から離れた所にあるオブジェクトを見たかったりする場合です。

    上の2つの方法だけでは、まだWings3Dを使いこなすのに不便です。デフォルトではカメラは原点を中心に回転するように設定されているためです。そこで今度は、自分が指定したモデルの回りをカメラが常に向くように設定してみましょう。

    まず、眺めたいモデルの頂点でも面でもよいので、何か選択して下さい。その後で、メニューから View>Aimを選んで下さい、選択したモデルが画面中央に切り替わります。その状態で ★1 で行なったOption+左クリック押しをすると今度は、選択したモデルの回りを周回するカメラ視点になります。

    元に戻す場合は、メニューから View>Reset を選んで下さい。デフォルトのXYZ軸の原点に対して周回するカメラにリセットされます。 これで格段に操作性が向上します。

    メニューから View>Highlight Aimを選択しても、選択した面や頂点を中心にカメラを回す事ができます また、Highligh Aim には キー(A)が割り当ててあるので、A キーを押すだけで素早く選択面や頂点にカメラを持っていくことができるので、おすすめです。(v1.0.2)




    その他のキー操作。
    • X:X軸方向の正面図を表示
    • Y:Y軸方向の正面図を表示
    • Z:Z軸方向の正面図を表示
    • R:初期位置 のview に戻す。
      (拡大縮小中でも視点変更が可能。)
    • O:正投影モードにする。

    • L:選択した辺を含む一周する辺を一括選択(Loop Edge)
    • G:選択辺をに平行な辺の群を一括選択(Loop Edge Ring )

    • Tab :クイックレンダリング / 変形コマンドの実行中では 数値入力ダイアログの場合もある
    • A :Highligh Aim 選択した面や頂点に、カメラの注視点を持っていく(v1.0.2)
    • Q : マウス前後ドラッグによるカメラのパン
    • マウス-ホイール:ズームイン/アウト
    • 矢印キー: 上下左右にカメラをパンさせる
    • 登録キー:Saved View で登録したカメラ位置を呼出

    自由なカメラ位置を設定したければ,設定後に、
    メニュー View>Saved View でカメラをキーに登録できる。


    右クリックメニューv1.0.2

    マウスの右クリック(またはCTRL+クリック)で出すことができるメニュー。Wings3Dのモデリング作業はほとんどこれを通して行ないます。
    メニュー項目にリストされるコマンドは、下の表の通り、今現在選ばれている選択モード(頂点、面、辺、全体) によって変化するので、コマンドが見つからない場合は、まず選択モードを変更してみるとよいでしょう。赤文字はアドバンスメニュー有効時のコマンドです。
    この表では省略しましたが、両端にピリオドがある「.Command.」は2ndary Slection対応コマンド。
    また、コマンド名の右端に四角いマークがあって、それを選択できるものは、数値入力ダイアログが付いています。

    頂点選択モード -- Vertex

    辺選択モード -- Edge

    面選択モード -- Face

    全体選択モード -- Body

    無選択時

    頂点に対して 辺に対して 面に対して 選択モデル全体に対して 新規に立体作成

    Move (移動)
    Rotate (回転)
    Scale uniform (膨張/収縮)
    Scale Axis (XYZ軸方向伸張)
    Scale Radical (XYZ軸 放射状)
    Absolute commands(絶対座標で)
     *move(移動、整列、配置)
     *snap(選択objに寄せる)
     *scale(拡大縮小)


    Extrude(押出し)

    Flatten( 平均化 )
    Intersect(交差&接地)

    Connect C(2頂点を接続)
    Tighten(効果強調)
    Bevel (ベベル)
    Dissolve Del (削除)
    Collapse (削除-崩壊)
    Weld (接合)
    Deform(変形)

     *Crumble - (もみくしゃ)
        Random (ランダム)
        Normal (法線)
     *Inflate - (膨張)
     *InflateCylindrical -(円筒膨張)
     *Taper - (歪み)
     *Twist - (捻り)
     *Torque - (旋回)
     *Shear - (剪断:シアー)

    Vertex color
    Set Constraint
    Bend(くの字に曲げる)
    Bend Clamped(⊂の字に曲げる)

    Shift

    Move
    Rotate
    Scale uniform
    Scale Axis
    Scale Radical
    Slide (スライド)
    Absolute commands(絶対座標で)
     *move(移動、整列、配置)
     *snap(選択objに寄せる)
     *scale(拡大縮小)


    Extrude(押出し)
    InterSect(交差&接地)
    Flaten (平均化)
    Cut(辺を2〜10分割)
    Connect C (2辺の中点間を分割)

    Bevel(ベベル)

    Dissolve bksp (削除)
    Collapse(削除-崩壊)

    Hardness(スムーズ効果無効)

    Circlarise (一周する辺を円にする)
    LoopCut(選択辺で繋がる領域を切断)

    Vertex Color

    Set Constraint
    Turn (辺の向きを反転)

    Move
    Rotate
    Scale uniform
    Scale Axis
    Scale Radical
    Absolute commands(絶対座標で)
     *move(移動、整列、配置)
     *snap(選択objに寄せる)
     *scale(拡大縮小)


    Extrude(押出し)
    Extrude Region(押し出し)
    Extract Region(面を剥がす)
    Sweep (旋回)
    Flatten(平均化)

    Inset (中央に寄せて分割)
    Intrude(立体に穴を開けくりぬく)
    Bevel (中央を凸ませる)
    Bridge(2つの面を連結)


    Bump (凹凸を作る)
    Lift (軸/頂点を回転軸に回転)
    Put on (対象面に乗せる)

    Mirror (鏡像)
    Dissolve Bksp
    Collapse(削除-崩壊)
    Smooth S (丸める)
    Tesselete
    (ポリゴン分割)

    Hide

    Material(登録マテリアルの適用)
    Vertex color(頂点色)

    Set Constraint
    UV Mapping(テクスチャ切出し)

    Move
    Rotate
    Scale uniform
    Scale Axis
    Scale Radical
    Absolute commands(絶対座標で)
     *move(移動、整列、配置)
     *snap(選択objに寄せる)
     *scale(拡大縮小) 


    Flip(上下左右反転)

    Invert (裏返し)

    Tighten(効果強調)
    Smooth (丸める)

    Doo Sabin Subdivision
        (Doo-Sabin細分表面化)

    Combine (グループ化)
    Sepatate
    (グループ解除)

    Weld (接合)

    Cleanup
    Auto Smooth

    Duplicate (複製)
    Delete    Bksp
    Rename...

    Show All

    Vertex color
    Object To Area Light
    Materials to Colors
    Vetex Color

    UV Mapping(テクスチャ切出し)

    Tetrahedron (正4面体)
    Octahedoron (正8面体)
    Octotoad (斜方8面体)
    Dodecahedron(正12面体)
    Icosahedron(正20面体)


    Cube   (立方体)

    Cylinder (円柱)
    Cone   (円錐)
    Sphere (球)
    Torus (トーラス=ドーナツ型 )

    Grid (グリッド 10x10碁盤目板)

    Light(光源)
    Material...(マテリアルの作成)
    Image...(埋め込み画像作成)

    Image Plane...(下絵画像読込み)

    Text


    More
     *Gear (歯車)
     *Tube(円柱管)
     *GeoDome(180面体)
     *Torus Knot (結び目)
     *N-Cube(正方形の板)
     *N-Gon(多角形の板)
     *Regular Plane(6x6碁盤目板)
     *Lumpy Plane(29x29浪板)
     *Wavy Plane(59x59波紋板)
     *Sombrero Plane(59x59ソンブレロ波紋)

     *Spiral (渦巻き)
     *Spring (ばね状)

     *UV Torus (きめ細かなドーナツ)
     *Lumpy Torus (ポン・デ・リング)
     *Spiral Torus (捻りドーナツ)

    Moveコマンド

    選択された面・辺・頂点を中心方向から内外へ膨らませたり、伸ばしたりする場合は、 Scale Uniform コマンドを使ったり、Moveコマンド の Normal 移動を使うのがだと思います。

    Moveコマンドのサブメニューについて

    法線は様々なヒントを教えてくれる

    メニューからView>Show>Show Normals を選ぶと、モデルの選択部分から青い毛のようなものが生えて表示されます。これがNormal (法線)といって、 面や点に対して直角で、長さが1のベクトルを表します。 従ってMove の Normal は、このベクトルの方向に従ってオブジェクトを移動させようと働きかけます。

    編集時において法線は、回転方向を決めたり、ライティングや空間を把握するヒントとしても役立ちます。

    様々な変形コマンド

  • Tool Tips (一番下のグレー部分に表示されるメッセージ)も参考になります。
  • Mirror は、選択面を基準とする鏡面に接した鏡像(コピー)を作成します。オリジナルとコピーは選択面で接合されます、回転体を作る時に役立つコマンド。
  • CleanUp
    孤立点を除去したり、選択できるのにGeometryウインドウには表示されない辺などを修復したりします。これらの現象はDissolve等で辺を削除したり、またはconnectで辺を追加したときに発生することがあります。
  • Rotate :選択したオブジェクト構成要素を回転させます。
  • Put on : オブジェクトAの1つの面だけを選択した状態で Put On を選択します。次に、くっ付けたい(乗せたい)別のオブジェクトBの面を選択し、右クリック、オブジェクトAがBの選択面同士で張り付きます(上下左右関係なく)。

  • Lift (面選択モード) : 2ndary Selectionで、固定する頂点または辺を選択し、右クリック、ドラッグで効果を調節。固定部分以外が上昇(旋回)する。
    特に、辺を固定した場合には回転軸として利用することができるので、旋回を繰り返すことで回転体を作る事もできます。



  • Weld(全体選択モード) :
    Weld を実行するには、2つの面の寸法が全く同じでぴったり接しておく必要があります。少しでもずれているとうまく働きません。

    ( 上の図では、Put On コマンドを使って2つの立方体を接するように配置しました。)
    Weldで終端をつなげたい場合、回転体であれば最初の面と最後の面がぴったり合わさるように回転角度を計算するか、面同士をスナップさせておく必要があります。
  • Bend(頂点選択モード) : くの字やUの字に折り曲げる



  • Bridge(面選択モード) : 離れた面同士を接続する事ができます。このとき選択する面は、必ず互いに向き合った面にして下さい。

  • Intersect(辺選択モード) : 交差。選択した辺が伸びる方向を基準に、任意の面や頂点を含む平面と交差した地点に、接地させます。
    交差させる平面それぞれのオブジェクト同士は、離れていてもかまいません。

    用途としては、任意の平面に合わせて、オブジェクトを揃えたり、スナップさせる等の使い道があります。
    下図の説明をわかりやすくするために、平行な辺2つを元に、また接地させたい平面をXYZ軸平面ではない任意の平面にしています。

  • Sweep : 旋回。うまく使えば強力なツールです。マウスドラッグによる変位量調整が可能です。
    マウス操作は難解ですが、落ち着いて行えばなんとかなるかも。Sweepコマンドの操作法は、以下の図の、Step6, 6-1 , 6-2を見てください。
    Tabで、数値入力による変形も可能です。入力欄フォーカスを移動するのにもTabキーを使ってReturnキーで確定ください。

    コマンドの組み合わせで、このような↓ドリルのような形も作れます。


    Step:6-2 について
    Wheel:マウスホイールボタン押し  RMB: 右ボタン押しです。
    垂直面回転量は、今回Normal 回転なので値が入力されても影響を与えません。
    絞り出し効果を得るために上面を縮小しています。そのため上面の比率がマイナス%になっています。

    Sweepコマンドに関連して、以下の情報を参考にしました。
    sweep relative
    How the better way to make "spiraled" objects (どのようにして螺旋状オブジェクトを作るのか?)
    このトピックのycarry氏の作例では、Twist コマンドを利用して作っています。しかし私の持っているバージョンv1.0.2ではそれが使えません。そこでSweep を使って行います。


  • Circlarise: 丸パイプ同士の継ぎ目など。


  • Turn:

  • Hardness: Hard属性を解除するには、Hard属性の辺を選択した後、Hardness>Softを選びます。

  • Slide:

    ※Y軸方向のExtrude とSlideコマンドの落とし穴
    もし、ほかの辺をまたいだ形で移動したり増やしたりすると、厚みがないせいで見間違うことがある。(V1.2)


  • Deform:

  • Shift:

  • Tighten:

  • Flatten:

    ポリゴン編集メモ

    ポリゴンの性質

  • ポリゴン面には表と裏があります。
  • ポリゴンは頂点と辺で囲まれている必要があります。

    もし、モデルを眺めていて、辺や面の表示が変だと思ったなら、
    ポリゴン分割があいまいだったり、構造に矛盾が発生している可能性があります。
    このような場合は頂点同士を結んだりして適切な面になるよう整形し直します。

    面を張り直す場合は、Tool>>Connectで張っていったり、 Turn コマンドによって辺の向きを変える方法が役立ちます。

    メッシュ制御の基本メモ。格子の追加と削除方法



    ※この方法では自由にメッシュを作成/削除できますが、ある種の出力フォーマットでは、頂点番号の順序が正しくないとうまく書き出されないものがあり、このcut & connectの編集方が使えない場合もあります。
    Wings3dには、頂点や辺には、生成された順番に番号が割り振られます。
    例えば、N-gonコマンドで、6角形を作った場合、頂点の並びは順序正しく、

    「#0,#1,#2,#3,#4,#5」
    と割り振られます。これはwings3dで頂点を選択したときに、現在何番目の頂点を選択しているのかが表示されるので すぐわかります。

    次にcutコマンドをつかって、各辺の間に2つ中点増やし、18角形を作ろうと思います。
    この場合wings3d内部頂点に割り当てられたナンバーの順番は途中に挿入されます。
    結果は、

    「#0,#6,#7,#1,#8,#9#2,#10,#11,,#3,#12,#13,#4,#14,#15#5,#16,#17
    となります。編集して、頂点や面を追加/削除するたびに、この番号の並び順は変わっていきます。

    思い通りにポリゴンを分割する


    任意の方向に分割する(確実に...)
  • 同一面上にある、対角上にある2つの点を選択
  • Connect コマンドを使う。
  • 点同士が接続され、ポリゴンが対角辺で分割される。

    Connectモードを使う方法(早い...)
    Tools>Connect を選べば、マウスカーソルで選択した辺や頂点を
    そのままドラッグして結ぶと、素早く連続して分割できます。
    (このモードを抜け出すには、右クリック)

    自動分割する方法(ランダムで...)
    Tesselateコマンドを使えば自動でポリゴンを分割できますが、分割方向はランダムです。


  • 分割したポリゴンをひとつにする

    分割したポリゴンの辺を元に戻したい場合、辺を選択してDissolveコマンド を使います。辺は消えて、ひとつのポリゴンにつながります。

    辺の途中に頂点をこしらえたい。

    2つの方法があります。

  • まず、辺を選択します。
  • Cut コマンドを使い、辺をどれくらい分割するか決めます。
    ( 作成後の頂点数は 辺の分割数-1 個となります)
  • 最後に、作成した頂点と別の頂点をConnectコマンドでつなげれば、ポリゴンを分割できます。
  • 辺の途中に作った頂点を削除する。

    逆に、辺上に作った頂点を消したいときは Dissolveコマンドを使います。

    下絵通りの形をつくりたい

  • 一枚ポリゴンの辺に頂点を沢山つくってから、
  • TweakModeに入って
  • 下絵に対応するように、頂点を移動させると、下絵の図形をなぞることもできます。 (※複雑な形のポリゴンを作った場合、必ず三角形や四角形ポリゴンの組合せになるよう分割しておいてください。)
  • 真っ平らな1枚ポリゴンを作る

  • 無選択時に右クリックメニューから、 More を選び 、サブメニューから、N-gon(角の数は4)コマンドを使って作成(v1.0以降)。
  • または、 普通にCube(立方体)を作成し、そのなかの一つの面を選択し、Extract コマンドで 面をで normal 方向へはがす。

    丸い円形のポリゴンを作る

  • 無選択時に右クリックメニューから、 More を選び 、サブメニューから N-gon コマンドの右端の四角を選択、角の数を12程度に設定して作成。(v1.0以降)
    ただし、N-gonコマンドは最大20角形までしか作る事ができません。
  • 21角形以上の多角形を作る場合は、 普通に数値入力で、Cylinder(円柱)を新規作成し、上面を選択し、Extract コマンドで で上面を normal 方向へとはがして下さい。
    ※この方法で作った多角形の頂点は、秩序正しい順番で割り当てられます。
  • ポリゴンの中央に穴を開ける

    真っ平らな1枚ポリゴンの中央に穴をあける場合は、Insetコマンドで穴のアタリを付けた後に Intrudeコマンド
    この時、厚みができないように注意して下さい。

    開けた穴を塞ぎたい

    穴の内側の側面ポリゴンをすべて選択Dissolveコマンド

    立体を、辺で分離したり

    立体なら、切断したい辺で立体を一周するように辺を選択後、 Loopcut コマンドを使うことで、2つに分離する事ができます。

    接した立体を面でくっつける

    この逆のことをするには、Weld コマンドを使います。

    ポリゴン編集メモ- その2

    ポリゴン1枚を分離/削除したい

    Wings3Dでは立体であれば簡単に接合、分離させることはできます。
    しかし、作った後からポリゴン単位で分離/削除するのはとても苦手です。
    (Dissolveや Colapseコマンド は、消すというより、選択部分を崩したり、のっぺりとさせる感じです。)

    強いて言えば、立体に対して抜きたい面だけ全て選択してIntrudeコマンドを適用(厚み0で適用)するくらいです。
    ↓円筒モデルに対して、Intrudeコマンドを一括適用した結果。一応ポリゴンは分離しています。


    参考:窓のような穴を複数作りたい

    立体の中身をくり抜きたい

    モデルの1カ〜数カ所の面を選択し、 Intrudeコマンドを使うと、選択部分の面ポリゴンは除去されたうえで、立体の中がくり抜かれます。円筒(Cylinder)ならコップ状の形になります。このコマンドはマウスドラッグで厚みを調整することもできます。部屋とかこれで作るといいかもしれない。

    (※ただし、Intrudeコマンドは立体に対して、1回限りです。一度くり抜いた立体には効果はないようです。)
    ビルの窓のような穴を複数作りたい場合は次の情報にあたって下さい
    Wings 3D tutorials, notes and general information.のチュートリアルでは、様々な方法で穴を作る方法が載っています。

    モデルの頂点をつぶしたり、切り落とす。

    選択した辺や頂点に対して、Bevel コマンドを使う。

    精度が要求される場合は、数値入力で

    3Dモデリングでは精度が要求されることがあります。たてよこの寸法や、移動距離を厳密に指定しなければいけません。 Wings3Dでは、移動距離や、長さの指定を数値で指定することができます。 Numeric Input(数値による指定)
    コンテキストメニューのコマンド(Move> Normal など)を 選択後に Tab キーを押すと、小ウインドウが出て数値入力による細かい制御が可能です。

    この時、マウスカーソルは見えないので、数値を入力後、リターンキーを押せば確定、ESCキーを押せば取消です。 複数の入力欄がある場合は、Tabキーを押せば次の入力欄フォーカスを移ることができます。

    直前のコマンドを繰り返す(Repeat)

    何度も同じ作業を繰り返すのが面倒な時に…
    Editメニューより
    • Edit >> Repeat : 同じコマンドが選択される(あとは手動設定)
    • Edit >> Repeat | Args : 2Sel 段階まで設定済み(あとは手動設定)
    • Edit >> Repeat | Drag : 実行結果が自動的に適用される。
    ショートカットキーを使えば同じ操作が、よりラクになります。
    • cmd+D : [Repeatと同じ] 右クリメニューの手間を省くなら
    •    D : [Argsと同じ] 2ndary Selection の設定軸を生かすなら
    • Shift+D : [Drag と同じ]前回と全く同じことを繰り返すなら
    Drag は直前のコマンド結果がそのまま適用されるので、定型処理をする場合はとても便利です。 一方Repeat と Argsは、最終的な効果の調整は人の手によって行なう必要があります。

    選択したポリゴンのコピーを作りたい

    Wings3Dでは、普通のアプリケーションにあるような、モデルをコピー、別のところへペーストしたらモデルが増えた、という機能はありません。

    その代わり、同じ事を実現するためのコマンドがあります。 モデル中の複製したい面を選択し、 Extract Region(面を剥がす)コマンド を使って下さい。
    移動先(Free, X,Y,Z) を指定すると、そこへ複製が現れます。このとき元のオブジェクトの選択部分には何の影響もありません。

    ※モデルに含まれる面を全部を選択した場合は、モデル全体が複製されます。
    ※モデル自体の複製なら、モデル全体選択時にDuplicateコマンドも使えます

    選択したポリゴンの拡大/縮小コピーを作りたい

    Scale Uniform コマンド は選択モデル自身を拡大しますが、複製を作ることはできません。
    拡大縮小コピーを作る場合は Extract Regionコマンドの Normal 移動を指定して下さい。

    ポリゴンに色を塗りたい

    面選択モードで、面を選択した状態で
    Material(登録マテリアルの適用) または、Vertex color(頂点色)コマンドを使う
    なお、両者の併用は出来ません。 Material ウインドウで、色をクリックして指定して下さい。

    頂点を収束させたい、またはそれを元に戻したい

    円筒の側面の一周する辺を選択し、Scale Uniformまたは Scale Radial→Y座標方向 への変形を行えば。軸の中心方向へ頂点を集めることができます。。
    このとき、Tabキーを押して、数値入力モードにして、パーセンテージを0.0にすると、頂点はきれいに一点に収束します。

    しかし、いったん上図のような状態になってしまうと、収束した頂点群をScale Uniform やRadial コマンドで膨らまして元に戻せません。
    こういう場合は、収束した頂点群に対して、CTRL+左メニュー Move>Normalコマンドを使ってマウスドラッグさせてやります。
    下の図のように、集まっていた頂点をもとに戻す事ができます。


    Secondary Selection モード

     ↓Wings3Dでは通常、モデル自身のXYZ軸
    に対し回転、移動が行われます。
    2ndary Selectionモードでは、ガイドとなるオブジェクトを作りそのオブジェクトに基準エレメントを設定することで、
    そのガイドを中心に任意の回転を行うことができます。 

    このような回転を行う場合、ガイドに一時利用するオブジェクトを、y軸上に作っておいても便利かもしれません。
    Secondeary Selection モードとは? それは処理に必要な要素選択を2段階にわけて行なうインターフェースです。
    これにより、 回転や移動が、任意の軸や頂点を基準に行えるようになります。

    この手の概念は、 Photoshop等にもあり、選択した領域を任意の座標(x,y)で回転するために任意の座標をクリックするのがそれです。

    この機能デフォルトでは有効になっていません。使う為には、まず Edit>>Preference,の Advanced タブを開き 「Advanced Menus」 項目ににチェックを入れ、Advanced Menusを有効にして下さい。

    Secondeary Selection モードに入る方法

    右クリックのコンテキストメニューを開くと、コマンド項目が「Move」 から 「.Move.」という表記に変化しているものがあります。 これらが 2ndary Selectionにも対応しているコマンドです 。コマンドの中にはいきなりこのモードに入る種類もあります。

    Secondeary Selection モードへの入り方と解除方法
    • モードへ入るにはコマンド項目をさらに マウスの右ボタンで選択します。
      (左ボタンでコマンド選択するといつも通りの実行をします)
      モードに入ると、メニューバーが変化し、View とSelect のメニューだけが表示されます。
    • モードを解除するには右クリック押しで「Cancel」 を選択します。
    このモードに入った状態では、頂点や辺、面を左クリックして選択すると、すると青い矢印やマーカーが設定されます(これが基準エレメントです)。


    Secondeary Selection モード操作手順

    • [モードに入る] ボタンで コマンドを選択して 2ndary select モードに入る
      このとき、既に選択されている頂点は太くマーキングされ区別されます。)

    • [基準点を設定] ボタンクリックで基準点となる頂点を選択し 青い矢印または頂点を設定する。(複数の頂点を選択した場合は、選択領域の中心をとる)(*1)

    • [効果を適用する] ボタンを...
      • クリック後にマウスを動かす(Move等)、(効果を見ながら確認可能)
      • 押したまま、青矢印の指す方向へドラッグする。


    • [効果を確定する] ボタンクリックで効果を確定する(move等)
      ( ここで右クリックした場合、効果は取り消される。)
    • [効果を確定する] ボタンを離す。 ( Intersect/Flattenの場合 )
    左クリックで青い矢印を設定後、右クリックでマウスを移動させる、または右ボタンでドラッグ(Intersectの場合)すると、基準エレメントを中心に、コマンドの効果が適用されます。
    (v1.0.2 におけるRotateコマンド作業フロー)

    マグネットモード

    2種類あります
    ・変形コマンド選択時に、Commandキー+クリックで選択すると、それをマグネットモードで適用することができます(※マグネット対応コマンドのみ)。
    ・Tweak モードにおけるマグネットモードでは、カーソルが青いもやもやになります。(数字の「1」キーでマグネットモードのON/OFFをトグル)マグネットモードはOFFにするまで永続します。。
    ここでは、前者のマグネットモードについて取り扱います。

    変形コマンド実行時のマグネットモードの操作法
    マグネットモードは、周りの頂点等にも追従する効果を与えます。どの範囲に影響を及ぼすかも指定できます。
    (逆にマグネット効果の影響を与えたくない部分には、あらかじめ
    マグネットマスク属性を与えることもできます。)

    下の図は、Rotateコマンドのマグネットモードにおけるそれぞれのキーフロー(短縮キーの組み合わせによる進行)の例です。
    Wings3Dのウインドウ一番下のToolTipsには、その時に実行できるキーの組み合わせが表示されるので、迷うことは少ないかもしれません
    キーフローの途中でも無理矢理モードを変更する事が可能です。「最初は普通の回転させようとしたけど、やっぱりマグネット効果にしようっ」のようなこともできます。

    マグネット効果の調整
    マグネットモードでは、マグネットの範囲の終端部分を指定する必要があります。
    下図のグリッドのような平面を、Y軸方向へMoveさせると変化が分かりやすいです。
     
    左から、マグネット効果なし。マグネットのDome, Stright, Spike の効果です。

    各変形コマンドでのマグネット効果(円筒:シリンダー)
    様々な変形コマンドで、円筒に対して、マグネットモードの効果を試してみた
    変化をわかりやすくするため、変形の適用方向はY軸を指定。


    任意の地点を中心に、回転させることもできます(Rotateコマンド)


    マグネットマスク


    選択した頂点に対して、マグネットマスク属性を付加するには、メニューの Tool>>Magnet Mask を選択します。
    これは選択した頂点をロックしてマグネットの影響を無視(マスキング)する属性を付けます。マグネット効果を適用したくない箇所に利用できます。

    この属性が追加されると、その頂点は マスキング状態がONなら黄緑色に、マスキング状態がOFFなら紫色に変化します。
    また、マグネットマスク属性付き頂点のグルーブは、マグネット効果に対する影響を一時的に切り替えることもできます。


    サブメニューから選んでください。

    マグネットマスク属性のついた頂点について

    マスキングがON状態であれば黄緑色に染まります。このときは、マグネット効果の影響をうけません。
    逆に、Switch Masking Offにすると、紫色に変化します。紫色になっているときは、一時的にマスキング効果を解除している状態で、マグネット効果の影響を受けます。



    Tool メニュー

    Tool - Virtual Mirror

    左右対称のモデルを作成する時に役立ちます。
  • 鏡像作成:メニューバーの Tools >>Virtual Mirror >> Createを選択すると、選択した「面」に対して鏡像が出現。
  • 鏡像削除:Virtual Mirror >>Break で、鏡像を削除。
  • 鏡像実体化:Virtual Mirror >>Freeze で、鏡像をが実体化します(削除不可になる)。

    Tool - Tweak mode

  • 入り方:メニューバーの Tools >>Tweak を選択する。すると Tweak mode に入ります(メニューバーにはView しか表示されていない)。
  • 使い方: このモードに入ると、頂点や面、辺等を左クリックマウスドラッグで自由自在に動かす事ができます。
  • 抜け方: このモードから抜けるには、ESCキーを押します。(v1.0では、再度メニューバーの Tools >>Tweak を選択して下さい。 )

    もし、思った方向に頂点などを移動させることができずストレスを感じそうなら、次の方法を試してください。
    Tweak モードで は、ファンクションキー F1,F2,F3 のいずれかを押しながら操作すると、選択頂点をそれぞれ X、Y、Z軸方向に固定させて移動を行えます。(v1.0.2)

    Tool - Boundary Box

  • 入り方:
    なにかオブジェクト(頂点、面,立体など)を選択した状態で、メニューバーの Tools >>Saved BBを選択する。
    選択したオブジェクトを全てを含む空間を依り代に、青い点線の箱(Boundary Box)ができる。

  • 使い方: あるオブジェクトをBoundary Boxに内包するように配置する
    そして、Tools >>Scaled to Saved BB を実行するとオブジェクトに対しBoundary BoxのScaleが適用される。 (オブジェクトが箱の形に合わせて強制的に押し込められる感覚。)
  • 抜け方: Boundary Box を消すには、何も選択してない状態でTools >>Saved BBする。

    Tool - Align

    BoundaryBox の中心を基準に、Boundary Box 領域内にある選択オブジェクトを中央揃えに整列します。基準点はBoundaryBox の中心です。
  • Radial X は YZ軸
  • Radial Y は XZ軸
  • Radial Z は XY軸
  • All は、すべての軸の中心(BoundaryBoxの中心)に整列します。

    Tool - Center

    XYZ軸ガイド の中心を基準に、選択オブジェクトの整列を行ないます。
  • All は、すべての軸の中心(XYZ軸ガイドの中心)に整列します。


    Geometry Graphウインドウ

    オブジェクトの表示管理をします。このウインドウを出すには Window>>Geometry Graph を選択。

    モデルごとに、表示/非表示、ロックが設定できます。(下図)
  • 左端△アイコンをクリック:選択/非選択
  • 目玉のアイコンをクリック:表示/非表示
  • 錠前のアイコンをクリック:ロック/アンロック
  • 右端△アイコンをクリック:辺を表示

    Outliner ウインドウ

    マテリアル及びテクスチャイメージの管理をします。マテリアルは物質特性(反射率や透明度、テクスチャなど)に関する情報です。

    このウインドウを出すには、メニューから Window>>Outliner を選びます。ここでそれぞれの情報を編集できます。(下図)


    テクスチャとして使いたいイメージ「Cube1_Image」 を
    マテリアル「Cube1_auv」 に適用する。

    イメージ項目を選択し、右クリックメニューから、 Pick up Image を選択、
    適用したいマテリアル項目を選択し、右クリックメニューから、
    Drop picked object を選択。
    Outlinerウインドウでは次のようなアイコン&項目で管理されています。
  • △ モデル
  • [M]マテリアル
  • 田 イメージ(テクスチャ)
  • Image Plane

    下絵のこと。上面図、側面図、正面図などの画像 を下絵として読込んで、これを元にモデルを制作することができます。

    Image Plane を作成すると、マテリアル と イメージ項目 のペアが作成されます。これはマテリアルのほうを削除すれば画像のほうは残ります。 背景を透過させるアルファチャンネルは TIFF またはTga形式(未確認)が対応しているらしい。 アルファチャンネル画像は背景部分を作っておくと適用されます。

    Outlinerに、マテリアルやイメージを追加する

    Geometryウインドウで右クリックメニュー。
    以下のコマンドを選択できます。
  • Material... :マテリアルを新規登録。透明度や反射率。
  • Image... :イメージ画像の作成(市松模様等)。
  • Image Plane... :外部イメージ画像の読込。

    追加されたリソースはOutliner ウインドウで管理されます。
    外部イメージはテクスチャなどに利用できます。

    マテリアルを編集する

    Outliner ウインドウで項目を選択し右クリックメニュー。
  • Show : テクスチャが設定されている場合、画像を表示
  • Edit Material...: マテリアルを編集する(左図中央)
  • Select :マテリアルが適用されているエレメントを選択。

    マテリアルにイメージを設定する

    2つの方法があります。
  • イメージ項目を マテリアル項目にドラッグするだけ。
  • イメージ項目を選択し、右クリックメニューから、 Pick up Image を選択、 適用したいマテリアル項目を選択し、右クリックメニューから、Drop picked object を選択。(左図)

    すると、 Texture Type を聞かれるので Diffuse,Gloss, Bump(high),Bump(Normal)から選びます。これで、マテリアルにイメージを設定することができます。

    マテリアルをモデルに設定する(テクスチャを張る)

    Geometryウインドウ、面選択モード状態で右クリックメニュー。
  • .Material. : 選択した面にマテリアルを適用する。
    今まで登録したマテリアルが選べます。マテリアルに イメージが設定されていれば、テクスチャとして適用されます。
  • イメージ項目の内部埋め込み/外部ファイル化

    Wing3dでは通常、UVマッピングでテクスチャ画像を切り出したり、Image...コマンドで市松模様を作成したときには、内部埋め込み画像として保存されます。
    上図の 「Cube1 Image」 の右クリックメニューの中に、Make External... というコマンドがあります。これを選択することで.bmp形式で外部に書き出されます。 モデルデータのファイルと同じディレクトリに書き出しておきましょう。

    外部ファイルにする利点は、他のグラフィックエディタで画像を編集できることです。 画像を編集保存した後は、また同じようにイメージ項目で右クリックメニューを出すと、今度はRefresh というコマンドがあるので、それを選ぶと変化が反映されます。

    コマンドには、Make Internal... と Make External... があり、やっぱり内部埋め込みに戻したい場合は、Make Internal... コマンドを使います。

    UVマップを作る

    モデルのポリゴン面に対応する領域をテクスチャ画像へ投影/展開して、UVマップを設定します。 
    1つのモデルに、1枚のテクスチャ画像ファイルを設定できますし、UVマップ設定を繰り返せば、複数の画像も設定できると思います。

    ◆次のような手順で行ないます
    (これにより、選択部分に対して、1つのテクスチャ画像ファイルが関連づけられます)。
  • 0:準備として、テクスチャを貼付けたい面をあらかじめ選択しておきます。(用途に応じて、部分またはモデル全体を選択できます)
  • 1:下の図にあるように、右クリックメニューから.UVMapping.を選択。
  • 2:Auto UV Segmenting ウインドウが出現。選択した面に対応したセグメントと呼ばれる領域が表示されます。セグメントは必要に応じていくつでも作れます
  • 3:面を選択し、右クリックメニューで Auv Chart1〜9 を選択してください。それぞれが、連続したセグメントに対応します。

    ここで注意すべきことは、同一セグメントが同じ辺を共有している場合です。
    普通に選択しただけでは、テクスチャは変な形に切り出してしまいます。
    このような場合、辺選択モードに入り、切り離したい辺を選択し、右クリックメニューで「Mark Edge for Cut」 を選びます(下の図左参照)。

    切り込みを入れることで、4面体のサイコロのテクスチャを、展開図のように一枚の連続した平面として扱ったり、 空き缶のような円筒モデルの側面を長方形セグメントとしてテクスチャを切り出したりできます。

  • 4:右クリックメニューで、Continueを選択。
  • 5:右クリックメニューで、Unfolding / Normal を選択。
  • 6:Auto UV ウインドウが現れ、テクスチャの展開図が表示される。(下の図右参照)


     
    このとき、Auto UV ウインドウでオブジェクトをドラッグすると、切り出したセグメントをビットマップ上へ自由に配置することができます(回転、移動などができます)。
    また、展開されたテクスチャセグメントを全部選択し、Deleteを選ぶとテクスチャを削除できます。削除後は、また1からやり直しも可能です。

  • 7:Auto UV ウインドウ上で、右クリックメニューを出し:「Create Textture」を選択。
  • 8:ダイアログに従ってテクスチャを作成していきます。

  • 9 : Outline ウインドウを確認すると、イメージ項目が作成されているので、この項目を右クリックメニューで開き、Make External... コマンドを選択。するとこのテクスチャが外部画像として保存されます。あとはこれをグラフィックエディタで編集します。

    テクスチャ画像の更新

    たとえば、既にWings3Dでモデルを作成後、なにかモデルに追加や変更があって、
    描き直した テクスチャ画像に合わせて、UV座標位置も調整しなければいけなくなったとき。


    展開図の編集は、下絵があったほうがいいので、
    まず、新規テクスチャ用画像を読込む:
  • 1 Outlineウインドウ上で、ImagePlane.. で読込む。
  • 2 OutlineウインドウのImageマテリアル項目を削除する。
  • 3 GeometoryウインドウのImage項目を削除する。

    次に、UVウインドウで、テクスチャ用画像を更新、UV座標位置を編集:
  • 1.まず、 面を選択し、右ボタンメニューで「.UVMapping.」 を選ぶと、autoUV展開図が表示されるはず。
  • 2. 右クリックメニューで「CreateTexture」 を選択。
  • 3 autoUVウインドウで、入れ替えたいテクスチャ画像(head)をBackGroundに指定
    テクスチャに誤って輪郭線をつけないために、Render:1は、Noneにすること。
    (このとき、元のImage項目は新規テクスチャで上書きされる)

  • 4. AutoUVに、新しいテクスチャ画像がオーバーラップされるので、
    UV座標位置を調整する。

    最後は、データの関連づけを行う:
        UVMapping ← ((面選択)) → マテリアル→ テクスチャ

    UVMapping面選択 の関連づけは、さっきの作業で済ませたので、残りを行います。
    面選択→マテリアルの関連づけは、右クリックメニューで「.Material.コマンドでマテリアルを選ぶ。
    マテリアル→テクスチャの関連づけは、マテリアルにイメージを設定する の部分を参考にします。
    (もし、マテリアルを削除してしまったら、Outlinerウインドウ右クリックメニューでマテリアルを新規作成する)


    UV展開フローチャート

    2つの作業スタイル



    面の色をアタリとしてテクスチャに焼き込む場合。



    外部テクスチャを加工後


    テクスチャのタイリング


    UVセグメントを画像ファイルの大きさよりも大きくすると、タイリングされます。
    この効果はテクスチャ画像全体を使用するため、大きいテクスチャサイズ(512x512ピクセル)よりも、小さなテクスチャサイズ(64x64ピクセルなど)で用いたほうがよいかもしれません。

    File>> Import

    対応ファイル形式

  • Wings3d 標準形式の〜.wings のファイル は、通常1つのファイルに マテリアル、テクスチャ画像、モデルデータが埋め込まれた形で保存されます。
  • テクスチャ画像やImagePlane(下絵)画像の読込みは bmp/TIFF/tga形式 に対応しています。アルファチャンネルに対応したTIFF/tga形式も読めます。
    例外としてテクスチャ画像は、編集時に、埋め込み(Internal)か独立したファイル(External )か任意で選択できます。テクスチャは独立したファイルで書き出すと、外部のグラフィックエディタに読込んでテクスチャに色を塗ったり、その変化をWings3Dで確認しながら作業できます。 入力、出力形式  

    WaveFront(Obj) 形式

    作ったデータをOBJ形式で書出せるモデラーは多いです。テクスチャを含むマテリアル.mtl も同時に読込まれます。 JAVA製のモデラー、 Art Of Illusion からObj形式で保存したデータを読み込むことを確認。

    Illustrator(.ai)形式

    読込むファイルは Illustrator 5.0/5.5形式で保存しておきます。線で構成されたオブジェクトのみ読み込めます。一部重なっていれば合体し、完全に重なっていれば型抜きされます。複雑な形は自動的にポリゴンで分割されます。すべてのオブジェクトに対してZ方向に厚みが加えられます。Wings3D 1.0.2 では、Illustrator 8.0(テキスト)形式での読込みも対応しています。

    ■Wings3DでIllustrator形式を読込む際の注意
    読みこみはIllustratorバージョン8.0以下の(テキスト)形式でなければいけません。Illustratorは9.0からは保存形式が変わったので読めません。また、アートワークに複合パスが含まれる場合はエラーが出ます。 また、データに円のように曲線を含む場合は、そのまま読込むとひし形になるので「アンカーポイントの追加」を使い円周上にアンカーポイントを増やしておきます。

    AI Import Opetions の Number of edge bisections(デフォルトは0)の値を増やせば、読込んだデータの円周(曲線)を構成する辺を増やすことができます(ただし円以外のオブジェクトの辺上の頂点も余計に増えます)。

    ※この方法でWings3Dで読込んだ立体の頂点の順序は、#0,#1,#2,....という順序で割り振られています。

    Secondlife Scuplted 形式(.bmp)

    importer/exporterがプラグインとして配布されている。
    Exporter Templates Sculp Exporter(1.0.2以降)

    プラグインは、FIle>Install Plug-in で、xxxx.beam を選択するとインストールできます。

    ■Wings3Dでスカルプテッド形式をExportする際の注意(v1.02の場合)
    Wings3dでは、割り振られた頂点番号は頂点や面を追加/削除するたびに、この番号の並び順は変わっていきます。
    たとえば「#0,#6,#7,#1,#8,#9#2,#10,#11,,#3,#12,#13,#4,#14,#15#5,#16,#17」のようにです。今の所、頂点の再ナンバリングをする方法は不明です。

    もし、Wings3dでスカルプテッドテクスチャを正しく生成したければ、周回する頂点はそれぞれ「#0,#1,#2,#3,#4,#5,#6,#7,#8,#9,#10,#11,#12,#13,#14,#15,#16,#17」のように正しい順序で割り振られる必要があります。このように番号が一括生成されるのは新規作成立体の場合のみです。

    Wings3Dでスカルプテッド立体を作るには、最初にスカルプテッド形式の仕様で規定された面と頂点の数を持つテンプレート立体を、N-gon、Torus、Sphereコマンドなどを使い新規生成し、それを拡大縮小移動して加工する流れとなります。もし1回でも辺や面の追加や削除を行えば、頂点の結ばれる順番が狂ってしまう可能性が高くなるでしょう。  

    面白い事に、このExporterでは頂点の順序と位置関係が重要とみなされるらしい。極端な話、面で立体を構成しなくとも、64角形の円盤を63枚重ねただけの立体をCombineコマンドでグループ化したものでも、スカルプテッドテクスチャとして出力できるようです。

    参考;頂点を収束させる/あるいはその復帰方法

    File>> Export

    別のファイル形式でデータを書き出します。
    Export時に、任意のテクスチャフォーマットで保存したい時は、オプションの右のマーク?(丸く囲んだ部分)クリックして、任意の形式を選んで下さい。





    その他のメモ書き




    ここから下の文章は、Wings3Dを普通にモデラーとして使っている方は読み飛ばしてもらって構いません。
    Wings3Dの内部の仕組みを覗いてみたり、 Wings3Dの3Dモデリングをさらに快適にするためのプラグインを作るにはどうすればいいか...という書きかけの内容です。



    Wings3Dというアプリケーションは Erlang という関数型プログラミング言語で作られていて、plug-in も Erlang で書く必要があるようです。

    MacOSX版の構成
  • Wings3D Loader ........ 起動時に読込まれる。
  • Beam ........  Erlang仮想マシン。Erlang言語でかかれたソース変換やアプリの実行担当。
  • ESDL ......... Erlang 用のSDLライブラリ: キーボードやマウス入力、GUIインターフェースなど担当?
  • Wings3D....アプリケーション

    BEAM (Bogdan's Erlang Abstruct Machine)とはErlang言語の仮想マシンと呼ばれるものの1つです。
    コマンド入力で対話するための Erlang Shell はこれをエミュレートして動作するそうです。


    仮想マシンBEAMは、Erlangで書かれたソースコード hoge.erlをBEAMで実行可能な hoge.beam にコンパイル(変換)したり、実行をサポートするようです。
    Wings3dのバイナリ版は、既に.beamファイルに変換済です。これらが実行されることで、アプリケーションが起動するようです。
    このとき、仮想マシンBEAMも.beamファイルの実行のために働くようです。

    Wings3Dは、オブジェクトの頂点や辺などのデータをウイングドエッジデータ構造として管理しています。

    Erlang

  • Wikipedia - Erlang
  • Erlang land (日本語)Erlangの基本的な使い方の情報があります。基本構文、データ構造、関数の書き方、beamファイルの作り方、パターンマッチ
  • Erlang クエックブック(日本語) より高度な内容
  • Erlang World(日本語)インストール方法から、並列処理まで色々
  • 参考文献:『プログラミング言語 Erlang入門』,柏原正三著, ASCII


    また、パッケージ内のWings3d本体をターミナルで起動してErlang Shellを起動することができます。
  • How To Write Wings3D Plugins (for beginners) プラグインの作り方
  • Exploring Wings3D through the Erlang Shell Wings3Dと Erlang Shellを起動し、Wings3D内部の情報を見たり弄ったりする方法。
    Wings.hrl(ヘッダファイル)を読込むタイプのプログラムは、Wings3Dのソースコードをダウンロードしてwings.hrlを入手する必要があるらしい。 

    Erlang Shellを準備する。Erlang言語を試す。

    Wings3Dのパッケージ中には、もうコンパイル済のErlang 環境が内包されているので、手っ取り早くそれを使う事にします。
    なお、今回は.erlファイルを.beamファイルにコンパイルしたりしないので、OSに ErlangやESDLのインストールはしません
    ターミナル上で、bashに一時的にPathを通せば、Erlang Shellを通してWings3Dと対話することができます。(MacOSX10.4.11 PPCの場合)
    bash
    export ROOTDIR="/Applications/Wings3D 1.2.app/Contents/Resources"
    export BINDIR=$ROOTDIR/bin
    export ESDL_DIR=$ROOTDIR/lib
    export EMU=beam
    export PROGNAME=`echo $0 | sed 's/.*\///'`
    exec "$BINDIR/erlexec" -run wings_start start_halt ${1+"$@"}
    
    するとWings3Dが起動します。またTerminal 上ではErlang Shellが起動します。また、これを終了するにはq().と入力します
    もし
    erlexec: Error 2 executing '/Applications/Wings3D 1.2.app/Contents/Resources/bin/beam.smp'.
    このようなエラーが出た場合、実行ファイル、/Applications/Wings3D 1.2.app/Contents/Resources/bin/にある「beam」の複製を同じディレクトリに作って、 複製したファイル名を「beam.smp」にして、もう一度挑戦してみて下さい。 (MacOSX10.5.8 Intelの場合)


    Erlang言語で、標準で使えるモジュールおよび関数を使えば、Shell上から何か試すこともできます(Hello World!!とか)。
    Erlang Shellでは最初からユーティリティとして使える内部コマンドのほか、 モジュールCコマンド( c:ls() , c:cd()など 互換ぽい機能?)があります。
    例えば、カレントディレクトリ、標準出入力、環境変数等を確認したりできます。
    Erlangプログラムやコマンドの最後は、必ずピリオド「.」で終わることになっています。
    環境変数の表示
    os:getenv().
    
    Hello Worldを出力(※ioモジュール;fwrite関数)
    io:fwrite("Hello World!!\n").
    
    カレントディレクトリのpathを表示(※fileモジュール;get_cwd関数)
    file:get_cwd().
    
    カレントディレクトリのpathを表示(※Cモジュールコマンド)
    pwd().
    
    カレントディレクトリをデスクトップに変更(※Cモジュールコマンド)
    cd("./Desktop").
    
    カレントディレクトリ内のファイルを表示(※Cモジュールコマンド)
    ls().
    
    全ての束縛変数を破棄する。(※内部コマンド)
    f().
    
    Erlang Shell を終了する場合は次の内部コマンドを使って下さい(Wings3Dも一緒に終了します)。
    q().
    
    入力しても反応がなくなってどうしようもなくなった場合、CTRL+C でErlangShellを強制終了できます。
    また、CTRL+Cで次のようなリストが表示された場合 a を押して改行キーで終了できます。
    BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
           (v)ersion (k)ill (D)b-tables (d)istribution
    
    Wings3Dと対話する場合は次の説明を見て下さい。

    Erlang Shell でWings3Dと対話する その1


    Exploring Wings3D through the Erlang Shellにあった例で、で結果を表示できたもの↓
    rr("c:/erlang/wings/src/wings.hrl")を利用しないタイプのプログラムであれば、Wings3Dのヘッダファイルを用意しない状態でも結果を得る事ができます。



  • Non-State Functions (Wings3dの状態を出力)
  • Modifying Objects(オブジェクトの頂点情報)
  • Hotkeys List to HTML Table を実行した時の結果(ホットキー(ショートカット)情報をHTML形式で書き出す)↓



    Erlang Shell でWings3Dと対話する その2

    Exploring Wings3D through the Erlang Shellの例にはヘッダファイルwings.hrlが必要なものもあります。
    このファイルはWings3Dのソースコードに含まれています。
    入手するにはWings3Dの公式ページから Sorce のリンクを辿ってダウンロードしてください。
    wings.hrlは、解凍したディレクトリの中のsrcディレクトリの中に入ってます。

    このwings.hrlというファイルを任意の場所にコピーして下さい。
    例題プログラム中にある rr("c:/erlang/wings/src/wings.hrl")のファイルパス部分をwings.hrlのあるパスに置き換えれば、動作します。

    たとえばファイルをデスクトップに置いてそこから読込みたい場合は
    /Users/ユーザー名/Desktop/wings.hrl

    Wings3Dの中に置く場合は
    /Applications/Wings3D 1.2.app/Contents/Resources/wings.hrl

    に変更するとよいでしょう。


    Wings3dで、選択している頂点(2つ以上)の座標を取得するプログラム「Vertex Selection Example」を試した結果
    最初にWings3Dのほうで立方体を出現させ、頂点を選択しておいてから、これを実行します。

    Wings3D内部データ構造に関するメモ

    wings.hrlを読むと、Wings3Dは、頂点や辺や面の位置関係データ構造に、「ウイングドエッジデータ構造」を採用していることがわかります。
    これは稜線と接続する2辺の稜線の性質を利用した構造です。もしかしたらWings3Dという名前はそこから由来しているのかも?
    詳しい説明は次のリンク先を見て下さい


    プラグインの作り方についてのメモ。書きかけ(未検証!)

    プラグインで作れるものは、新規立体作成。変形コマンド、ファイル出入力(Importer/Exporter)の3つが考えられます。

    Wings3DプラグインのErlangコードを読解するための手がかり。

    コード中によく登場する ?__( 6,"hogehoge") というのはマクロで、「__」という名前で、他国語版の翻訳文字列かなにかに関係あると思われます。ひょっとしたらマクロによって「〜.lang」ファイルの各国語のメニュー表示に置き換わるのかもしれない!? また、Wings3dのソースコード intl_tools/wings_intl.hrl を探すと、 -define(__(Key,Str), wings_lang:str({?MODULE,Key},Str)). が定義されているのが分かります。
    各プラグインに共通の関数は init(), menu() , command() 関数。menu()では 右クリックMenuリストへ、セパレータや項目を追加したりしてるらしい。

  • 参考:Question about translations... (technical) - PROGRAMMING - Wings - 

  • Exploring Wings3D through the Erlang Shell
    のFirstExampleの解説
    レコードはC言語の構造体と似ている。また名前付きのデータ領域として利用できます。
    <ソースはExploring Wings3D through the Erlang Shellより引用>
    1: f(), 2: rr("c:/erlang/wings/src/wings.hrl"), 3: St = wpa:get_state(), 4: #st{shapes=Shapes,sel=Sel} = St, 5: We = gb_trees:get(1, St#st.shapes), 6: Vs = gb_trees:values(We#we.vp).
    1行目 全ての束縛変数を破棄し、リセットする。
    2行目 rr()関数で、wings.hrlにある State-Record(状態データ/選択部分など) と、Wingd-Edgeデータ(オブジェクトの座標など)の定義を読込む
    3行目 変数 St にレコードの状態データ(States)を束縛
    4行目 Stの全データのうちから shape と sel というフィールド名を持つデータを絞り込み、条件にマッチしたものを、レコードSt#st として左辺へ取得
    #st{shapes=Shapes,sel=Sel} = St というのは、#st{shapes=Shapes,sel=Sel} = #st{shapes=GBTREE,sel=LIST}. と同じ意味らしいです。
    これにより St#st.shapes のデータ、ドットを使ったフィールド名へアクセスすることができると思われる
    また、shapesはGBTREEデータ、sel はLISTデータであることがわかる

    5行目は We というのは(Wingd-edgeの略で) 1つの稜線に接続する辺や頂点に関するデータを束縛するものです。
    6行目は Winged-Edgeデータのうち、vpにリストされたデータの値をVsに束縛すると思われる。


    まだまだ不明な点が多いです。
  • なお、Wings3dプラグインのモジュール名は、wpc_から始まる必要があるそうです。


  • Getting camera transforms - PROGRAMMING - Wings - Wings3D Wings3Dのプラグインに関するトピック
  • How to Create Wings3D Plugins with C - PROGRAMMING - Wings - Wings3D どのようにして Wings3Dのプラグインを作るのか? HelloWorld。C言語のソースもあるようです。
  • wpc_ex1.erl Wings3Dプラグインの例。モジュール名 wpc_ex1

    Wings3Dをコンパイルしようとして失敗

    Wings3DのMacOSX版をビルドしようとして失敗した記録。(一応プラグイン類はコンパイルされた)
    必要なものは、Erlang,SDL,ESDL,Wings3Dで、順番でビルド、インストールしていきます。

    BUILD.unix の説明書によればOSX版のWings3Dを完璧にビルドするには、fbx library(FBX SDK?)が必要とのことですが、今回はインストールしていません。
    fbx libraryは Autodesk - Autodesk FBXから入手することができます(要ユーザー登録)。日本語の解説(ダイキン)
    ■環境。CPU=Intel Core Duo 2 GHz,   OS= MacOSX 10.5.8
    Wings3Dを解凍したディレクトリ直下に、ビルドのやり方を説明した BUILD.unix 
    というテキストファイルがあるので、これを参考に進めていきます。
    
    ■準備
    Wings3D 1.2     のソースコード をダウンロード  http://www.wings3d.com
    Erlang/OTP R13B04  のソースコード をダウンロード http://www.erlang.org
    SDL-1.2.14     のソースコードをダウンロード  http://www.libsdl.org.
    ESDL 1.0.1     のソースコードをダウンロード   http://esdl.sf.net
     
    
    ■順番にインスト−ル
    ===========================================================================
    ■Erlang/OTP R13B04をインストールする。
    Terminalを起動し、Erlangのアーカイブを解凍したディレクトリに入って
    
    ./configure --enable-threads --disable-hipe
    
    途中、fop is missing. The documentation can not be built.というエラーメッセージが出ますが気にしない。
    そして
    
    make
    
    結構時間がかかるので、お茶でも飲みます。makeが終わったら....インストールします。
    
    sudo make install
    
    これにより
    /usr/local/lib/erlang にErlangのファイルがインストールされます。また、
    /usr/local/bin/に  typer,to_erl.run_erl,escript, erlc,erl,epmd,dialyzer が
    インストールされます。
    
    ===========================================================================
    ■SDLライブラリ:(prefixにより、ホームディレクトリにインストールされます。
    ドキュメントによれば、既にシステムにインストールされたSDLと混じらないようにするためらしい。)
    SDLを解凍したディレクトリに移動してから
    
    ./configure --disable-video-aalib --disable-video-directfb --prefix=$HOME
    make 
    
    10分くらい待つ
    
    sudo make install
    
    これにより、ホームディレクトリ以下の/share, /bin, /lib, include/ にSDL関連のファイルが保存されます。
    
    ===========================================================================
    ■ESDLライブラリ:
    ESDLをビルドする前に、やっておく。
    which sdl-config
    sdl-config --libs
    
    もし、sdl-config が見つからなかったら
    cd /Users/User名/bin  
    という場所に移動して、sdl-config を直接実行する。
    以下のコマンドを入力し、コンフィグを設定する。
    
    ./sdl-config --libs
    
    ターミナルに、-L/Users/ユーザー名/lib -lSDLmain -lSDL -Wl,-framework,Cocoa
    という感じで表示されればOK
    
    その後で、ESDLをビルドします。ESDLを解凍したディレクトリに移ります。それで
    make 
    sudo make install
    これにより、usr/local/lib/erlang/addons/esdl-1.0.1 以下にESDLがインストールされます。
    
    ===========================================================================
    ■Wings3D:
    いよいよWings3Dのビルドが始まります。いきなりエラーがでて失敗です。
    エラーを回避するため、各ソースのヘッダファイルまでのpathを書き換えました。
    もっとスマートな回避方法が、あるかもしれない....。
    
    ヘッダファイルが足りないというエラーが出た!
    ./wings.hrl:17: can't find include lib "esdl/include/sdl.hrl" というエラーが表示されたので
    準備として esdl 内のヘッダファイルをWingsのあるディレクトリにコピーする
    
    例えば、/usr/local/lib/erlang/addons/esdl-1.0.1から、 Include ディレクトリをWings3Dの解凍ディレクトリ直下に コピーする。
    また、コピーしたディレクトリの中に、一緒に sdl_util.hrl も入れて下さい。
    
    テキストエディタで、 /wings-1.2/src/wings.hrl 内の include_lib のパスを相対パスに書き換え、つじつまを合わせる。
    -include_lib("../include/sdl.hrl").
    -include_lib("../include/sdl_events.hrl").
    -include_lib("../include/sdl_video.hrl").
    -include_lib("../include/sdl_keyboard.hrl").
    -include_lib("../include/sdl_mouse.hrl").
    -include_lib("../include/sdl_util.hrl").
    
    
    -include_lib("../include/gl.hrl").
    -include_lib("../include/glu.hrl").
    
    また、/wings-1.2/src/wings_body.hr の include_lib のパスを相対パスに書き換える。
    -include("../include/sdl_keyboard.hrl").
    
    /wings-1.2/plugins_src/primitives/wpc_image.erl の include_lib のパスを相対パスに書き換える。
    -include_lib("../include/gl.hrl").
    
    
    /wings-1.2/plugins_src/commands/wpc_constraints.erl  の include_lib のパスを相対パスに書き換える。
    -include("../include/sdl_keyboard.hrl").
    
    ターミナルで、Wings3Dを解凍したディレクトリに移ります。  
    export ESDL_PATH='/usr/local/lib/erlang/addons/esdl-1.0.1'
    make macosx
    
    
    Makefile の以下の行(71行目)をコメントアウトすると、FBX形式のプラグインを省略させて進めます。
    #	(cd plugins_src/fbx; $(MAKE))
    #	(cd plugins_src/fbx; $(MAKE) lang)
    
    
    export ESDL_PATH='/usr/local/lib/erlang/addons/esdl'
    make macosx
    ↑最後の最後でアプリケーション作成に失敗。プラグインはコンパイルされる。
    

    テスト用のプラグインをコンパイルしよう。

    Wings3Dのプラグイン作成の例題として公開されているテストコードがあります。
    Dan Gudmundssonさんの作成した「wpc_ex1.erl
    今回は、コンパイルしたコードが本当にWings3Dで動作するのかを試したいと思います。

    ●プラグインをコンパイルする
    ソースコードをダウンロードし、/wings-1.2/plugins_src/import_export/へ放り込む
    Makefileに追加記述する: /wings-1.2/plugins_src/import_export/Makefile を開き、MODULES = のリストに「wpc_ex1」を加える
    /wings-1.2/ 直下で make
    /wings-1.2/plugins/import_export/ 以下に「wpc_ex1.beam」が生成される。
    これを任意の場所(デスクトップなど)に、コピーする。

    うっかりミス← .beamファイルが生成されない? wpc_ex1.erl ファイル名の拡張子の後に、半角スペースがくっついてたのが原因

    ●プラグインをインストールする
    とても簡単。Wings3Dを起動し、File>Install-Plugin を選択。
    ファイルダイアログが現れるので、先ほどのwpc_ex1.beamを選択する。
    これでWings3Dで使えるようにインストールされます。

    ●プラグインを使ってみる
    すると、Wings3Dのメニューに、File>ExportにExample-exporter が追加されます。
    この形式で出力する場合は、あらかじめオブジェクトのUVマップを書き出しておく必要があります。
    Exportを実行すると、hogehoge.wex1(バイナリファイル)、auvBG.tga(テクスチャ)の2つのファイルとして保存されます。

    未整理のメモ

  • Lisp:Geometry 
  • Wings3dには、いまのとこ2Dペイント機能、アニメーション機能は存在しない。
  • MacOSX10.4.8 で、Wings3D v0.98.35 を使うと起動時にbeamがエラーで終了してしまいますが、Wings3Dは普通に使えてしまう。
     Environment variable BINDIR is not set というのが原因 。
  • OSXでネイティブのダイアログが表示されるまで時間がかなり遅いことがある(数十秒, Tiger10.4.11環境 Wings3D v1.2b)


  • Last modified
    2010 03/18 Erlang 関係のメモを追加。
    2010 02/27 Erlang 関係のメモを追加。
    2010 02/20 マグネットマスク属性について追加。
    2010 02/18 頂点の順序(頂点番号)に関するメモを、いくつか追加。IllustratorとSculptファイルの入出力に関する記事の補足。Extrude とSlideコマンドの落とし穴を追加。
    2010 02/06 変形コマンドについて、いくつか追加。
    2010 02/01 Wings3D v1.0.2 ベースで追加 マグネットモードのキーフローについて。
    2010 01/23 Wings3D v1.0.2 ベースで追加 Sweepコマンドによる絞り出し立体の作り方。
    2010 01/20 Wings3D v1.0.2 ベースで追加。一部修正 HighLight Aim, Liftコマンドによる回転体の作り方、 Bend コマンド、Tewak モードに関するメモを追加(v1.0.2)、Wings3D tutorial の ppzpitstop のリンクがNotFoundだったので修正
    2009 5/19、 特定のモデルを周回するようにカメラをセットする方法を追加。説明文や構成を書き直しました。
    2009 05/17 ポリゴンを編集Tips追加
    2007 07/05 最初のリリース

    <arolf_infoseek_jp> Tsukubado