はじめに
Wings3dって何ですか?
- Wings3dは、オープンソースで開発されている3Dモデラーです。Nendo・Miraiという3D統合ソフトから触発されて生まれました。
- 3Dポリゴンによる建物や人物、フラクタルな立体をモデリングしたり、テクスチャのためのUV展開及び画像の貼り込みが行えます。
簡単な概要
- 3D表示は内部表示のほか、外部レンダラー(Kerkythea,Pov-Rayなど)と連携も可能です。他の3Dファイル形式での保存もできます。
- 3D以外に、2Dデザインプロセスの補助に使えます。SVG形式(.svg)やIllustrator8形式(.ai)が読込めます。またレンダリングを2D線画(EPS形式)で出力することも可能。
- モデリング方法は、核となる3Dオブジェクトを中心として選択領域を粘土のように彫塑しながら、枝や根をどんどん伸ばしていくサブディビジョンサーフェス方式。
- 移動や回転などの操作は、左クリックで3Dオブジェクトの辺や面など選択対象(一次選択)を決め、右クリックメニューのコマンドから効果を実行というスタイル。
- コマンドの中には少し複雑な物があって、効果を与える方向を決めるために「二次選択」(SecondarySelection)をいくつか必要とするものがあります。
- 重いデータを扱うのは苦手。ローポリなら古いPCでも充分ですが、ハイポリ(頂点数5〜10万以上,サイズ2MB〜10MB以上)を扱うならIntel Core i5以上を推奨
何から始めれば良い?
3Dマニュピレータ(ギズモ/ウイジット)はありません
- たいていの3Dソフトにはユーザーが情報を把握する表示や、操作の補助オブジェクトとして、ウィジット(ギズモ/ガジェットとも呼ばれる)があります。
しかしWings3Dにはそれがありません。(一応、Wings3D補助表示はあります。例えば法線や移動方向を表すベクトルの矢印、光源の照射範囲等です)。
良い点
- 他のプロ用の3Dソフトより、UI(ユーザーインターフェース)がシンプル。
- カメラ操作方法を、他の3Dソフトのやり方に変更が可能
- 読込み保存は、各OSなじみのダイアログを選択できる。
- 頂点、辺、面、など選択して、すぐにコマンドを実行。どこが選択されているのか理解しやすい。
- マテリアルとテクスチャの関連付けがとても楽。(アウトライナー項目間でドラッグ&ドロップ)
問題点と改善
- コマンドの結果は初見では予想不可能なものが多い、そのために体系的な説明書が必要なのですが、少ない→→→ 最近は充実しつつある、あとドキュメントやUI翻訳でカバーします
- 立方体やトーラスを作る際のサイズ結果を予想するヒントが少ない。→→→ v1.5以降、プレビュー機能が実装され、格段に使いやすくなりました
- 他形式の重い3Dデータの読込みに非常に時間がかかる。ネイティブアプリではないので実行速度は仕方がない(5万ポリ以上はIntel Core i5以上推奨)
- MacOSXではホットキーを再設定しなければ無反応なキーがある。例:[F1][F2][F3]
- 二次選択で、位置や方向を指定するときに、ベクトルの合成をイメージしないといけない →→→ (適当に触っていれば、そのうち慣れるかも...)
- UV編集を快適に行えるのは正方形テクスチャのみ(他サイズは表示できますが、UV編集時に困る)
- 何をするにも深いメニュー階層...。→→→Defaultコマンド、Repeatコマンド、ホットキーによる効率改善は可能。WindowsではAutoHotkeyを使う人もいるらしい
- 日本語ファイルパスやファイル名は非対応。→→→ファイルの置き場所に日本語フォルダを避ける、日本語ファイル名を避ければOK
- ウインドウが小さいと、長いヘルプ文字列が隠れる→→→v1.5では長いヘルプ文字列であれば折り返して表示されますが、うまく折り返されるのは英語のみ。
そのほか
機能の改善や追加は、開発者に要望を伝えたり、その方面に詳しい開発者が参加すると実現するかもしれません。
- Wings3dはErlangというプログラミング言語で書かれており、興味がある方はソースコードを読んだりコンパイルに挑戦したり、プラグインを作ったりしてみるのも良いかもしれません。
他3Dソフトを使っている方へ
- 残念ながらWings3Dには、3Dペイント、画像合成、ボーンやアニメーション機能はありません。(スカルプト機能はあります)
他の3Dソフトの補助として使うのがよいでしょう。もしプログラムができる人なら、こらら機能をプラグインを作って実現してもいいかもしれません。
- カメラ操作系を他の3Dソフト(Mirai,Nendo,Maya,3dsMax,MotionBuilder,Blender,SketchUp)と同様のものに変更することができます。Wings3dで対応しているカメラ操作の比較表を作りました。
- 他の3DソフトでよくあるXYZキーでXYZ軸移動は、ホットキー変更で可能ですが面倒(xyz軸方向に頂点/辺/面/全体モード別々に存在するため3x4=12カ所の変更が必要です)
それならTweakモードを使うほうが簡単です。[F1][F2][F3]でXYZ軸移動
- 3面図+3D視点のために4枚ジオメトリウインドウを開いての編集が可能、またそれに最適なコマンドもある(画面に基づいて移動、回転,Move>Free,Rotate>Free)。
- コンストレイントの扱い: Set Constraintコマンドがある :総延長、角度の差、面積の割合、距離などを測定し値を altキー他に記憶できる。記憶したキーは他のコマンド実行時に押せば一定の角度で回転、移動などが可能になるというもの。(注意:アニメーションにおけるコンストイントや、3D-CADの拘束条件とは別物。)
過去バージョンとの互換性について
- 【MacOSX版の動作】
V1.5.2 MacOSX 10.9(Mavericks)以降でしか動作しません
v1.5.1 MacOSX 10.8(Moutain Lion)以降でしか動作しません
v1.4.1 MacOSX 10.7.5(Lion)で動作します。
v1.3.1 以降はIntel Macのみ対応(MacOSX版は10.5.8以降)
v1.3.0.1 MacOSX PowerPC対応最終バージョン
- 【データ互換性】かなり昔のバージョンv0.80,v0.92以前で作成したWings形式のデータは新しい版では読めません。
日本語環境でファイルを扱うときの注意
基本的にファイル名は
英小文字,数字,記号から構成される名前でお願いします。
Wings3dは日本語名のフォルダ/ファイル名の読込/保存には完全対応していません。
各OSでWings3Dを利用する場合の注意
- 【Windows】 Wings3Dv1.5.2でユーザー名にUnicode文字が含まれている場合でも起動に失敗しなくなった(DownLoadページ参照)
- 【WinXP,Win7,OSX,Linux】データを置くファイル/フォルダの命名は英小文字,数字,記号から構成される名前を使って下さい。
- 【WinXPのみ】データファイルは、デスクトップではなく、マイドキュメント以下に置けば読めます
- 【Linux(Ubuntu)】ファイル拡張子は英小文字を使ってください(例:.obj)。拡張子が大文字(例.OBJ)だとファイル名が認識されません
- 【MacOSX】MacOSXでは、File>MacOS file dialogにチェックを入れると、OSネイティブのダイアログを使うようになります。デフォルトの保存ダイアログだとクラッシュすることがあります。
- 【MacOSX 10.5 】 OSX10.5,10.6,10.9で、デフォルト状態でTweak時のF1,F2,F3キーが機能しない解決法 )
- 【MacOSX 10.5 】 Clipping Planeがクリップされない→バグです。MacOSX 10.6や10.7では問題ありません)。
- 【MacOSX 10.6 】 オブジェクトの要素をマウスのドラッグで矩形選択しようとするとwings3dのウインドウ内容が数ピクセル移動する→バグです。これはMacOSX 10.6以外では発生しません。)。フォーラム内トピックに、この現象が報告されています。gl_select周辺の問題に起因すらしい。この問題は以前Blenderでも発生したらしい。
- 【MacOSX 10.7 Lion】MacOSX10.7ではWings3dのマウスの中ボタンを使うと「Mission Control」によってダッシュボード表示画面に切替されてしまいます。これは、MacOSXの「システム環境設定」>Misson Control から、Dashboardを表示するショートカットの設定で「中央マウスボタン」を「ー」に変更すると直せます。
- 【MacOSX 10.8 MontainLion】 起動するには MacOSXの「システム環境設定」>セキュリティとプライバシー>一般>ダウンロードしたアプリケーションの実行許可の設定で、すべてのアプリケーションを許可 を選択しておいて下さい。 OSX10.8では矩形選択時に画面がずれるバグが再発しています。
※強制的に「日本語名.wings」で保存したら読込めるか実験してみた所、Wings3dのFileメニューの「最近開いたファイル項目」からは読込み可能でした。しかし実際保存されたファイル名は文字化けしており、File>Openからは開きません。(WinXP,Win7,OSXで確認)、文字化けしたファイルは英数字のファイル名変更しなおすと再び読めるようになります。
Wings3D 関連の情報
このメモを書くにあたり参考にした記事です。
対応ファイル形式
Wings3Dで作成保存された、ファイル拡張子は「.wings」になります。他の形式に関する詳細は
こちらへ
対応ファイル形式
- 読込み対応:【3D】
Nendo(.ndo) ,
3D Studio(.3ds) ,
Wavefront(.obj) ,
LightWave(lwo|lxo) ,
Stereo Lithography(.stl)
【2D Vector】
Illustrator v8.0(.ai) ,
PostScript(ps|eps) ,
SVG(.svg)
※Illustratorはv9.0以降のバイナリ形式は非対応,※FBX形式はWings1.3.1以降で非対応
- 書出し対応:【3D】
Nendo(.ndo) ,
3D Studio(.3ds) ,
Wavefront(.obj) ,
LightWave/Modo(lwo|lxo) ,
Collada 1.4(.dae) ,
VRML2.0(.wrl) ,
Direct X(.x) 【2D Vector】
CartoonEdge(.eps)
【外部レンダラ】Kerkythea(.xml) ,
POV-Lay(.pov) ,
Renderware(.rwx)
【ゲーム用データ】
BZFlag(.bzw)
(オープンソースの戦車ゲーム)
CartoonEdgeというのはepsデータのことです。Adobe IllustatorやInkscape などのベクトル編集ソフトで、線画としての2Dレンダリング結果を活用することができます。
フリーの外部レンダラーについて:
コンパイルせずに使えるGUIありの外部レンダラーについて(2013年現在)。Windows環境ではたいてい動くと思うので説明は省きます。
MacOSX10.8現在ではPovRay,Mitsuba,Kerkythea の順で導入しやすいと思います。
Wings3Dデフォルトで連係可能なのは
Pov-Ray,
Kerkytheaです。
Yafarayレンダラーについて
Wings3DからYafaray用にファイルを出力するプラグインは存在します。しかしBlenderに統合されたのか現在Yafarayのスタンドアロン版はどこにあるのか不明。
Pov-Rayレンダラーについて
Mac用Pov-Ray3.7Unofficialを起動するとPreferenceウインドウが開くので、Pov-Ray付属のincludeファイルのファイルパスを指定しておきます。
また、Wings3からPov-Rayに出力する場合の注意。テクスチャを反映させたい場合、Wings3Dでテクスチャのマテリアル編集画面を開きPov-Ray Options>Texure>Pigment:から、 Pattern:Image にして、 "diffuse" を選択します。あとはWings3Dから Export。Pov-Ray側で光源関係のobjectがないというエラーがでたらPovファイルのソースのその箇所を削除
Mitsubaレンダラーについて
Wing3Dから
Mitsubaへ直接レンダリングはできません。
Wings3dでテクスチャとUVを作成したデータをobj形式(おすすめ)または dae形式で保存しておき、それをMitsuba側でimportする事で可能。(Mitsubav0.5.0)
(誰かがMitsuba用設定xmlファイルを書き出せるようにWings3D用プラグインを書けば柔軟なレンダリング指定をMitsubaへ設定することもできるかも。)
レンダリングおよび簡易プレビューはMitsubaのGUIウインドウへ先ほど生成されたxmlファイルをドラッグすることで可能です。
AdjustPreviewアイコンでプレビュー設定、Tweakアイコンでレンダリングやサンプリングを設定し、Renderボタンを押すと実際のレンダリングが行われます。
Mituba公式PDFドキュメント(英語)はグラフや写真が豊富で充実しています。特にTweakボタン画面でどの方式でレンダリングしたらいいかは ドキュメントのPage144〜190 が役立ちます。概要や設定可能なパラメータについて写真付きで説明されているので、英文や専門用語を差し引いても一度目を通しておくとよいでしょう。
Aqsisレンダラー,Pixieレンダラー
Wings3DのManifoldlabプラグイン集には、Renderman(.rib)形式で出力するプラグインが収録されています。フリーのRenderman互換レンダラーとして、Aqsis(GUIあり),Pixie(GUIなし)が知られています。Aqsis,Pixieをそれぞれ動作させるには、インストール(※)後にターミナル上でAqsis,PixieがインストールされたFilePathをExportしておくか、環境設定ファイル.profile に設定しておく必要があります。しかしWings3DからExportしたribファイルを読み込ませた実験ではどちらもエラーが出て失敗しました。 (※Pixieは /ライブラリ/Pixie にインストールされます。また動作にはX11が必要です。)
テクスチャ画像形式と構造
- Wings3dはテクスチャを、内部/外部テクスチャ2種類で管理しています。
- 内部テクスチャ RMB:Shape|Image...
Wings3d側から自動的にパターン画像を生成したり、上書き処理を行えるテクスチャです。テクスチャにUV展開図や頂点カラーを焼き付けたりできます。(ファイル内に埋め込まれる画像)
- 外部テクスチャ File>Import Image... / RMB:Shape|Image plane...
外部の画像ファイルへリンクしたテクスチャで、ユーザーがその画像を他のエディタで加工して、Wings3d側でRefreshさせることでテクスチャの表示を更新/復帰させることもできます。png,jpg,tif,bmp,gif形式の画像をテクスチャとして読込み可能です。
読込んだテクスチャはどうなるのか?
- 読込んだテクスチャは、Wings3DのOutlinerウインドウに項目が追加されます。
テクスチャはマテリアルに関連づけることで、画面に表示できます。(Diffuse/Specular/Normalmap等を設定)
Geometry Graphウインドウで、テクスチャ項目をマテリアル項目へドラッグ&ドロップすれば、簡単にテクスチャをマテリアルに関連づけたり、別のテクスチャに変更したりできます。また、内部テクスチャと外部テクスチャ(書き出し)の相互の変換も可能です。
具体的な手順はこちら>Geometry Graphウインドウ及びOutlinerウインドウ詳細
プラグインのインストール方法
プラグインは、Wings3dで読み書き可能なファイル形式を増やしたり機能を拡張するプログラムのことです。
インストールだけならプログラミングの知識がなくてもOK>
Wings3dのプラグイン詳細について
- プラグイン単体:Wings3dのメニューから、File>Install Plug-In でダイアログが出るので、インストールしたい .beam ファイル選択してください。
- 圧縮ファイル形式:(例:wings3d_plugin.tar.gz)に圧縮されているときは、解凍せずにアーカイブファイル自体を指定すると、中の複数のプラグインを同時にインストールすることができます。
(インストールされたプラグインはOSによって以下の場所へ保存されています)
- /Applications/Wings3D1.3.1.app/Contents/Resources/lib/wings-1.3/plugins/ (MacOSX版)
- Program_files/wings3d_1.3.1/lib/wings-1.3/plugins/ (Windows版)
- wings3d_1.3.1/lib/wings-1.3/plugins/ (Linux版)
もしErlang言語の知識があれば自分でプラグインを作成することもできます。
制作フローチャート
.
.
.
.
これを他のグラフィックエディタで編集し保存
.
.
テクスチャを確認しつつ微調整
.
|
その他
- 読込:Marge は別のwingsファイルの内容を追加読込み
- 保存:SaveIncremental出保存するたびに(現在開いてる)ファイル名+連番で保存されます。
- 保存:Save Unused Material にチェックを入れておくと、未使用マテリアルも一緒に保存します。
オブジェクト移動の基本は、選択後に、コンテキストメニューでMoveを選び、さらに移動方向(Normal,Free, X,Y,Z)、を決めてから、マウスドラッグで移動します。シフトキーを押しながらだと移動量の幅がさらに大きくなります。
MoveのFreeはスクリーンに対して移動するので、ジオメトリウインドウを3つ開いて3面図でモデリングする時に、役立ちます。
右ボタン+マウスドラッグで効果をうまく増減させるコツは、左右方向へドラッグすることです。しかし増減量が微量なので、オブジェクトを遠くに移動する場合は大変です。
このような時はシフトキーと組み合わせることで変化量を増やすことができます。
Ctrl + cmd(alt) + Z : アンドゥ
Ctrl + Shift + Z :リドゥ
ペーストで複製できない代わりに…
Wings3Dでは、コピーペーストでモデルを複製することはできませんが、絶対座標移動や、アウトライナーや右クリックメニューコマンドの複製コマンドを利用することで、オブジェクトを複製できます。 |
はじめてのWings3d
起動直後
Wings3Dを起動すると、ウインドウがいくつか表示されます。
デフォルトでは1ウインドウですが、メニューバーから Window>New Geometry window、で
Geometryウインドウを複数広げれば3面図レイアウトも可能
ホットキー[X]/[Y]/[Z]を使えば、X/Y/Z軸からそれぞれ見た視点で表示を切替できます。
Geometryウインドウ:ジオメトリウインドウ、モデリングの作業を行ないます。中心にはX(赤)Y(緑)Z(青)軸方向を示すガイドがあります。
GeomertyGraph:ジオメトリグラフ、現在Geometryウインドウ内にある全オブジェクトをリストしたものです。特定オブジェクトをワイヤフレーム表示にしたり、非表示にしたり、編集不可に切替できます。
Outliner:アウトライナー、オブジェクトのマテリアルやテクスチャを管理します。外部から画像ファイルを読込むと、ここに追加されます。
Palette:パレット、頂点や辺、面に好きな色を付けられます。
18 faces selected(18枚の面が選択されています)現在の状態に関する情報が表示されています
Information Line:情報表示行。この部分には、今時点でやれる事とそのやり方が書かれています。
Geomerty:ジオメトリとは「幾何学的形状」という意味で、Wings3Dではメインの3Dデータの内容を表示するウインドウとして使われています
ウインドウのレイアウトと、カスタマイズ
Wings3D内の各ウインドウのタイトルバーについて(バーに触れたときに情報行にも、説明が表示されます)
- タイトルバー右上隅の[X]ボタンで、そのウインドウを閉じる、また右下隅にあるツマミでウインドウのサイズを変更できます。
- マウス左ボタン&クリックで、そのウインドウをタイトルバーのみ表示。再度クリックで元通り。
- マウス左ボタン&ドラッグで、そのウインドウの位置を移動。
- マウス中ボタンで、そのウインドウを余白一杯に広げる(便利)。
- マウス右ボタン&クリックでメニュー。「ウインドウサイズを入力」「余白一杯に広げる」「ツールバーを隠す」が選べる。
複製した新しいジオメトリ#2 ウインドウや、その他のパレットウインドウの位置や大きさは、
開いたファイルに限らず次回起動時にも引き継がれます。
ツールバーを隠してスッキリ
Wings3D内の各ジオメトリウインドウのタイトルバーについて
- タイトルバーで、右マウスボタン&クリックでメニュー。「ツールバーを隠す」を選択することができます。
- ツールバーを隠すと、ツールバーのアイコンを消せるため画面上下を広く使えます。
- 元に戻すには、タイトルバーで、右マウスボタン&クリックのメニューから、「ツールバーを表示」を選んで下さい。
- ツールバーを消した状態のジオメトリ#2のウインドウメニューを使って、新たにジオメトリウインドウを開くと、
最初からツールバー非表示のものが開きます(便利)。
情報表示行を活用しよう
Wings3Dを学ぼうとする人で、なにをしたらいいか分からなければ、
ウインドウの一番下にあるInformation Line(情報表示行)この行をまずチェックしてみるとよいでしょう
普段は3つのマウスボタンとそれぞれの機能について、コマンドやボタンを選択中はToolTipといった役立つヒントを表示します
起動直後に表示されるもの:
L : Select M:Start camera R: Show menu
普段、Wings3Dのウインドウの一番下のInformation Line(情報行)にはこのように表示されています。
ボタンの意味と、それに割り当てられた機能が書かれています。
マウスボタンの意味
- L:左(Left)ボタン:LMB
- M:中ボタン(Middle,Wheelホイール:MMB)
- R:右(Right)ボタン:RMB
を意味していて、それぞれ押したときの機能が表記されています。
マウスが2ボタンの場合は表示が違い、中ボタンが Option+alt に割り当てられていたりします。
ボタンに割り当てられた機能
- Select:オブジェクト上の要素(辺や頂点等)をクリックするとその部分が選択領域となる
- Start camera: ユーザーの視点を制御する、カメラモードに入ります
- Show menu:コンテキストメニューを表示。選択領域に様々な変形を行うコマンドを実行します
これらの機能については、それぞれ
で詳しく説明します。
マウスのボタン数の設定、Preference(環境設定) >Camera タブで設定できます。
3ボタンマウスの場合は Camera modeを Wings 、ボタンの数をThree を選択するとよいでしょう。
2ボタンマウス設定は修飾キーを挟むため操作が少し複雑になります。
また、一部の変形コマンドの実行にはパラメータ指定のためのステップを踏むものもあります。
その場合、ユーザーに行動を促す意味を持つもの(Continue)もあります。
具体例(複雑な例):
これはあるコマンドを実行したときの情報行の内容です。
L : Select Rod center CTRL+ L: Continue
意味:
- L : Select Rod center = 左クリックでオブジェクトの Rod center を指定しなさい(辺や面を選択)。
- CTRL+L : Continue = (Rod center を指定し終わったら) CTRLキー + マウスクリックして次のステップに移動しなさい。
- L : EXECUTE = 左クリックして、最終的なコマンドを実行に移してください。
左クリックで任意の要素を選択した後、 CTRL+左クリックで次のステップへ移りなさいという意味です。コマンドに必要な指定が全て済めば、最後に L : EXECUTE で最終的な実行となります。
他には、[CTRL]、[Alt]、[ShIft]や [F1][F2][1][2][3] キーが書かれていれば、そのホットキーを押したり組み合わせた場合の効果が説明されています。例:CTRL+L:CTRL&左クリック LL:2回左ボタンクリック
Wings3Dは、「続ける/キャンセル」確認のポップアップダイアログ代わりに、情報行に意思表示のキー操作を表示してます。そのためキー操作に慣れれると、クリック&キー連打のコンボでスムーズな編集ができるかもしれません。
領域選択のしかた
初期状態の情報行の内容から、「L:select(領域選択)」について説明します:
L : Select M:Start camera R: Show menu
選択対象 |
選択モードの種類は4つ、Wings3D では、左クリックで選択した要素(辺や面や頂点など)が、赤く染まります。 対象(オブジェクト)の、どの要素に対して何がしたいかを明確にすると、キー操作がつかめます。
|
|
- 頂点 選択モード(V)
- 辺 選択モード(E)
- 面選択モード(F)
- オブジェクト全体(B) 選択モード
- マルチセレクションモード:頂点、辺、面アイコンがまとめて白枠で囲われてる場合はいずれのモードからでも始められます。
- プリミティブ作成モード,全体選択モードで未選択状態がそれです。右クリックメニューを開くと、基本立体を生成できます
|
これらはホットキー V,E,F,B で素早く切替える事ができます。(CapsLockを無効にしておくこと)
マルチセレクションモードでは、頂点、辺、面どれでも選択可能で、始めに選択した要素によって各モードへ切り替わります。(Wings3D1.4?以降)
作成モードは、立方体や円柱などを新しく配置する時に使います。
面選択モードでは面、頂点モードでは頂点しか選択できません。
そして、選択領域(赤い部分)は加工や処理などが済んだり、
モードを切替えても永続するという特徴をもっています。
これらアイコンは、ツールバーという場所にあります。
オブジェクトモード
頂点選択モードでは、エフェクト系のコマンドが多い
|
頂点、面、辺などの選択/解除
|
- 左クリック:領域選択
- 既存の選択領域に対し左クリック:選択解除
- 左ボタン&ドラッグ:ボックスが出現し、広範囲選択。
- ↑ドラッグしたまま、CTRLキー押して、CTRLキー+左ボタンを同時に離す:広範囲選択解除。(DeSelect)
- スペース:選択領域をリセット(全て選択解除)。
- cmd+A : 全選択
|
モデルの構成要素を 左クリックしていくだけで、どんどん選択領域へ追加可能です。
特定の条件にあてはまる頂点や面を一括指定したい場合は、メニューバーの Selectメニュー にあるコマンドを使います。
マウスドラッグによるDeSelectは、既存の選択範囲から、広範囲の領域を選択解除する方法です。ちょっと難しい
また、アイコンバーの何もない部分をクリックしても、選択解除になります。
改めて別の変形作業をしたい時は、不要な部分が選択されたままにならないよう、選択領域を一旦リセット(スペースキー押下)する習慣をつけると、余計な頂点まで移動させてしまう等の思わぬミスを防げます。
|
条件付き選択解除
Wings3Dv1.4?以降では、Spaceキー押下による選択解除後には、必ずマルチセレクションモードになる仕様となっています。これは頂点/辺/面のいずれかを選択できるモードです。この仕様は続けてモデリングを行う場合は非常に便利です。しかし全体選択モードにおいては不便を感じることがありました。
例えばあるオブジェクト同士の位置を調節していて、続けて別のオブジェクト単体を選択して動かしたい場合にマルチセレクションモードになると、いちいち全体選択モードに戻さないといけません。
また、古いバージョンのWings3Dを使い慣れている方には、この仕様変更がいやだと感じている人もいるようです。
参考:フォーラムの
I don't like the new UI, what do I do?トピックにて、この設定を有効にする等して元の使い方に近づける方法が提示されています。
Spaceキー押下後の状態は「Conditional Deselection(条件付き選択解除)」を有効にすることである程度使い勝手を変えられます。
これはメニューより、Edit>Preferences...で現れる環境設定ウインドウ内のGeneral(一般)タブ内にあります。
これを有効にすると、ユーザーはSpaceキーによる選択解除時における選択モードの状態を選ぶことができます。
スペースキーを1回押しても選択モードはそのまま継続します。(古いWings3Dの仕様)
スペースキーを2回連続で押す事で、マルチセレクションモードにもできます。
カメラモード
初期状態の情報行の内容から、「M:Start camera(カメラモード)」について説明します:
L : Select M:Start camera R: Show menu
カメラのツボ:
- ズームイン/アウト
- 原点周回カメラ(Tumble)
- 表示領域外を見る方法(Pan)
- 視点を遠ざけたり近づけたりする方法(Dolly)
- 特定オブジェクト周回カメラ(Aim/Frame)
これらを覚えれば、モデルを手に取るように眺めることができるようになります。
まずカメラ(視点)操作方法を確認しましょう
まず環境設定ダイアログ開いてください。メニューバーから
Edit>>Preference 、または
アイコンバーの環境設定アイコンをクリックで開きます。次に、ダイアログのCameraタブを選択すると現在のカメラ操作設定を確認できます。
初めての人は、Wings3Dの操作方法(デフォルト)のままが良いでしょうこの操作方法は、マウスの中ボタン(ホイール)を軸とした、片手だけで操作可能という特徴をもちます。
他の3Dソフトウェア経験者は、使い慣れた操作方法にも変更可能です。現時点では Wings3d,Mirai,Nendo,Maya,3dsMax,MotionBuilder,Blender,SketchUpに対応しています。
Wings3dで対応しているカメラ操作の比較表。非常にややこしかったので、各操作モードをわかりやすく表にしてみました。
もし他の3Dソフトでも通用する操作法で学びたければ「3ボタン」「Maya」の設定。「Maya」方式はBlender等でも対応していたりします。また「altキー+マウスボタン」という操作に統一性があります。
※画面スクロールが遅過ぎると感じる人は、マウスドラッグの移動量を上げてみるとよいです。環境設定のカメラ操作の設定から、パンスピードを50〜80に変更すると快適です。
2ボタン(Nendo) | 3ボタン(デフォルト) | 3ボタン(Maya) |
「MouseButton」 を "One" に、
「CameraMode」 を "Nendo" に指定する。
設定では1ボタンですが、2ボタンマウスでも動きます。
Option(Windowsでは alt)キー+クリックで、カメラ視点変更モードになります。(その後で、旋回/ズーム/パンが可能になる)
このモードから抜けるとき、左クリックで視点確定、右クリックで元の視点に戻ります。 |
「MouseButton」 を "three" に、
「CameraMode」 を "Wings" に指定する。
マウスのホイールボタン(=マウスの中ボタン:MMB)をクリックすることでマウス視点変更モードになります。(その後で、旋回/ズーム/パンが可能になる)
このモードから抜けるとき、左クリックで視点確定、右クリックで元の視点に戻ります。 |
「MouseButton」 を "three" に、
「CameraMode」 を "Maya" に指定する。
alt+マウスボタンを押すだけで、すぐにカメラ視点をかえられます。
Wingsのカメラ操作との違いは、キーボードとマウス両方使う必要があることと、「視点確定/元の視点に戻す」の機能が無いということです。
|
1.原点周回カメラ視点(Tumble)
これで、Geometryウインドウ上で
マウスの指定されたボタンを押すとカメラモードです。
あとは、キーを離してマウスを動かすだけで、原点方向を向いたカメラ視点を自由に変更できます。
2ボタン(Nendo) | 3ボタン(Wings) | 3ボタン(Maya) |
Option(alt) + 左ボタン | マウスの中ボタンクリック。 あとはただマウスを動かすだけ。 | alt+マウスの左ボタンドラッグ |
このモードを完了するには、どちらもマウスの左クリックをしてください。
なにか回転中に他のアングルで見たい場合に、カメラモードに入ってから視点を変えて完了することで、元の処理に戻ることもできます。
(2ボタンマウスの場合はこれらをQキーで変更させる事が出来ます)
2. 表示領域外を見る方法(Track)
(表示領域を上下左右に移動させる操作)
画面外の場所を表示する場合に使います。2つの方法があります。
1.キーボードの矢印キーを押しつづける (移動量は少ない)
2.マウスボタン&ドラッグする
2ボタン(Nendo) | 3ボタン(Wings) | 3ボタン(Maya) |
Alt+クリックでカメラモードに入って
「Q」を押してからマウスを動かす
| マウスの中ボタンをドラッグ |
alt+マウスの中ボタンをドラッグ |
いま見えているカメラ視点のまま、表示領域を上下左右へ並行移動(トラック)させることができます。(キー押下あたりの移動量をふやすには、初期設定 Prefercence のCamera タブ項目 で設定できます。ArrowKey Pan の設定値を95くらいにしとけばOK),通常のPanの設定値を変更(87程度)した場合は移動量が変化します(※これはAutoUVのドリー操作にも反映されます)
3.ズームインアウト(Dolly)
2ボタン(Nendo) | 3ボタン(Wings) | 3ボタン(Maya) |
Alt+クリックでカメラモードに入って 右ボタンドラッグ。
| マウスのホイールをまわす |
alt+マウスの右ボタンをドラッグ。 またはマウスのホイールをまわす |
視点を対象に近づけたり遠ざけたりします(ドリー)
4.カメラの注視点を特定のモデルにする方法(Aim)
上の画像は、緑円錐から赤い球へ視点変更するというものです。
1コマ目は一番手前に緑色の円錐が見えています。
2コマ目で、遠くの赤い球の面(面65:黄色部分)を選択。
3コマ目はメニューからコマンドを実行すると、選択部分が
アップになるような場所に視点が移動します。
それ以降はこのオブジェクトを中心にカメラが周回するようになります。
(特定のオブジェクトの回りを周回するカメラの設定と操作)
上の2つの方法だけでは、まだWings3Dを使いこなすのに不便です。たとえば、原点から離れた所にあるオブジェクトを間近で見たい場合です。
そこで今度は、自分が指定したモデルの回りをカメラが常に向くように設定してみましょう。
まず、
眺めたいモデルの頂点でも面でもよいので、何か選択。
次に、
メニューから
- View>Aim(ズーム比率そのまま)
- View>Hilight Aim
- View>Frame(Geometryウインドウ一杯に表示)
のいずれかを選んで下さい、選択領域の含まれたモデルが画面中央になるように視点が切り替わります。これで、そのオブジェクトを周回するカメラ視点になります
原点視点に戻す場合は、メニューから View>Reset を選んで下さい。
これで格段に操作性が向上します。
その他、View>Frame Disregard Mirrorにチェックを入れると、View>Frame時に、ミラーオブジェクトを画面に収めないようになります
4.コマンド実行中にカメラモード
※Wings3dでは移動/変形コマンドの変形実行を中断して一時的にカメラモードに移行する事も出来ます。
マウスの
M(ホイールボタン)を押すことで、カメラモードに入ります。
またマウスの
R(マウス右ボタン)を押せば視点を変更せず、中断する直前の編集状態へ戻れます
(もちろんコマンドの変形は実行中なのでそのまま続けられます)。
例えば、オブジェクトを移動している最中に、画面外にオブジェクトが出て行ったり、別のオブジェクトの陰に隠れて見えなくなってしまった。 視点をもう少し広げておけば良かった。
このような場面に役立ちます(移動コマンドをやり直す必要なしで!)。
コマンド実行途中でカメラモードに入ると、情報行には次のように表示されます
L : Accept M:Drag to Pan R:cancel Restore/view Move Mouse to tumble
- L:変更視点を適用して、カメラモードを完了する(中断直前の編集画面へ復帰する)
- M:中ボタン(ホイールボタン)を押しながらドラッグすると上下左右にスクロール
- R:視点変更を適用せずに復帰、キャンセル。 (中断直前の編集画面へ復帰する)。
- Move Mouse 〜 : マウスを動かすと視点が回転します
情報行には表示されていませんが、このカメラモード中で可能な事。
- [ホイール回転]ズームイン/ズームアウト
- [A] 選択領域を中心に表示
- [Shift+A] フレームイン
- [X],[Y],[Z] それぞれ(x,y,z)軸からの垂直視点になる。
- [W] ワイヤフレームon/off
キーを押しても変化がない場合は、マウスをちょっと動かすと反映されます。
もし視点を変更したくなければ、R(マウスの右ボタン)を押して復帰することもできます。
中断時の作業パラメータ(移動量など)は保持されたままなので、カメラモードのせいで最初からコマンドをやり直す必要はありません。
その他のキー操作。
|
- 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 でカメラをキーに登録できる。
|
コンテキストメニュー
コンテキストメニュー及び、メニュー内の変形コマンド一覧。
初期状態の情報行の内容から、「R:Show menu(コンテキストメニュー)」について説明します:
L : Select M:Start camera R: Show menu
[
Geometry window Commands |
AutoUV-window Commands]v1.0.2
Geometory windowがアクティブな時に マウスの右クリック(またはCTRL+クリック)で出すことができるメニュー。Wings3Dのモデリング作業はほとんどこれを通して行ないます。
| メニュー項目にリストされるコマンドは、下の表の通り、今現在選ばれている選択モード(頂点、面、辺、全体) によって変化するので、コマンドが見つからない場合は、まず選択モードを変更してみるとよいでしょう。赤文字はアドバンスメニュー有効時のコマンドです。
|
【重要】頂点選択モードの回転や拡大縮小は複数のオブジェクトの位置関係を保ったまま回転/拡大縮小することができます。他のモードでの回転は個別に回転してしまいます。またこの仕様はUV編集においても共通しています。
この表では省略しましたが、両端にピリオドがある「
.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
(削除)
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(削除)
Collapse(削除-崩壊)
Hardness(スムーズ効果無効)
Circilarise (一周する辺を円にする)
LoopCut(選択辺で繋がる領域を切断)
Vertex Color(頂点色:辺単位)
Set Constraint(キー移動量を設定)
Turn (辺の向きを反転)
|
Move
Rotate
Scale uniform
Scale Axis
Scale Radical
Absolute commands(絶対座標で)
*move(移動、整列、配置)
*snap(選択objに寄せる)
*scale(拡大縮小,任意サイズ変更)
Extrude(押出し)
Extract Region(面を剥がす)
Shell Extrude(造殻型押し出し)
Sweep (旋回)
Flatten(平均化)
Inset (中央に寄せて分割)
Intrude(立体に穴を開けくりぬく)
Bevel (中央を凸ませる)
Bridge(2つの面を連結)
Bump (凹凸を作る)
Lift (軸/頂点を回転軸に回転)
Put on (対象面に乗せる)
Mirror (鏡像)
Dissolve (削除)
Collapse(削除-崩壊)
Smooth S (丸める)
Tesselete(ポリゴン分割コマンド群)
Hide(隠す)
Hole(面単位の穴作成)
Material(登録マテリアルの適用)
Vertex color(頂点色:面単位)
Set Constraint(キー移動量を設定)
UV Mapping(テクスチャ切出し)
|
Move
Rotate
Scale uniform
Scale Axis
Scale Radical
(絶対座標で)
*move(移動、整列、配置)
*snap(選択objに寄せる)
*scale(拡大縮小)
Flip(上下左右反転)
Invert (裏返し)
Tighten(効果強調)
Smooth (丸める)
Doo Sabin Subdivision
(Doo-Sabin細分表面化)
Combine (合体)
Sepatate(合体解除)
Weld (接合)
Cleanup(矛盾解決)
Auto Smooth
Duplicate (複製)
Delete (削除)
Rename...(名前変更)
Show All(隠した面を表示)
Vertex Attribute(頂点色コマンド群)
Object To Area Light
Vetex Color(頂点色;全体)
UV Mapping(テクスチャ切出し)
|
Tetrahedron (正4面体)
Octahedoron (正8面体)
Octotoad (斜方8面体)
Dodecahedron(正12面体)
Icosahedron(正20面体)
Cube (立方体)
Cylinder (円柱)
Cone (円錐)
Sphere (球)
Torus (トーラス=ドーナツ型 )
Grid (グリッド 10x10碁盤目板)
Light(光源作成)
Material...(マテリアルの作成)
Image...(埋め込み画像作成)
BoundingBox...(バウンディングボックス)
Image Plane...(下絵画像読込み)
Text(欧文Fontで3D文字作成)
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 (捻りドーナツ)
|
法線は様々なヒントを教えてくれる
メニューからView>Show>Show Normals を選ぶと、モデルの選択部分から青い毛のようなものが生えて表示されます。
これは Normal (法線)といって、 面や点に対して
直角で、長さが1のベクトルを表します。
従ってMove の Normal は、このベクトルの方向に従ってオブジェクトを移動させようと働きかけます。
編集時において法線は、任意の移動・回転方向を指定したり、ライティングや空間を把握するヒントとしても役立ちます。
Set Constraint
コンストレイントとは拘束,束縛,固定を意味しますが、他の3Dソフトのアニメーションのコンストレイントや3D-CADの拘束条件とは別物です。
Wings3dのコンストレイントとは
Set Constraintコマンドを使って ジオメトリ内で測った長さをaltキーに記憶しておき、
後で、その長さを呼び出せる機能です
環境設定>コンストレイント タブの項目に、その情報が記憶されます。
コンストレイントを使う場合は、altキーと組み合わせます。たとえばマウスドラッグ移動時にaltキーを押しながらすると、コンストレイントで記憶した長さの分だけ、オブジェクトを移動することができます。
例:
Edge|Set Constraint>Length で、選択した辺の長さが 2 の場合、Constraint を実行すると、Preference の Constraints タブのalt押下時の移動パラメータが 2.0に変化します。
この場合、任意のオブジェクトを、Body|Move > X してオブジェクトを移動させる際にshift+tab でConstraintモードに切り替ると、 alt押下+マウス移動するとオブジェクトの位置は、2.0刻 みで移動します。 座標値は 2.0, 4.0 ,6.0 ... と飛び飛びに変化するでしょう。
何の役に立つの?
移動量で位置をスナップさせたい。観覧車のように一定の角度の位置に乗り物があるようなオブジェクトを作るなど。
コンストレイントの種類
コンストレイント可能な寸法は、距離,拡大率,角度の3種類あります。
距離のコンストレイントのみ特殊で、さらに通常タイプとaltanativeタイプの2種類が存在します。
通常タイプは変化量が1/10づつですが、altanativeは変化量がそれぞれ逆数になっています。
どちらのタイプで記憶させるかは、環境設定のSaveConstraint to ... の項目で選ぶことができます。
どちらのタイプを呼び出すかは、その下のUse Alternate constraint をチェックすると設定出来ます。
Use Alternate constraintにチェックを入れると、角度や拡大率の補正率や補正角度にも逆数が適用されます。
※逆数(reciprocal)とは、ふたつのオブジェクトの比率で、1/Nとなる関係の値。例えば箱AとB大きさの比が A:B=2:1だった時、AはBの2/1=2倍, BはAの1/2=0.5倍(逆数)で表せる。
参考>
Alternate-Constraints
距離のコンストレイント
なお距離のコンストレイントの単位はデフォルトでは以下のように決められています。
0または空欄にすると、デフォルト値に戻ります。
Distance Constraints
Alt 10.0(デフォルト)= Set Constraint コマンドで 任意の長さを記憶可能
Shift 1.0 刻み
Ctrl 0.1 刻み
Ctrl+Shift 0.01 刻み
Ctrl+Alt 0.001 刻み
Shift+Alt 0.25 刻み
Ctrl+Shift+Alt 0.025 刻み
Alternative Constraints
Alt 1/64 =0.015625(デフォルト) = Set Constraint コマンドで 任意の長さを記憶可能
Shift 1/4 =0.25 刻み
Ctrl 1/8 = 0.125 刻み
Ctrl+Shift 1/32=0.03125 刻み
Ctrl+Alt 5/8=0.625 刻み
Shift+Alt 1/16=0.0625 刻み
Ctrl+Shift+Alt 3/64=0.016875 刻み
各コマンド詳細
コマンドを選択する時には、その説明が情報行(Wings3dのウインドウの一番下の部分)に表示されます。
習得方法は自由です。必要に応じて覚えると良いでしょう。別に覚えなくてもいいコマンドもあります。
Wings3dのコマンドの中から、覚えやすいと思われるものを、難易度1の一番左上から順に並べてみました。
▼コマンドの難易度(←クリックで詳細が開きます)
(※注意:この表は個人的な分類です。またこの表のコマンドはほんの一部で、載ってないコマンドもあります。)
難易度 | 1 易しい | 2 | 3 | 4 | 5 | 6 難しい | 7 使いたい人向け |
コマンド
|
複製,削除,取り消し
基本的なコマンド操作
Disolve
Collapse
Edit>Undo
Edit>Redo
様々なオブジェクトを出す
(数値で特徴を指定)
Duplicate
Move Normal
Move X/Y/Z
Rotate X/Y/Z
Scale Uniform
Scale Axis X/Y/Z
Scale Radial X/Y/Z
数値入力による編集
繰り返しコマンド
Edit>Repeat|Args
Edit>Repeat|Drag
|
面の加工方法
これらはペアで
覚えると効率良い
Extrude
Extract
Shell Extrude
Inset
Bevel
Bridge
Weld
Bump
Smooth
Doo-Sabin Subdivision
同平面を選択
Select Similar Normal
|
辺と頂点の加工方法
Cut(辺の分割)
Connect(頂点の接続)
Tool>Connect Mode
Flatten(頂点,辺)
Deform|Crumble(頂点)
Slide(辺)
Loop Cut(辺)
Circlize(辺)
コマンドと並行して
選択方法も覚えると便利
Select Edge ring
Select Edge loop
ショートカットも
押さえておこう
|
データにアクセス
Outliner
Geometry Graph
特定のオブジェクトを隠す
ロックする etc...
マテリアル編集
様々な光源
レンダリング
UV Mapping
UVMapping
Chart切分け
UV展開
UV編集
エッジのベイク
テクスの生成
テクスチャ読込
下絵の読込
外部/内部テクス
|
便利な機能
ミラーモード
Tweakモード
マグネットモード
ハードエッジ
Secondary Selection
(数段階選択)のコマンド
Put On
Intersect(辺)
Lift
右クリックでコマンド
任意の軸で変形を行う
Move/Rotate/Scale
その他
任意の軸方向で加工
Extrude 等
応用・復習も兼ねる。
|
複雑なコマンド
Sweep
Shift
Deform 色々
Bend
Bend(Clamp)
難解なコマンド
Rotate 等
(任意の軸と点で回転)
これまでの応用
今までのコマンド
の様々なバリエーション
(任意軸や点で...)
|
使いたい人向け
Default/Standard Axis
Set Constraint
Constraintの逆数
マグネットマスク
バウンディングボックス
領域のグループ
領域の演算
任意軸でTweak
難解な物|使いたい人向け
Bend(任意の角度で)
Rotate to Target
Deform|Shear|軸と点で剪断
|
▼コマンド実行からみた難易度(←クリックで詳細が開きます)
Rotate,Scale コマンドのバリエーションを、実行ステップの側面から分類
通常は 1 か 2 の操作フローまで覚えておけば問題ありません。
コマンドのバリエーションについて
1 基本 | 2 応用 | 3 | 4 | 5 難しい |
【通常の回転を実行】
全てLMBで選択
コマンド選択(LMB)
↓
X/Y/Z軸の選択(LMB)
|
【軸で回転(マグネット)】
途中でRMBで切替える
コマンド選択(LMB)
↓
X/Y/Z軸の選択(RMB)
軸は設定済みとなります
応用でRMBの代わりに
Alt+Clickを使うと
マグネットモードに
|
【任意の軸で回転】
最初からRMBで選択する
コマンド選択(RMB)
↓
任意軸の選択(LMB)
任意の軸も自分で
選択する必要がある。
任意軸をAlt+Clickで選択
するとマグネットモードに
|
【任意の点と軸で回転】
最初からMMBで選択する
コマンド選択(MMB)
↓
任意軸の選択(LMB)
↓
点の選択(LMB)
自由度が高い代わりに
すべて自分で選択する。
手間もかかる。
|
【任意の点と軸で回転、さらにマグネット】
最初からMMBで選択する
コマンド選択(MMB)
↓
任意軸の選択(LMB)
↓
点の選択(LMB)
↓
マグネット(alt+Click)
↓
マグネット終端を設定
自由度が高い代わりに
すべて自分で選択する。
手間もかかる。
マグネット
|
コマンド操作手順の見極め:(マウス設定を、3ボタン&Wingsの場合)
「.コマンド名.」で表示されるコマンドにはバリエーションが存在します。(詳細は
2ndary selectionのを参照下さい)。
これはLMB(マウス左ボタン;簡単)、RMB(マウス右ボタン;応用)、MMB(マウス中ボタン;発展)の順に
コマンドに必要な手間が増えて難しい = 自由度が高くなる)なります。
これは、迷った時にどれを使えばいいのか判断する目安になります
はじめは move , rotate , scale の順で、LMBオンリーで実行。
他のRMB,MMBボタンは慣れてから挑戦するがいいかもしれません。
コマンド実行ステップの途中でRMBを押すと、途中でバリエーションを切替えることができます。
削除
Wings3dでは、2種類の削除方法があります。
- Dissolve(分解)コマンド または Delキー : いわゆる選択領域の削除。(要素は削除され、完全に消滅する)
- Collapse(崩壊)コマンド : 選択領域の崩壊 (要素が削除された場所に、周囲の辺や頂点が崩れ込みます。下図参照。 )
※通常のDissolve、Collapseコマンドの削除は編集の邪魔になる孤立点が残る場合があります(例:メッシュの辺を削除したとき)。
ただし、これらコマンドを右クリックボタン(RMB)で選んだ場合は、削除時に発生した孤立点も自動的に消えます。
追記(2014): Dissolve,Collapseをうまく使えば、このように面を分割する事ができます。
これは、Insetコマンドで中央寄せした部分をわざとCollapseで崩壊させる事で中心を結ぶテクニックです。
選択中の複数の面に対してCrossTrasを行った後、全ての面にIntrudeコマンドを適用すると、鉄塔のような構造物をすばやく作れます。
InsetとCollapseの連係は四角形に限らず円柱の上面中央に頂点を収束させたい場合にも使えます。
上のテクニックの応用で、少し手数が多いですが面を垂直水平に2分割することもできます。
辺に中点を作った場合Insetはそこから線を生み出します。またホットキー[I]は選択中の要素と類似したものを全て選択してくれるので便利です。
Wings3DのManifold-labプラグインにワンコマンドで同じ面分割をする機能が含まれています。
参考:
Face | Tesseleteコマンド
画像の読み込み
Shape は、新規立体作成モードで、辺も頂点も面も全体も何も選択してない時のモードです。
※読込んだ画像を三面図やビルボード用途として使いたいなら、Shape|Image Plane...を使いましょう。
UV設定する手間が省けます。
コマンド | 性質 |
Shape|Image... | Wings3d内部で画像を生成。アウトライナーに内部テクスチャ項目追加。 種類はGrid,Checkerboard,vbars,hbars,whiteがあります。 |
Shape|Image Plane... | アウトライナーに外部テクスチャ項目追加。 ジオメトリ内に板ポリゴンに画像が貼られたオブジェクトが出現。 |
File|Import Image... | アウトライナーに外部テクスチャ項目追加。ポリゴンに貼る為のテクスチャを読込むならこれ。 |
Shape|Image... コマンドで自動生成される画像一覧
テクスチャをリセットするのに白ベタ画像に置換えたり、テクスチャを張る時の面の歪みを確かめたりするのに使えます。
Smoothの比較
Body|Smooth:スムーズ( Catmull )
Body|Doo Sabin Subdivision:スムーズ(Doo-Sabin)
Smoothは(おそらく)Catmull-Clarkアルゴリズムを、Doo-Sabin subdivisionはDoo-Sabinアルゴリズムを使用して
細分割曲面を生成します。
- Smoothコマンドは、その結果から Catmull-Clarkアルゴリズムを使って、元の立体を細分割して球状にするようです。
- Doo-Sabin subdivisionコマンドはは元の立体の面影を残しながら細分割します。
Wings3dにおいては、Doo-Sabin subdivisionは 設定済みのUV座標がおかしくなるという副作用があるようです(1.4.1現在)。
名前はそれぞれ考案者の人名から由来しているようです
Edwin Catmull氏、Jim Clark氏、Daniel Doo氏 Malcolm Sabin氏。
Scaleの比較
Scale Uniform : 全体比率で拡大しようとする。特定の軸に依存しません。 サブコマンド無し
Scale Axis Y : Y軸に垂直方向に拡大
Scale Radial Y : Y軸に水平な面方向に拡大
コマンドのマグネットモード(←クリックで詳細が開きます)
ここでは初めての人には難しそうな、Scaleコマンドのマグネット効果を、操作方法の側面から分析します。
情報行には、マグネットモードに移行うんぬん、と書いてありますが、どの段階でマグネットモード移行するのがベストか考えてみました。
Scale | AXIS (Magnet alt+LMB)
最初のコマンドを選ぶ段階で、alt+左クリックでマグネットモードに入る場合
マグネットモードに入ると、3つの要素(任意の軸方向、マグネット効果の中心、終端)を
決めないといけません。
それに思い通りのベクトルを指定するのはコツがいるので、何をやっているか分からず
ここでつまづいてしまう可能性があります。
Scale | AXIS (LMB) > X/Y/Z (Magnet alt+LMB)
最初は普通に左クリックでコマンドを選び、軸選択の段階で alt+左クリックで選んでマグネットモードに入る。
この状態でマグネットモードに入ると、マグネット効果の方向を決める軸が決定(XYZいずれか)済みとなるるので、
後は2つの要素( マグネット効果の中心と終端)だけ選べば良いので、わりと簡単です。
マグネットを使うなら、慣れないうちはX,Y,Z軸を決めた段階で入ると良いでしょう。
Move|Rotate|Scale系サブコマンド
多くの加工・変形処理は、
対象(頂点,辺、面,全体のいづれか)を選択 し、マウスの
右クリックメニューから、コマンドを選択実行します。
※頂点の回転,拡大縮小コマンドだけ特殊で、これは全体の位置関係を保ったまま効果が及びます
頂点や面を移動させる場合、3つの操作スタイルがあります。
- 方向を指定する:1回の移動につきMoveコマンドで移動方向を決める移動量はマウスドラッグ量に対応
- 数値入力指定 :移動途中にtabキーを押せばダイアログが出現。数値を入力して、Enterキーで確定。やめる場合はESCキー。
- 直感的な方法 : Tweak Mode に入れば、選択部分を何度でも自由に移動できます。 F1,F2,F3キーと組み合せるとXYZ軸方向へ沿った移動ができます。
X,Y,Z はその名前の通りで、XYZ軸方向へそれぞれ効果が及ぶという意味です。
また、
Moveコマンド の Normal(法線方向)移動は結構役立ちます。
便利なのはX,Y,Z,Normal、Regeon、任意の軸で移動回転拡大縮小くらいで、あとは知っておけばいいという感じです。
Move|Regionが効かない選択領域(左図)
Move|Regionは選択領域の形自体は保持したまま移動します。
このコマンドを適用する場合、選択領域を囲む辺(=輪郭)は1つに繋がっている必要があります。そのため選択領域の中央が空いてたり(図の左のパターン)、周りを囲む辺が交わっている(図の右のパターン)場合にはMove|Regionは実行できないので注意してください。(Move|Normalは実行できます)
Face>Regionコマンドの真の使い方(2014.4.12補足)
これらはFaceモードのみに存在するコマンドで移動/回転/拡大縮小カテゴリにあります。
しかし普通の選択領域に適用してもNormal系と結果が似ていて、微妙でした。
実はこのコマンドはいつもとは逆に、未選択領域の法線の輪郭を利用する事で効果を発揮します(つまり、選択領域の割合が逆になる)
オブジェクト全部を選択後に、方向を指定したい場所をわざと選択解除してから使用するのが一番役立ちます。
これにより、複数のオブジェクトを一斉に別々の方向へ移動/回転/拡大縮小する事ができます。
移動回転拡大縮小のサブコマンド詳細
Move | Rotate | ScaleAxis/Radial |
Normal
Free
X
Y
Z
---
Last axis
Default axis
---
Planar
---
Region
|
Normal
Free
X
Y
Z
---
Last axis
Default axis
---
Rotate to Target
---
Region
---
Unconstraind
|
〜X
〜Y
〜Z
---
Last axis
Default axis
|
【Normal】法線方向へ移動。選択領域の種類によっては形が変化する事もあります。
【Free】 カレントビュー(視点)に平行な仮想平面を基準に、いかなる視点でも、マウスムーブ↑↓が上下 /←→が左右移動になる。 表示される座標軸と関係なく移動。 メタセコイアの「スクリーン」に対して移動と同じ
Freeコマンドは、ジオメトリウインドウを4枚開いて、三面図で操作する時に役立ちます
【Planar】 (選択した軸に垂直な平面以外の2軸が、マウスムーブの↑↓←→移動軸に対応する)
【 Region 】 Region は選択辺で囲まれた選択領域を指します(または2面以上つながっている選択領域)。ここでは囲む辺の法線方向に移動します。
Move|Regionは選択領域の形自体は保持したまま移動します。しかし囲む辺の法線は1つなので、選択領域の中央が空いてたり、囲む法線が交わっている場合には実行できません。
|
【Normal】 法線を基準に回転。
【Free】 カレントビュー(視点)と、平行な面に垂直な視線を回転軸にして、いかなる視点でもマウスムーブ←→で正面で360°回転する。 表示される座標軸と関係なく回転。三面図で編集する時に役立ちます。メタセコイアでいう「スクリーン」に対して回転と同じ。
【Rotate to Target】 回転軸と A点, B点の3つを指定して回転。
【 Region 】 Region は選択辺で囲まれた選択領域を指します(または2面以上つながっている選択領域)。ここでは囲む辺の法線を軸に回転します。
【Unconstraind】 カレントビュー(視点)と平行な平面を基準に2軸回転、座標軸を無視して、いかなる視点でもマウスムーブの↑↓が前後回転/←→が左右回転になる これも3面図で編集する時に役立つコマンドです。 |
【Defalt Axisについて】
あなたがよく使う「軸のベクトル」を1つ登録しておき、好きな時に呼び出せます。
これはTools メニューから、Tools>Set Default Axis>Set Axis を実行して登録します。
呼び出す時は、Move,Rotate,Scale等のサブコマンドにあるdefault axisを使えばOK。
【Last Axisについて】
あなたが「任意の軸」を指定して回転や移動を行ったときに、Wings3Dは、この設定(任意の軸の情報)を記憶しています。
これは、Move,Rotate,Scale等のサブコマンドにあるlast axisを使うことで呼び出されます。
いちいち任意の軸を指定する面倒な手間を省けます。
Last Axis は、一番最後(Last)に記憶した任意の軸を呼び出します。
Last Axis に記憶されている情報はベクトル情報なので、last axis が利用できれば、コマンドの種類に関係なく使えます。
(※どちらも記憶された軸は、表示されないことに注意して下さい。Wings3D 1.3現在)
|
【Free系移動・回転コマンドについて】
下の図は、ジオメトリウインドウを4つ開いて、透視ビューとX,Y,Z方向それぞれの固定視点にて編集中の画面です。
このような編集を行う場合、固定視点のスクリーンにおける移動回転に Move Free, Rotate Free,Rotate Unconstraintコマンドが役立ちます。
また、これらコマンド使用後にショートカットのDキーを使えば、別のウインドウへ移っても即座に直前のコマンドを繰り返す事ができます。
これらコマンド以外には、TweakパレットでMoveを選択して作業する方法もあり、これはショートカットなしで同じ事が可能です。
関連情報:
Magnet move normal implementation ★トピックの途中に、Last Axisって何?という質問とその回答が含まれる。
このトピックでは、bjorng氏の Wings3Dのユーザーインターフェース方針も読む事ができる(1.x くらいまではこのままいくようです)。
要約すると
1.初心者、中級者向けに、Wings は基本的なメニューを Nendo と同じユーザインターフェースで提供するらしい。NendoのUIは傑作であるらしい。
2.パワーユーザー向けには、Advanced メニューを有効にすることができる。これは Mirai のメニューに触発されているが、クローンでは無いとの事。
概念を理解していれば、ヘルプが、常にTooltipとして表示されているので、Advanceメニューにあるコマンドを習得するのは
あまり困難ではない。
Defalt Axisの登録 をToolsメニューから設定する理由は、多くのコマンドをポップアップメニューには入れたくはないかららしい。
頂点Vertexモードの回転、拡大縮小は特殊
他のモードはオブジェクト個別に効果がかかりますが、頂点モードの回転、拡大縮小効果は全体の位置関係を保ったままです。
3Dにおいても2D(UV編集)についても同じです。このことはWings3dを使いこなす上で役立ちます。
Rotate to target(2014.4.13補足)
これもヒントが少なく難解なコマンドのうちの一つです。理解するまでに時間がかかりました。
選択位置の相関関係を把握すればなんてことはない...。
既存オブジェクトの角度を測定して、回転したいオブジェクトを的確に回転できるという機能。平行とったり角度合わせなどに利用できる。
マウスドラッグで効果調節する時のパラメータが100%になった回転位置が止め時です。
それ以外は任意の回転(Rotate:RMB)と同じなので、慣れないなら無理して使わなくても良いでしょう。
参考動画:
Rotate to Target (rotate Point to Plane).avi - YouTube(Wings3D Channel)
(2014.4.30 さらに補足)
数値を100%にするコツ、2種類のオプションの仕組みを調査。複雑すぎる...
Edge|Connect FlowConnect Corner
Connectコマンドは普通に選択要素(点や辺)同士を接続する辺を作成する機能です。ホットキーのCキーで素早く作成することができます。
亜種としてFlow Connectコマンドがあります。ConnectとFlowConnectの違いは、Connectは既存の面に張り付くように辺を追加するのに対し、FlowConnetは連続した曲面上の面であれば、それを補完するような膨らみを作って(Flowさせる)辺を追加することです。
Corner コマンドは四辺形を2つに(3辺形と5辺形に分断するように)分断する辺に対して使って下さい。対象に垂直な補助辺を追加します。
Absolute Command:Move
複数のオブジェクトを、原点を(x,y,z)=(0,0,0)とした絶対座標で任意の位置へ移動させることができます。
チェックボックスAlign で位置の整列、Flattenで面の平均化を行うこともできます。
通常は、選択した領域のみを、指定座標へ移動します。
「オブジェクト全体」をチェックすると、選択領域を含むオブジェクトを丸ごと移動したり複製したりできます。
また、複製と繰り返し回数を指定すると、一度に沢山のオブジェクトを作成できるので便利です。(応用すると階段状に並べたりできます)
慣れるまでは指定する Align の指定は1つの軸だけにすることをお勧めします。
また選択面は各オブジェクトごとに、同じ方向にある面を選んだ方が理解しやすいかもしれません。
(移動方向は選択領域全体の法線によって決まるため)
v1.5.1以降はプレビュー機能が付いたおかげで以前より結果を理解しやすくなった。
Absolute Command:Snap
Absolute Command系の中で最も使い勝手が良いコマンドです。Vertex/Edge/Face/Body全モードに存在。
選択オブジェクトを遠くの場所へピンポイントで飛ばせます。
LMBとMMBの2種類あります(下図参照)。MMBは移動起点を指定しないぶん1クリック少ない
Body>Absolute Command>Snap MMBでホットキーを登録すると吉
MMBではオブジェクトの中心が設定されます。移動先を指定するために既存オブジェクトの位置を指定する必要があります。
似たコマンドのFace>PutOnにありますが、Absolute Snapで移動したオブジェクト自体の向きは変化しません。
--- | PutOn | Absolute Snap | Absolute Move,Scale |
メリット | 自由な向き/位置に移動できる
複製が可能(ClonOn=RMB) | 向き一定、複製不可 | 複製移動が可能、Flatten効果の併用 座標指定なので、無空間へ移動可能 |
デメリット | Faceモードのみ 移動先に既存オブジェクト必須 | 全モードで使用可能 移動先に既存オブジェクト必須 | 座標値を知らないと使えない 手順が多くてダイアログも登場し、何をやってるか分かりにくい。 |
Absolute Command:Scale
3Dソフトを使っていてよくあるのが、数値入力で、オブジェクトの長さや幅を変えるといった作業。
数値の小数点を切り捨てたい時もあります。
例えば、Y方向に高さ3の直方体の柱のオブジェクトがあったとして、その高さを10に変更したい場合です。
Wings3dでは、該当オブジェクトを選択(または、変更したい面or辺を選択)した状態で、右クリックメニューからabsolute_command> scaleで、絶対座標コマンドのダイアログが出るので、X,Y,Z それぞれのサイズを入力。また、中心座標を0,0,0にすると端に伸びます。
- 引き延ばす方向を中心座標にリンクさせる事も可能
- 面1つでこのコマンドを実行した場合、wholeにチェックを入れると効果がオブジェクト全体に効果が及びます。
- 頻繁に使う場合、absolute_command > scale にホットキーを割り当てると便利です。
v1.5.1以降はプレビュー機能が付いたおかげで以前より結果を理解しやすくなった。
Face | Mirror:
選択面を基準とする鏡面に接した鏡像(コピー)を作成します。オリジナルとコピーは選択面で接合されます、回転体を作る時に役立つコマンド。
Body | CleanUp:
重複した頂点や孤立点を除去したり、幾何形状的に矛盾した辺などを修復 します。
これらの現象はDissolve等で辺を削除したり、またはconnectで辺を追加したときに発生することがあります。
V/E/F | Extrude:
Extrudeコマンドは、選択面を元に押し出します。似たものに、Extract(面を剥がす)、Shell Extrude(造殻型押し出し)コマンドがあります。
これらコマンドの効果を比較した図が次の図です。ExtrudeとShell Extudeの違いは、押し出した領域が独立したオブジェクトとして分離されるかどうかという点です。
ShellExtrudeのShellは「貝殻(から)」という意味で、たぶん下図のように外側に殻をまとうように押し出されることから由来すると思います。
しかし
中に隠れて扱いづらいので、比較図にある使い方のほうがが役立つと思います。
Face | Extract:
Extractコマンドは、選択した面を剥がします。またオブジェクトの全ての面を選択した状態で剥がすとオブジェクトの複製(dupulicate)を作るのと同じことになります。
このコマンドには、いくつかのバリエーションがあります。
--- | 結果 | オブジェクトの全ての面を選択して実行した場合 |
左クリック(LMB)Extractコマンド (Extract along std. axis) | 基準軸方向へ剥がします。 | それぞれの面が繋がった状態です。(複製と同じ) |
中クリック(MMB)Extractコマンド (Pick axis to extract each face along) | 任意の方向へ剥がします。 | 一見オブジェクトが構成されてるように見えますが、 面がバラバラなので分解できます。 |
右クリック(RMB)Extractコマンド (Pick axis to extract each region) | 任意の方向へ剥がします。 | それぞれの面が繋がった状態です。(複製と同じ) |
※複製せずにバラバラにしたい場合は 全ての辺を選択して Edge|LoopCutコマンドを使って下さい。
Face | Put on:
最初に、オブジェクトAの1つの面だけを選択した状態で Put On を選択します。
次に、くっ付けたい(乗せたい)別のオブジェクトBの面を選択し、右クリック。
すると、オブジェクトAがBの選択面同士で張り付きます(上下左右関係なく)。
Put on コマンドをマウスの右クリック(RMB)で実行した場合コマンドのバリエーションとなり、オブジェクトのクローンを選択面に乗せることになります。
これの応用として、自分自身にクローンを乗せることで回転体のようにオブジェクトを配置することもできます。
Face | Lift:
2ndary Selectionで固定する頂点または辺を選択し、右クリック、ドラッグで効果を調節。固定部分以外が上昇(旋回)する。
特に、辺を固定した場合には回転軸として利用することができるので、旋回を繰り返すことで回転体を作る事もできます。
Body | Weld :
Weld を実行するには、2つの面の寸法が全く同じでぴったり接しておく必要があります。少しでもずれているとうまく働きません。
( 下の図では、準備としてPut On コマンドを使って2つの立方体を接するように配置しておきました。)
Vertex | Bend:
くの字やUの字に折り曲げるコマンドです。
他にオブジェクトを曲げる方法として、Rotation+マグネット効果で曲げるやり方もあります
(2014.4.13補足)
Face | Bridge:
基本的に、離れている面同士を繋げる事ができます。このとき
選択する面は、必ず互いに向き合った面にして下さい。
v1.3.0ではBridgeコマンドで面同士の頂点の数が違うと接続できませんでした。
v1.4.1では改良され、
面の頂点数が違うもの同士でも自動補完で接続されるようになりました。
逆に、
同一オブジェクト上の向き合う2つの面に対しBridgeすると、
これら面同士を貫通するトンネルを開けることができます。
また、Bridgeコマンドの応用として
Body|Invertで裏返った複雑なオブジェクトと接続した場合、
オブジェクト内部に(裏返ったオブジェクトを)ブーリアン演算のように複雑な形状の窪みやトンネル、穴をあける事ができます。
裏返った立体の面はワイヤーフレームモードにして、逆方向から上面をクリックすると、選択しやすいです。
上の方法で、立方体に、正八面体の空洞を開けてみました。
それをBody|Plane Cut 後 Edge|Loop Cutした切断面は、次のようになります。
Face | Inset Outset:
Insetは新しい辺を内側に寄せて作ります。マウス中ボタンでは逆に外側へ広がるOutsetの高価になります。
左ボタンで実行した場合は面ごとに個別に効果が適用されます:
右ボタンで実行した場合は、選択領域全体の輪郭を元に効果を適用します。
Intrude コマンドなどと組み合わせて使うと便利です。
Edge | Intersect:
交差。選択した辺が伸びる方向を基準に、任意の面や頂点を含む平面と交差した地点に、接地させます。
交差させる平面それぞれのオブジェクト同士は、離れていてもかまいません。
用途としては、任意の平面に合わせて、オブジェクトを揃えたり、スナップさせる等の使い道があります。
下図の説明をわかりやすくするために、平行な辺2つを元に、また接地させたい平面をXYZ軸平面ではない任意の平面にしています。
Face | 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 を使って行います。
Face | Tesselete:
ポリゴンを分割する。または三角ポリゴンを四角いポリゴンメッシュに変換する。
ダイアログで、分割アルゴリズムを選択することもできます(v1.3)
Edge | Circularise:
一巡する辺に対してこのコマンドを適用すると、環状になります。
追記(2014):閉じてない場合は半円状に変化します、これをうまく活用すると建物のアーチ等が作れます。
実は一巡していない辺に適用したり、複数の箇所に適用することもできます。
▼アーチの例
Edge | Turn:
Edge | Hardness:
辺にハードエッジを設定します。これを解除するには、Hard属性のついた辺を選択した後、Hardness>Softを選びます
Wings3dでは、ハードエッジ属性を辺設定すると便利なことが4つほどあります。
1) スムーズシェーティング時に辺をきわ立たせる効果。メリハリをつけられる
2) スムーズコマンドの効果を無効にするので、変化させたくない部分にこれを付加しておくのもよいでしょう。
3) EPS形式での保存時に、ハードエッジ属性が付いた任意の線を太く残す選択ができます。
4) ハードエッジ属性をつけたままUVmapping→Unfoldすると自動的にハードエッジ属性の辺が、展開のための切り込み線として認識されます。
(ハードエッジは法線を変化させるのですが、Wings3dでは法線の変化はない気がする? Wings3D 1.4現在)
ハードエッジは他の3Dソフトでは主に、1)または2)の性質があります
Edge | Slide:
※Y軸方向のExtrude とSlideコマンドの落とし穴
もし、ほかの辺をまたいだ形で移動したり増やしたりすると、厚みがないせいで見間違うことがある。(V1.2)
Vertex | Deform:
Shear
シアーコマンドは、オブジェクトを剪断(ななめに)するコマンドです。
Wings3dで難解なコマンドのうちの一つです。慣れるまでノーヒントでは全く訳が分かりません。
とりあえず問題を一つづつを洗い出して、選択すべき部位の相関関係を図解することにしました。
Vertex | Shift:
追記(2014):SHIFTコマンドの存在意義は長い間謎だったのですが、3D空間上の単体のオブジェクトに適用するよりも
選択された複数のオブジェクト群に対して適用すると効果的である事が判明しました、空間上に散らばったオブジェクトを平面や中央に寄せ集めたりする事ができます。
詳しくは
Wings3D Help Dictionary (beta)のSHIFTコマンドで解説してあります
Vertex |Tighten:
追記(2014):このコマンドは選択領域の頂点をきつくしたりする他、緩くする事ができます。このコマンドを利用すると、例えば建物の一部をTightenコマンドで緩く崩壊させ
ることができるので、風化した廃墟を作る場合に助けになります。
Vertex| Flatten: (平均化)
Face | Flatten (平均化)
Vertex | Grid Snap
Grid Snap を使うとハイポリモデルから、粗めのローポリにすることができます。いわゆる画像処理のモザイクの3D版と思ってください。
頂点は活きてるので、ポリゴン数を節約するならBody|CleanUPコマンドを掛けてして重複頂点を削除してください。
Grid Snap の本来の使い道が判明?
選択領域を限定するとそこそこ役立ちます。(2014.05.04補足)
選択した頂点をスナップしてまとめる機能。例えばX軸面方向に作用させる場合は Vertex | Grid Snap> Radial X (LMB)を使います。
左クリックでコマンドを選択。Y軸とか複数次元ついては適時応用してみて下さい。
基本的に〜X/Y/Zコマンドはn軸方向に作用 〜X/Y/Z Radial系コマンドはn軸平面に作用する効果が多いです。
Face | Intrude/Hole/Hide
モデルに窓のような穴を沢山開けたい場合は工夫が必要です。
熊手のようなオブジェクトを2つ向かい合わせにして、 Weld コマンドでくっつけて穴を作る方法もあります。
もっと簡単な方法は、holeコマンドやintrudeコマンドを使うやり方です。
HoleとIntrudeコマンドの違い
どちらもオブジェクトに穴を作りますが
Intrudeコマンド は内部にも面を作る(ポリゴンの裏面を作らない)点が違います。
HideとHoleコマンドの違い
似て非なるこの2つのコマンド、Hideは穴ではなく、選択した面を一時的に隠すという機能です。Wingsのみで機能します。
HideとHoleの違いは、たとえば、オブジェクトの面の一部に、Hideと、Holeを適用した場合、
Exportで他フォーマットのファイルに書き出したときに、Hide属性がついた面は無視され(表示され)ます。
逆に、Holeコマンドを適用した部分は、書き出した後も穴として認識されます。
HideとHoleコマンドの戻し方
HideコマンドもHoleコマンドを適用した面を塞いだり、隠し状態を解除するには、「穴をあけた/隠した面」の周囲の面をどれか選択した状態で、それぞれのコマンドのRMBクリックで実行してください。
オブジェクト全体の面を選択した状態で行ってもOKです。
Set Constraint (寸法計測)
採寸した寸法を、ホットキーで呼び出したり、再利用する機能です。PhotoshopやIllustrator等にもみられる機能です。
Set Constraintコマンドで採寸した寸法は、初期設定のコンストレイントタブを見ることで、一覧を見ることができます。(altキーに関連づけられた値)
ポリゴン編集メモ
ポリゴンの性質
- ポリゴン面には表と裏があります。
- ポリゴンは頂点と辺で囲まれている必要があります。
もし、モデルを眺めていて、辺や面の表示が変だと思ったなら、
ポリゴン分割があいまいだったり、構造に矛盾が発生している可能性があります。
このような場合は頂点同士を結んだりして適切な面になるよう整形し直します。
Body>Cleanupコマンドを使うと、構造データの矛盾を修正できる場合もあります。
面を張り直す場合は、Tool>Connectで張っていったり、 Turn コマンドによって辺の向きを変える方法が役立ちます。
メッシュ制御の基本メモ
張り出しを作る。
通り抜ける辺を選択後、Cキー/Edge|Connectコマンドでその辺の中点を通るメッシュを作成できます。
メッシュ(格子)の追加と削除方法
【メッシュ削除時の注意】:通常のDissolve、Collapseコマンドの削除は孤立点が残る場合があります(例:メッシュの辺を削除したとき)。
ただし、これらコマンドを右クリックボタン(RMB)で選んだ場合は、削除時に発生した孤立点も一緒に消えます。
※この方法では自由にメッシュを作成/削除できますが、ある種の出力フォーマットでは、頂点番号の順序が正しくないとうまく書き出されないものがあり、この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 を選べば、マウスカーソルで選択した辺や頂点を
そのままドラッグして結ぶと、素早く連続して分割できます。
(このモードを抜け出すには、右クリック)
コネクトモードの解説:
Wings3D connect mode - YouTube
いくつか解説を入れてあります(動画外)。
この機能はクリックだけでオブジェクトの表面に自由に辺を刻むことができます。
しかしUIのヘルプテキスト量では説明が難しいため補足しておきます。このモードに入るとマウスカーソルに直線が線が追随するようになります。また右クリックでこのモードから終了できます。
0:00〜0:12 最初に起点となる場所をクリックして、別の場所 左クリックし続けると、そのまま接続線をのばすことができます。このとき横切った辺の交点には頂点が作成されます。
基本的にクリックした場所が辺ならそこに終端点(頂点)が作成されます。辺以外の場所をクリックしたならば、最寄りの辺に終端点が作成されます。
0:14〜0:18 クリックしてそのままボタンをはなさずにいると終端点が最寄りの辺上にスナップします。そのままドラッグすると点はその辺上を移動するので細かい位置を決めることができます。
0:23〜0:50 別の場所に線を引きたい場合は先ほど作った終端点をクリックしてください。マウスカーソルに線が追随しなくなり新しく起点を作れます。また別の線をいくつも引くことができます。
(見落としがちな機能, このモードを終了せずに済みます)
0:59〜 このモード中に テンキーの数字 1 キーを押すたびに " Loop Connect" 機能の on/off ができます。情報行の右下に状態表示されます。
Loop Connect がオンの場合、オブジェクトの表面は線を引いた方向を一周するよう辺が刻まれます。(動画ではオブジェクトの裏側の様子も見ています) この機能はBody-Plane Cutコマンドより直感的に、オブジェクトの表面に線を刻むことができるかもしれません。
自動分割する方法(ランダムで...)
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コマンド
|
立体を、辺で分離したい
立体を2つに分離したい、切断したい辺で立体を一周するように辺を選択後、 Loopcut コマンドを使うことで、2つに分離する事ができます。
トーラスを分離したい場合、必ず2つに分離するように辺を指定して下さい(1カ所だけ切るようなことはできない)。
また、特殊な例として立方体の全ての面を選択後、Loopcutコマンドを使うと、面をバラバラにもできます。
|
接した立体を面でくっつける
この逆のことをするには、Weld コマンドを使います。
|
|
|
覚えておくと便利な削除技
InsetとCollapseコマンドの連係、Dissolveコマンドによる便利な面分割法
ポリゴン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)
何度も同じ作業を繰り返すのが面倒な時に…
とりあえず他のアプリと同じ感覚で繰り返すなら SHIFT+D がおすすめ。
Editメニューより
- Edit >> Repeat : 同じコマンドを最初から実行する
- Edit >> Repeat | Args : マウスドラッグ等
- Edit >> Repeat | Drag : 前回の実行結果が適用される。
ホットキーを使えば同じ操作が、よりラクになります。
- cmd+D : [Repeatと同じ] 右クリメニューの手間を省くなら
- D : [Argsと同じ] 2ndary Selection の設定軸を生かすなら
- Shift+D : [Drag と同じ]前回と全く同じことを繰り返すなら
Drag は直前のコマンド結果がそのまま適用されるので、定型処理をする場合はとても便利です。
一方Repeat と Argsは、最終的な効果の調整は人の手によって行なう必要があります。
3種類あるのは、2ndarySelectionやマウスドラッグで効果を調整するコマンド用があるためです。
以下は様々なタイプのコマンドに対して、繰り返しコマンドを実行した時の検証です。
選択したポリゴンのコピーを作りたい
Face | Extract Region または Body | Duplicate コマンド
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コマンドを使ってマウスドラッグさせてやります。
下の図のように、集まっていた頂点をもとに戻す事ができます。
領域(Selectメニュー)と2ndaySelection
Wings3Dは基本的に、「選択した領域に対して何らかのコマンドで加工を行う」という流れが多いです。
そのため複数の領域にまとめて加工を行うことができれば作業効率がアップの決め手になります。
たとえば、オブジェクトのなかから不要な辺をすべて選択して一回で全て消す等など。
Wings3Dでは、基本的に選択領域は赤く染まります。
これとは別に、コマンド実行時に面や場所、方向を指定するために
ベクトル(緑の矢印)/点(緑の点)を選択することもあります
これは後ほど「Secondary Selectionモード」の項目で説明します。
使える選択機能
メニューより、ホットキーで呼び出して使うことが多いです。
Select>Similar は一番最後に加えた選択領域に類似した部分をすべて選択に加えます。
デフォルトでホットキー[I]に設定されているので素早く実行できてとても便利です。
Select>Similar Normal 同じ向き(法線)を持つ面を選択
Select>Similar Material 同じマテリアル(色)を持つ面を選択
Select>EdgeLoop 辺のリング/ループ選択。[L][G]
Select>by>Random ランダムな確率で選択領域を間引く。
Select>More 隣接する選択領域を1ステップ増やす[+]
Select>Less 隣接する選択領域を1ステップ減らす[-]
Select>Adjacent [V][E][F][B]でそれぞれ頂点/辺/面/全体選択モードに移行
Select>Inverse 選択領域の状態反転
また選択モードの移行で、自在に選択領域を操ることもできます。
辺選択モード[E]でリング選択[G]後、面選択モード[F]に移行するとベルト状に選択されます。
選択領域のグループ
これは選択領域を記憶しておいて、使いたいときに呼び出すことができる機能です
2つのグループ領域の重なった部分だけを取得する事も可能
Wings3D v1.5.1では選択領域グループパレットが追加されました
Select>Store/Recall Selection
Select>New Group...
グループオブジェクトの選択
Body>CombineとSeparateコマンド。これは複数のオブジェクトをグループ化したり解除したりするコマンドです。
グループ化するとBodyモードで選択するとグループ全体が選択されるようになります。
例えば、頭目鼻口から構成するオブジェクト全体をグループにしたけど、口だけ回転させたり、眉毛だけ移動させたい事があります。
そのようなグループ内の任意のオブジェクトだけを選択するには、頂点/辺/面モードのいずれかに切り替えて
任意のオブジェクトの1つの要素(頂点/辺/面)を選択後[+]キー連打で選択領域を増やしまくります。
これは、マウスドラッグすると他のオブジェクトまで選択されたりする時や、奥まった所にあるオブジェクト全体
を確実に選択できる便利な方法です。
Secondary Selection モード
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」
を選択します。
このモードに入った状態では、頂点や辺、面を左クリックして選択すると、すると青い矢印やマーカーが設定されます(これが基準エレメントです)。
その他コマンド
Default axisは、よく使う回転軸を呼び出して適用する機能です。登録方法は、Tools>Set Default Axis で行います。
Last axis には、2andary Selectionモードで一番最後に設定した 任意の軸が記憶されます。
次回から、変形コマンドで、Last axisを選ぶと、最後に記憶された軸を呼び出して変形が適用されます。
|
マグネットモード
2種類あります
・変形コマンド選択時に、altキーを押しながらで選択すると、それをマグネットモードで適用することができます(※マグネット対応コマンドのみ)。
・Tweak モードにおけるマグネットモードでは、カーソルが青いもやもやになります。(数字の「1」キーでマグネットモードのON/OFFをトグル)マグネットモードはOFFにするまで永続します。。
ここでは、前者のマグネットモードについて取り扱います。
変形コマンド実行時のマグネットモードの操作法
マグネットモードは、周りの頂点等にも追従する効果を与えます。どの範囲に影響を及ぼすかも指定できます。
マグネット範囲の調整は、任意の構成要素(頂点,辺、面など)にカーソルを乗せている時に、altキーを押しながらマウスを動かす(マウスボタンは押さない)と青いもやが大きくなったり小さくなったりします。この範囲がマグネット効果の及ぶ大きさになります。
(逆にマグネット効果の影響を与えたくない部分には、あらかじめ
マグネットマスク属性を与えることもできます。)
下の図は、Rotateコマンドのマグネットモードにおけるそれぞれのキーフロー(短縮キーの組み合わせによる進行)の例です。
Wings3Dのウインドウ一番下のToolTipsには、その時に実行できるキーの組み合わせが表示されるので、迷うことは少ないかもしれません
キーフローの途中でも無理矢理モードを変更する事が可能です。「最初は普通の回転させようとしたけど、やっぱりマグネット効果にしようっ」のようなこともできます。
マグネット効果の調整
マグネットモードでは、マグネットの範囲の終端部分を指定する必要があります。
下図のグリッドのような平面を、Y軸方向へMoveさせると変化が分かりやすいです。
左から、マグネット効果なし。マグネットのDome, Stright, Spike の効果です。
各変形コマンドでのマグネット効果(円筒:シリンダー)
様々な変形コマンドで、円筒に対して、マグネットモードの効果を試してみた
変化をわかりやすくするため、変形の適用方向はY軸を指定。
【重要】効果の末端は、必ず選択領域以外の場所を指定して下さい。そうしないと、Radius is Too shortエラーが出て失敗します。
任意の地点を中心に、回転させることもできます(Rotateコマンド)
マグネットと回転を利用した曲げ
vertex|bend, vertex|bend clamp コマンドより手数を少なく曲げられる。
マグネットマスク
選択した頂点に対して、マグネットマスク属性を付加するには、メニューの Tool>Magnet Mask を選択します。
これは選択した頂点をロックしてマグネットの影響を無視(マスキング)する属性を付けます。マグネット効果を適用したくない箇所に利用できます。
この属性が追加されると、その頂点は マスキング状態がONなら
黄緑色に、マスキング状態がOFFなら
紫色に変化します。
また、マグネットマスク属性付き頂点のグルーブは、マグネット効果に対する影響を一時的に切り替えることもできます。
サブメニューから選んでください。
- Lock :選択された通常の頂点にマグネットマスク属性を付加(ロック)
- Unlock:選択されたマスク属性付き頂点のマスク属性を解除します(アンロック)
- Select:マグネットマスク属性が付いた頂点(緑or紫)を全部選択します。(マグネットマスク全部を Unlockする際にも使えます。)
- Deselect:マグネットマスク属性が付いた頂点の選択を解除します。
- Invert:マグネットマスク属性の頂点の属性を解除し、通常の頂点をマスク属性へ反転させる。
- Switch Masking On [黄緑] ←→ Off [紫] マスキング状態の、ON/OFF切替
マグネットマスク属性のついた頂点について
マスキングがON状態であれば
黄緑色に染まります。このときは、マグネット効果の影響をうけません。
逆に、Switch Masking Offにすると、
紫色に変化します。紫色になっているときは、一時的にマスキング効果を解除している状態で、マグネット効果の影響を受けます。
ツールメニュー
Tool - Virtual Mirror
左右対称のモデルを作成する時に役立ちます。
鏡像作成:メニューバーの Tools >Virtual Mirror > Createを選択すると、選択した「面」に対して鏡像が出現。
鏡像削除:Virtual Mirror >Break で、鏡像を削除。
鏡像実体化:Virtual Mirror >Freeze で、鏡像をが実体化します(削除不可になる)。
Window - Tweak Palette
これはWings3dでメッシュをマウスで押したり引いたりして素早く編集するためのモードで、
Tweak専用のマグネット効果やRelax などのコマンドが用意されています。
ただ、使い方が独特なので人を選ぶと思います
以下はドキュメントがないので調べて判明した事です。
準備:
メニューバーの Window >Tweak Paletteを選択して出現する3つのパレットを出します。
Tweak, Magnet ,TweakAxisの3つがそれです。
有効にする:
パレットのEnable Tweak, Enable Magnet ボタンを押すとTweakモードが有効になります
マグネットは必要なときだけ有効にするといいかも。Tweakモード時は既存のコマンドも同時に使えます。
また、F1,F2,F3のホットキーはTweakAxisパレットのメニューのXYZ軸方向項目と対応しており、
現在有効になっている項目の先頭に「●」印がつきます。
無効にする:
Disable Tweakボタンをおせば機能しなくなります。
Tweakモードを使いこなすための定石
ホットキー+マウスドラッグ前提の操作体系
1.Tewakパレットは、Moveにする。TweakAxisパレットは全項目未選択にしておく。
↓
2.選択要素をマウスでドラッグすると適当な場所へ移動させることができます。Move|Freeと同じ
また、選択した要素をドラッグしながら、ファンクションキー F1,F2,F3のいずれかを
長押しすると
ホットキーを
長押ししている間は、X、Y、Z軸方向の固定移動することができます。
↓
3.そして、ちょうどいい距離を動かしたら、マウスボタンとホットキーを離すようにします。
これはRotateの場合も同じです。
【重要】ホットキーの短押しと長押しについて
マウスで任意のオブジェクトを動かしている時に
一緒にF1,F2,F3のいずれかを
短押しすると、移動方向が固定のON/OFFが維持されます。メニューの「●」印を確認すると分かります
長押しすると、キーが離された時に、移動方向がリセットされます(便利です)。
Wings3dの仕様でこういう独特なインターフェースになってます;;。
あと、Macの場合なぜかファンクションキーが効かないので、カスタマイズして別のキーに割り当てて下さい。
Tweakモードのホットキーをカスタマイズ
Tweakモードのボタンのホットキーをカスタマイズできます。カスタマイズする場合はTools>Tweak>Axis Constraintとメニューを辿って下さい。具体的なカスタマイズ方法は
こちら下の例はF1,F2,F3をX,Y,Zキーに置換えたものです
Wings3Dインストール直後、TweakモードでのXYZ移動の為の[F1],[F2],[F3]キーが機能しない問題について。
メニューからTools>Tweak>AxisConstraint>もしくはTweakモードでCTRL+右クリックで出てくるメニューでAxisConstraint
Xに[F1],Yに[F2],Zに[F3] キーを再度登録して下さい。(Wings3Dでは1つのコマンドに複数のホットキーを登録可能なため、この前にこれら3つに登録してあるホットキーを全て解除してから行えば混乱が少ないです)
Tweakモードの対応関係
任意の辺や面の方向へ移動する場合は、Move+Element Normal または Element Normal (Edge)で行う方が簡単かもしれません。
Relax コマンドは、もつれたメッシュ(左)をほぐして編集しやすくするための機能です。
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軸ガイドの中心)に整列します
Tool - Boundary Box(調査中)
BoundaryBoxを作成する方法
無選択時の右クリックメニューでBoundaryboxダイアログを設定し、寸法(dimension)と、中心(center point)の位置を入力して作成します。
Saved BoundaryBox BoundaryBoxを消去するらしい?
Scale to Saved BB > オブジェクトを、BoundayBoxの大きさに合わせて拡大縮小変形。
Scale to Saved BB Proportionally > オブジェクトを、大きさを崩さずに変形? 良く分からない。
Move to Saved BB > オブジェクトを BoundaryBox の中心点へスナップ移動
Move BB to Selection > ALL BoundaryBoxの中心点を、選択部分の位置に移動
Scale BB to Selection > ALL BoundaryBoxの大きさを、選択部分のあるオブジェクトを包む大きさへ変更。
BoundaryBoxは1個しか作成できない?
Move saved BB
Scale saved BB
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マップを作る
Wings3dでのUVマップとテクスチャの関連づけ方を解説します。
簡単に説明すると下図のように 3 Stepで関連づけられますが、それまで準備することや、知っておくべき事があります。
1.オブジェクトをUV展開する
2.読込んだテクスチャを既に作成したマテリアルに関連付ける
3.マテリアルをさっきのオブジェクトに関連づける
以下詳細を順番に説明します。
データはこのように結びついたとき、テクスチャが張り付けられます。
UVMapとこれらを関連づけていく事が目的です。
UVMap←→ 面の集合 ←→ マテリアル←→ テクスチャ
既存のUVマップを見る方法
2つの方法があります。
- まずアウトライナーのマテリアル項目上で右クリックメニューを出して Select を選択するとマテリアルに関連づけられた面が赤く選択されます。
次に、Geomeryウインドウから、Window>UV Editor window を選ぶと、UV Editor が現れマテリアルに関連づけられたUVデータの展開図が表示されます。
- 面/オブジェクト選択後に、右クリックメニューから UV Setting(左クリックで選択) を選ぶと、UV Editor が現れ選択部分/オブジェクトに対応したUVデータが表示されます。
※【重要】UVEditor 作業時の背景画像は、UVが1つのマテリアルに対応している場合関連づけられたテクスチャが表示され、UVが2つ以上のマテリアルを持つ場合デフォルトのテストパターン(BG_auv:アルファベットが書かれている模様)になります。この場合はアウトライナーの任意のテクスチャ項目をUVEditorウインドウ内にドラッグ&ドロップすると、UV Editorの作業時の背景画像を切替える事ができます。
↑この切替えは、保存したモデルを再度読込ませた時に有効になります(このときBG_auv画像がが自動的に生成されます)。それ以外の場合(造った直後)は貼った面のテクスチャが変わります。
UVマップについて
※オブジェクト1個に対応するマテリアル及びUV項目は1つオブジェクト「cube」 なら 「cube_auv」がそれ。
※【重要】1つのオブジェクトの選択面を何回かに分けてUVデータとして追加した場合でも、必ず対応するUV項目へ追加されるようにできています。他のオブジェクトのものと混じりません)
※combineコマンドで、UVデータの存在する2つのオブジェクトを1つにまとめた場合、それそれのUVデータも保持されたまま合流します。
Micheus氏によるUVマップの解説動画(英語)
UV Map - The basic - Unfolding (Part 1)
UV Map - The basic - Unfolding (Part 2)
UV Map - The basic - Multiple mapping (Part 3)
UV Map - The basic - Sphere map (Part 4)
UVMapの作成 と 面の関連づけ
オブジェクトは1回で全てSegmentに切り分け関連づけるやり方と、複数回に分けて関連づける方法があります。
何回かに分ける場合、部位の形状に応じて最適な投影方法を指定して展開する事も可能です( Multiple mapping )
その時展開したUVマップは、同じオブジェクトに所属するものであれば全てそのオブジェクトに対応するUVデータ上に追加されます。
例えば、上半分がスフィアマップで下半分がシリンダーマップとして展開する→参考動画
UV Map - The basic - Multiple mapping (Part 3)
要素を選択
1:準備として、UV展開したい面を選択しておく(モデルの一部分またはモデル全体)
.
UVMappingコマンド実行2:右クリックメニューから.UVMapping.を選択(左クリックで)。
【重要】UVMapping コマンドについて
コマンドを選択する際にマウスのどのボタンで実行するかで違いがあります。ヘルプ文字列にはそれぞれ次のように書かれています
- 左ボタン --Generate UV map or Texture: UV展開
- 中ボタン -- Re-segment of objects:オブジェクトの再セグメント化
- 右ボタン -- Forced to segment mode(delete old Segments):強制セグメンティングモード 。
これら機能は分かりやすく説明すると以下の通りです。
- 左ボタン:初めてUV展開する時に使う。もし既存のUVデータがあれば、UV Editorが開く。
- 中ボタン:UV展開をやり直す時に使う。(前回設定したシームやチャートが残っている)
- 右ボタン:UV展開をやり直す時に使う。(前回設定したシームやチャートも削除して最初からやり直す)
中クリック、右クリックどちらも、UV展開をやり直すためにセグメンティングウインドウを出します。違いはセグメンディング時に前回設定したシーム(切り込み)やチャートを生かすか、削除して全部やり直すかにあります。
セグメンティングについては次のSTEPで説明します。
.
セグメンティング作業(初回)3:
UVMapping コマンドを、マウス左ボタンで実行した場合、Auto UV Segmenting ウインドウが出現します。
セグメンティング(Segmenting)とは、 UV展開のために、面を分割したり、切り込みを入れる作業です。
セグメンティングウインドウ上部のアイコンバーでは、辺モードと面モードに切替えることができます。
- 面モードで指定する方法:切り分ける部分を面の固まり(Auv Chart:チャート)として指定する。(後でチャートごとに切り分けられます)
- 辺モードで指定する方法:切り込み線(Seam:シーム)を直接指定。Mark Edge for cut
例えば、ポリゴンを囲む辺が多く切り込みを入れるのが大変なら、面モードで素早く面のかたまりとして指定できます。また円などそのままでは展開できない場合、辺モードにして、ピンポイント切り込み線を入れる事ができます。
セグメンティング手順
セグメンティングモードでは、右クリックメニューは以下の通り
- Continue(両モード):セグメンティングを確定して、次の段階(UV展開方法)へ進む。
- Segment By(両モード):自動でセグメンディングする
- AUV Chart(面選択モードの時):選択した面を手動でセグメンティング
- Mark Edges for Cut(辺選択モードの時):選択した辺に切れ込み(シーム)を入れ、手動でセグメンティング
- Unmark Edges(辺選択モードの時):切れ込みを消す
- Select(両モード):部分を選択する
自動でやる
マウスの右クリックメニューで、「Segment By」を選択 →サブメニューから 「Projection」 または 「Feature Detection」を実行する。例えば、Feature Detectionは、自動でオブジェクトの特徴(立方体や円柱等)に応じて、最適な割り当てを行います。部分的にUVを展開する場合は、Projectionを使えば選択面の正面から投影した割り当てを行います
手動でやる
1)オブジェクトの面を複数選択 → 右クリックメニュー → 割り当てるチャートを「Auv Chart1〜9」から選択。割り当てられた面は色で塗り分けられます
※円柱の上面や底面や、同一セグメントが同じ辺を共有している場合(例:下図を参照)注意して下さい。普通に選択しただけでは、テクスチャは変な形に切り出されます。
2)そのような場合、 continueする前に辺選択モードに入り、必要に応じて切り込みを入れたい辺を選択し、右クリックメニューから「Mark Edge for Cut」 を選んでください。
切り込みを入れることで、4面体のサイコロのテクスチャを、展開図のように一枚の連続した平面として扱ったり、
空き缶のような円筒モデルの側面を長方形セグメントとしてテクスチャを切り出したりできます。
.
セグメンティングを確定
4:右クリックメニューで、Continueを選択。 .
.
UV Editorで作業6:UV Editorが起動。Auto UV ウインドウが現れ、テクスチャの展開図が表示される。
Auto UV ウインドウ内の平面オブジェクトは切り出されたセグメントです。これらを自由に配置、伸張、回転、削除したりできます。
Outlinerウインドウには、このセグメントに関連したマテリアル(例えば「cube1_auv」)とテクスチャ項目(例えば「auv_BG」)が追加されました。
関連づけの状態はこのようになっています。
UVMap←→ (面) ←→ マテリアル ←→ テストパターン画像(内部テクスチャ)
しかし、この状態ではまだ不十分です。なぜならテクスチャが、テストパターンになっているためです。
.
テクスチャの置き換え(任意)
7:
テストパターン(auv_BG)を目的に応じて置換えてください/
目的に応じて2つの方法があります。
1)外部の画像に置換える。(作ったテクスチャをUVに重ねたい)
2)辺や面のアタリをテクスチャに焼き込む(これからテクスチャを作る場合)
1)
Geometryウインドウに切替え、File>Import image でアウトライナーへ画像を追加する、または既にアウトライナー
リストにあるテクスチャ項目を、マテリアル(例えば「cube_auv」)へドラッグ&ドロップ(テクスチャタイプはDiffuseを選択)するとマテリアルへテクスチャを割り当てする事ができます。
これはUVウインドウを出したまま行う事も可能です、このときリアルタイムにテクスチャが変化します。
外部テクスチャ
2)辺をテクスチャに焼き付ける方法を説明します。
Auto UV ウインドウ上で、右クリックメニューを出し:「Create Textture」を選択。 .
テクスチャへ焼き付け(任意)8:ダイアログに従ってテクスチャを作成していきます。
.
9 :
関連づけの状態はこのようになっています。
UVMap←→ (面) ←→ マテリアル ←→ 内部テクスチャ(辺を焼き付け)
もし、内部テクスチャを書き出したい場合は、イメージ項目を右クリックメニューで開き、Make External... コマンドを選択。
すると外部テクスチャとして保存されます。あとはこれをグラフィックエディタで編集します。
外部テクスチャとの関連付け
たとえば、既にWings3Dでモデルを作成後、なにかモデルに追加や変更があって、
描き直した テクスチャ画像に合わせて、UV座標位置も調整しなければいけないことがあります。
展開図の編集は、下絵があったほうがいいので、
まず、新規テクスチャ用画像を読込む:
※Image項目を削除するには、マテリアル編集でImageとの関連を切ってからしないとできません。
次に、UVウインドウで、テクスチャ用画像を更新、UV座標位置を編集:
1. AutoUVに、新しいテクスチャ画像がオーバーラップされるので、
UV座標位置を調整する。
これで「UVMap」
と 「面」の関連づけが終わりました。
UVMap←→ (面) | マテリアル| テクスチャ
.
外部テクスチャの関連付けを行います。
面選択→マテリアルの関連づけ:右クリックメニューで「.Material.コマンドでマテリアルを選ぶ。
マテリアル→テクスチャの関連づけ:
マテリアルにイメージを設定する の部分を参照下さい。
テクスチャ画像項目を右クリックメニューでPickしておいて、同じようにマテリアル項目を右クリックメニューからDropすることで関連づけられます。
(もし、うっかりマテリアルを削除した場合、Outlinerで右クリックメニューからマテリアル新規作成する)
UVMap←→ (面) ←→ マテリアル←→ 外部テクスチャ
UV展開フローチャート
2つの作業スタイル
- 面選択モードで、UV展開:オブジェクトの連続した面部分を選択してから、UV_Mapping コマンドを実行。
人の手によって数回以上に分けてUV展開する方法(切り分けたUVデータはみな同一のUV平面に追加・展開されます)。
- 全体選択モードで、UV展開オブジェクト全体を選択して、UV_Mapping コマンドを実行。面を一気に切り分けてUV展開する方法。
UVシェルをピン留めする方法。
- 頂点選択モードにして、ピン留めする頂点を全て選択し、Select>invertで選択領域を反転させる。
その後、頂点選択モードにて、右クリックメニューから Scale>verticalすると、ピン留めしていない部分(赤で選択された領域)のみが拡大する。
【AutoUV右クリコマンド】
[
Geometry-window Commands |
AutoUV-window Commands]v1.2
Wings3DのUVセグメントと、テクスチャの割り当てを編集します。このエディタでは平面(2D)を扱います。
| メニュー項目にリストされるコマンドは、下の表の通り、今現在選ばれている選択モード(頂点、面、辺、全体) によって変化するので、 コマンドが見つからない場合は、まず選択モードを変更してみるとよいでしょう。 |
|
AutoUVエディタ特有の視点操作、変形コマンド(Wings3Dv1.2の場合)。
- Create Texture は全部にある共通コマンドです。
- AutoUVエディタのMoveコマンドは、セグメントをダイレクトに動かせます。
- UV平面の面選択と全体選択モードのRotate コマンドには、サブコマンドが存在せず、ダイレクトに回転します。
- 背景テクスチャを隠す/表示する時は、Select>Show/Hide Background Image を選択。
- 全体選択モードは、UVマップを構成する分割された領域(UV Chart)ごとを取扱います。
- Altクリック後、マウスを動かすと、上下左右に視点が動く(ドリー)
- Altクリック後、Alt/CTRL+ドラッグ またはマウスホイールを回すと、視点がズームイン/ズームアウトできます。
- SHIFTキーを押しながら移動すると、移動量がとても大きくなる。
この時の視点移動量をカスタマイズは、初期設定 Prefercence のCamera タブ項目 で設定できます。値は87くらいが良いかも。
通常のPanの設定値を変更した場合はドリー量が大きくなります。 (※この設定は、GeometryWindowでの Alt+クリック「Q」のマウスによる視点移動量にも反映されます。
座標の向きは、↑Y方向(緑)、 →X方向(赤)
|
AutoUV右クリコマンド
AutoUVエディタをアクティブにしているとき、マウスの右クリック(またはCTRL+クリック)で出すことができるメニュー。
【重要】頂点選択モードの回転のみ特殊な挙動を示します。他のモードでの回転は複数のUVシェルを選択した場合それぞれが、その場で回転してしまいます。それに対し頂点選択モード(Vertex)での回転は位置関係を保ったまま全体を回転することができます。(拡大縮小も同じ) この仕様は3Dにおいても共通しています。
赤文字はサブコマンドです。
UV頂点選択モード -- Vertex
|
UV辺選択モード -- Edge
|
UV面選択モード -- Face
|
UVチャート選択モード -- Body
|
UVマップが無い場合
|
UV平面頂点に対して
|
UV平面の辺に対して
|
UV平面の面に対して
|
UV分割領域 に対して
|
テクスチャ生成
|
Move (移動)
Scale(拡大縮小)
*Uniform(一定比率で)
*Horizontal(水平方向に)
*Vertical(垂直方向に)
Rotate (回転)
*Free(位置関係保持)
*Chart to X
*Chart to Y
Flatten (平均化)
* X(縦に揃える)
* Y(横に揃える)
Tighten(比例効果)
Unfold (UV展開)
SphereMap(球面UV展開)
CreateTexture(テクスチャ生成)
|
Move
Scale
*Uniform(一定比率で)
*Horizontal
*Vertical
Rotate
*Free(個別回転)
*Chart to X
*Chart to Y
Slide(辺にスライド)
Distribute(分布?)
*Horizontal
*Vertical
Cut(UVを切り離す)
Stich(2辺を選択して接合)
Create Texture(テクスチャ生成)
|
Move
Scale
*Uniform
*Horizontal
*Vertical
Rotate
Projected-Unfold(投影方式でUV展開)
Create Texture(テクスチャ生成)
|
Move
Scale
*Uniform
*Horizontal
*Vertical
(テクスチャ一杯に拡大)
*MAX Uniform
*MAX Horizontal
*MAX Vertical
*Normalize Sizes
Rotate(個別回転)
MoveTo(配置)
*Center
*Center X
*Center Y
*Bottom
*Top
*Left
*Right
Flip(反転)
*Vertical
*Horizontal
Tighten(比例効果)
Hide(隠す)
Delete(UVを削除)
ReMap UV
Create Texure(テクスチャ生成)
|
Create Texure(テクスチャ生成)
|
Vertex | Flatten (平均化)
頂点を整列させたりする時に便利です。
Edge | Cut (UVセグメントを切り離す)
Edge | Stich (2辺同士をくっつける)
※
UVデータの削除について: delete で一度作ったUVデータを削除するとUVEditorからは見えませんが、実は内部では(0,0)のデータとして残っています。その証拠にテストパターンの左上のピクセルが反映されるので、元々割り振られていた面がゴールド色になることが分かっています。
※UVデータはUndoが効きます。もしUV展開が失敗しても、1つ前に戻す事が可能です。
Create Texture
面の色や、UV展開図を画像に焼き込んだりするために使います。アンビエントオクルージョンや、頂点カラーをテクスチャとして作成する事ができます(ただし、現時点ではアンビエントオクルージョンとテクスチャを合成することはできません)。基本的にUVシェル部分に覆われた箇所が描画されます。
Backgroundで指定したImage項目が、内部,外部テクスチャ問わず描画対象になります。内部テクスチャは元に戻せません(Undoできません)が、外部テクスチャではアウトライナーからRefreshコマンドを使えば画像を元に戻せます。
●Create Textureコマンドで内部テクスチャに生成出来るもの
役に立つのは、Background,DrawEdge,DrawFace、他は Wood,Noiseくらいです。
- None: 何も描画しません。
- Background: 任意のImage項目 または 任意の色ベタ を選べます。
- Draw Edge:辺(とその色)をテクスチャに焼き込みます
- Draw Face:面(とその色)をテクスチャに焼き込みます
- *Edge Filter*:Draw Edgeと併用すると描画する辺が太くなります
- *Noise*:色、Level、Scaleを指定して、ノイズ状のパターンを生成できます。
- *Wood*:色、Frequency,NoiseScale、Scaleを指定して、木目状のパターンを生成できます。
- *Filter*:ぼかし効果など(MacOSXでは未対応(v1.4.1))
※Filter効果はWindows7、MacOSX10.7環境では正常に機能しました。エッジをぼかしたり、白黒反転でエッジを焼き付けたり、エンボスで描画するようです。これら効果はBackgroundに対して効果を与えるため、Backgroundに画像を指定して併用する必要があります。
※Backgroundなし、Draw Faceをしない場合、テクスチャが透明になります。
Wood と Noise 効果について、パラメータと結果の一覧を載せておきます。 (プレビュー機能が無いため)
面の色を焼き込む
面の色をアタリとしてテクスチャに焼き込むこともできます。
外部テクスチャを加工後
アンビエントオクルージョン
|
AmbientOcculsion(環境遮蔽)は、光源により発生した陰影をテクスチャに焼き込むことで、画面に深みやメリハリをもたせる方法。Wings3dでは メニューのTools>Ambient Occulusion を実行すると
ジオメトリ内のすべてのオブジェクトに対して実行されます。
陰影は白から黒へのぼんやりしたグラデーションによって表現されます。
【注意】アンビエントオクルージョンは、Wings3dの頂点カラーを利用しています。そのため、面や辺に頂点数が少ないオブジェクトには影が発生しないことがあります。(単純な立方体より、ルービックキューブのようなメッシュ立体のほうが陰影が発生しやすい)その場合はアンビエントオクルージョン用に頂点を増やすなど対策が必要です。
静止画で活用する(プレビューのみの場合)
静止画の場合、UV展開後、対応するマテリアルを編集ウインドウから、Vertex ColorをMultiplyに設定すると、ジオメトリウインドウのプレビューでも既存のテクスチャにアンビエントオクルージョンが反映されます。(※これはWings3d内での効果のようで、外部レンダラー(Kerkythea等)で試してみましたが、変化無しでした...)
左:ignore(デフォルト)、右;Multiply(アンビエントオクルージョン適用)
参考サイト:第7区画 ?3DCGソフトの備忘録? -アンビエントオクルージョン (3dsMax)-
動かすモデルで活用する(テクスチャに焼き込む場合)
もし、ゲームや動画に用いる為に、陰影を焼き込んだテクスチャ自体が欲しい場合は、この後、UV展開しUVエディタからCreateTextureコマンドを使って作成します。アンビエントオクルージョンの場合は、DrawEdgeを使わず、描画パスにDrawFaceを追加してください。(左図)
|
白〜黒の陰影のみテクスチャに書き出されるので、既存のテクスチャと陰影を合成するなら、PhotoshopやGIMPのようなグラフィックソフトで合成するとよいでしょう。(v1.4.1現在)
アンビエントオクルージョンの例(※テクスチャ未適用):
アンビエントオクルージョンの頂点カラーを焼き込む方法はWings3D v2.1.6でも変わりません。
テクスチャのタイリング
UVEdit画面で、UVセグメントを画像ファイルの大きさよりも大きくすると、タイリングされます。
この効果はテクスチャ画像全体を使用するため、大きいテクスチャサイズ(512x512ピクセル)よりも、小さなテクスチャサイズ(64x64ピクセルなど)で用いたほうがよいかもしれません。
テクスチャのタイリングはTools>SnapImageツールでも行う事ができますが、UVEdit画面でやるほうが簡単です。
2つ以上のテクスチャを貼りたい
オブジェクトつに複数のテクスチャを貼ることができます。そのためには複数のマテリアルを使わないといけません。
また、UVの重なりの状態がテクスチャの貼り付けにどのように影響するかも知る必要があります。
ここでまずマテリアルの一番単純な例から説明します。1枚のテクスチャ画像ですべて済ませるケースです。
1つのオブジェクトに、対応するUVは1つ、対応するマテリアルも1つ、そしてテクスチャも1つづつ関連づける場合。
これが次の画像です。これはUVマップが重ならずに配置されているのが分かり、
どこに絵をかけばオブジェクトのどの部位に現れるか見当がつきます。
この画像の状態は:UV---モデル(の全ての面)---マテリアル1つ(cylinder2_auv) と関連づけられています。
次に、1つのオブジェクトに複数のテクスチャが貼られている場合のUVマップをみていきます。
これは円形の断面2つと、チューブ状の側面上下が重なっています。ここで注目してほしいのは、
同一のUVを重ねている他に、別のUVとも重なっていうことです。
このようなケースは、Web上で配布されてる3Dデータ等でも見かける事があります。
以上の事を踏まえて2つ以上のマテリアルと貼られた面の状態について説明します。
普通にモデルを作成してUVを展開した場合、テクスチャを普通に貼るとこのようになります。
断面は側面より大きいので扇形の模様が表示されています。
UV---モデル(の全ての面)---マテリアル1つ目(cylinder2_auv)---テクスチャ(cylinder2_auv.bmp)
ここで、2枚目の別のテクスチャを側面に貼りたいと思います。
まず「Circle Material」という名前の新規マテリアルを作成し、側面の円状のポリゴン2つに割り当てます。
マテリアル割り当て直後はマテリアルにテクスチャが関連づけられていないので灰色のままです。
これで、UV---モデル(の特定部位の面)---マテリアル2つめ(Circle Material)が関連づけられた状態です。
次に、別に作っておいたテクスチャcircle.bmp を外部テクスチャとして読込ませます。
読込んだcircle.bmpはアウトライナーに項目として現れます。
アウトライナーのテクスチャ「Circle.bmp」項目を、マテリアル「Circle Material」項目へドラッグします。
これが、UV---モデル(の特定部位の面)---マテリアル2つめ(Circle Material)---テクスチャ(Circle.bmp)が関連づけられた状態。
今度は、側面の円状のポリゴンの一つを、 別のマテリアル「cylinder_auv」に関連付けし直したものが次の画像です。
該当部分が別のテクスチャに置き換わっていますね。
このように、複数のマテリアルを使うと1つのオブジェクトに2つ以上の画像を張り付けることができます。
部分的にテクスチャを変更可能な事で、別バージョンのモデルにしたり、キャラクターの表情を変えるといった用途に使えます。
【重なりのせいでUVが編集しずらいと思ったら...】
Wings3dのUVエディタの格子はテクスチャのタイリングを表しています。
そこで次の画像のように、重なったUVパーツを、隣の格子に収まるように配置しても上手く表示されるようになっています、
これでUV編集の邪魔になることはないでしょう。
SnapImageツール
Tools>SnapImageツールの機能は2つあります
- Camera Projection(建物や箱など二次元の写真から3D空間を作成する手法)に用いる。その際ピンポイントでテクスチャを張れる。
- テクスチャのタイリングや回転を行う。(レンガの巨大な壁や床のように少ないパターンで広い面を張る場合)
このSnapImageモードに入ると、全体選択モード以外の右クリックメニューにSnapImage関係のコマンドが追加されます。
3D制作ソフトウェアのメタセコイアの
焼きこみによるUVマップの展開法と似た機能です。
SnapImageによるCameraProjection
【注意】SnapImageモードに入る前に、必ず作業前にジオメトリ画面を2つ(オブジェクト編集用とSnapImage確認用)出しておくこと。
↑上の画像は誤ってSnapImageモード後に2つ目のウインドウを出した様子です。
両方のウインドウに画像がオーバーラップして作業がしずらいです。
またこの状態でSnapImageモードから抜けると、バグでエラーが発生します。これはWings3dを再起動すると直ります。
SnapImageツールによるCameraProjection手順
- 1.あらかじめ2つジオメトリウインドウを出す。
- 2.そのうちの1つで、Tools>SnapImage するとダイアログが出て画像選択、Snap Imageモードが開始。
- 3.右クリックメニューからFitSnapImageコマンドを使いジオメトリウインドウのサイズにぴったりになるように調整
- 4.グリッドと水平線を写真に合わせるように、カメラを動かす(うまくマッチしたら、以後視点をそのままにしておく)
- 5.建物の角やパースにオブジェクトを配置。オブジェクトの編集や移動はもうひとつのジオメトリウインドウを使って作業する
- 6.うまく面の位置が合えばベスト。写真を元に3Dを
- 7.任意の面を選択し、SnapImageコマンドを実行すると、選択面へ元絵の画像をテクスチャとして張り付けることも可能です。
両方のウインドウを見比べながら↓このように編集します(Public Domainの街路写真を元に建物をモデリング)
※視点を変えてしまったら再び合わせるのは難しいです。
SnapImageによるタイリング
SnapImageツールのもう一つの機能がこれです。対象面が既にUVマッピングしてあることが必要です。
メニューバーから、Tools>SnapImage するとダイアログが出て画像を選択、Snap Imageモードが開始します。
このモードでは、ジオメトリウインドウの背景に半透明に対象画像が表示され、
各選択モードの右クリックメニューにSnap関係の項目が追加されます。
テクスチャ繰り返しのプレビューはその背景の半透明画像として表示されます。編集はマウス移動のほか、TABで数値入力指定ができます。
テクスチャの回転は?
テクスチャの回転はジオメトリウインドウのカメラ視点の回転に対応しています
(例えば、テクスチャを張る面をY方向から見下ろしていた場合、編集画面上、 オブジェクトの面が45°回転していた場合、テクスチャの回転も45°になる。下図参照)
有用なコマンドは次の6種類。
- SnapImage:テクスチャタイリングの適用
- ScaleSnapImage>Uniform :テクスチャの拡大縮小によるタイリング
- MoveSnapImage>Free: テクスチャの開始位置をずらす
- ScaleSnapImage>Proportional>Proportional:元に戻す
- テクスチャの回転はカメラの位置に対応
- Exit Snap Mode:Snap Modeを終了
SnapImageコマンド一覧
もし、メニューにSnap Image項目がでない場合、「全体選択」以外の選択モードに変える。
- SnapImage:選択した面にテクスチャの繰り返しを適用する、ただし、UV設定されていない面には無反応。
- ScaleSnapImage:テクスチャを拡大縮小することで、繰り返しを増やす
- Horizontal:マウス左右ドラッグで変化、水平方向の繰り返しが増え、図柄が縦に細くなる
- Vertical:マウス上下ドラッグで変化、垂直方向の繰り返しが増え、図柄が横に縮む
- Free:縦横自由に設定できる。HorizontalとVertical両方の操作が可能
- Uniform:比率は固定されるので歪みにくい
- Proportional
- ...to Current X :Yサイズを現在Xの長さにあわせる。
- ...to Current Y :Xサイズを現在Yの長さにあわせる。
- Actual: 実際の画像と同じサイズにする
- MoveSnapImage:テクスチャのずれを設定できる
- Horizontal:マウス左右ドラッグで変化
- Vertical:マウス上下ドラッグで変化
- Free:縦横自由に移動、HorizontalとVertical両方の操作が可能
- Center:ビューポートの中央に配置
- CenterX: ビューポートの縦中央に配置
- CenterY: ビューポートの横中央に配置
- FitSnapImage:テクスチャパターンのサイズをジオメトリウインドウのサイズに合わせる。
- Both:ビューポートのウインドウのサイズになる
- Horizontal:ビューポートのウインドウの高さにフィットさせる
- Vertical:ビューポートのウインドウの幅にフィットさせる
- Exit Snap Mode ; Snapモードから抜ける
後で、UVEditorを見るとUV座標が変化しているのが分かります(平行四辺形になったりする)。
これはUV座標が滅茶苦茶になったわけではなく、テクスチャ繰り返しや回転に必要な変形であることに注意して下さい。
光源(Light)
光源はオブジェクトの一種なので、新たに画面上に作成するには、全体選択モードの無選択状態にしておきます。
それで、右クリックまたは CTRL+クリック で、コンテキストメニューから「Light」を選びます。
そしてサブメニューから、光源の種類を指定します。これで光源がGeomertyウインドウ内に配置されます。
光源の種類
- 配置した光源がどのように照らすのか表示する:GeometryのViewメニューからView>Scene Lights を選択。
- 照射範囲の表示:光源の照射方向は青いワイヤーフレーム部分で表示されます(下図参照)
- 光源の選択方法:GeometryまたはGeometryGraphの項目から選択。(選択時はワイヤーフレーム部分が、赤くなる)
右クリックメニューを出せば光源の設定や移動ができます。
また、Infinity,Point, Spot 光源を移動する際の、光の照射方向は、デフォルトでは原点方向を向くようになっています。
これは、Position Highlight コマンドで任意の位置へ変更可能です
|
- Infinity: 平行光源。無限遠にある光源から一定方向へ照らされる光。太陽光等。
- Point: 点光源。全方位に発光す光。光源から遠いほど影響が弱くなる。
- Spot: スポットライト。ある一定方向へ照射される光
- Ambinet: 環境光。そこに存在する、あらゆる物体を穏やかに照らす。
- Area Light: ある領域だけを照らす事ができます。 黒部分は裏側で発光しません
(Wings3Dでは通常作成の他、オブジェクトから変換可能)
|
|
|
光源の色や照らす範囲を設定するには、コマンドと、Outlineウインドウ の プロパティを使って下さい。
【光源を使う際の注意】
OpenGLの Max Number of Lights (光源の最大数)により、光源の使用は8つまでが無難です。それを越えると機能しません。
Wings3Dのメニューから Help>OpenGL Infoを選択することで、グラフィックカードの対応情報を確認できます。
光源の設定手段
光源を設定する手段は2種類あります(設定は重複するものがあります。)。
コマンドにしかない機能で重要なものには、照射方向を決定する「Position Highlight」コマンドがあります。
- CTRL+クリックメニューコマンド:マウス移動/Tabダイアログによる大味な調整が可能。リアルタイムに結果反映 (Ambient,Area光源は不可)
- Outlinerから設定できるプロパティ:ダイアログから複数項目を包括的に設定可能。詳細な設定ができます。
下の表は、コマンド/プロパティをまとめた一覧です。
Wings3D v1.3.0での仕様:
右クリックメニュー(またはCTRL+クリック)の、Light Colorコマンドは、HSV形式で色を調整することに注意。(H=色相、S=彩度 V=明度)
Position Highlight コマンドは、光源の照射する中心点を決めることができます。デフォルトでは原点(XYZガイド軸の中心)になっています。
光源が照らす範囲を表示する
Wings3Dで、配置した光源が照らす範囲を表示するには、メニューからView>Scene Lights を選択して下さい。
この表示を無効にするには、View>Scene Lights を再選択するか、他のシェーダに切り替えて下さい。
(この効果は 他のシェーダとの併用はできないようですv1.3)
左図はKerkytheaでレンダリングしたもの、右図はWings3Dの編集画面です。
シェーダー表示一覧
これらはあくまでWings3D上の表示であって、Kerkythea等での外部レンダリングには反映されません。(v1.4.1現在)
光源の設定
光源の設定をコマンドで変更する場合、Scene Lightsモードで確認すると変化が分かりやすいです。
グループ
選択領域を複数登録しておいて、好きな時に呼び出して使います。
選択した要素と、登録グループの種類が異なる(Vertex → edge)場合でも自動的に解釈されます。
現在の選択領域に対し、色々な演算を適用することで選択領域を絞り込ませることもできます。
3D/2D形式&プラグイン
プラグインの種類と、出来る事
- Import/Exporrt(他のファイル形式の出入力、主にFileメニューから)
- Command(モデルに対する加工、右クリックメニューやウインドウのメニューから実行)
- Primitive(ひな形となる立体を生成、未選択時の右クリックメニュー)
- その他(それ以外の新機能が実装されたもの。)
Wings3Dで読込んだ画像はどうなるのか?
File>Import Image | 外部テクスチャ としてOutliner へ追加される
|
Body(全体選択モード) Image Plane...
|
内部テクスチャ としてOutliner へ追加される。※
Image Planeコマンド実行時には、画像が張り付けられたビルボード状態の3Dオブジェクトとしてインポートされる。
|
UV作成後にCreate Texture
|
内部テクスチャとして生成される。Outliner へ追加される。※
|
用途別の読込み方 テクスチャ用、モデリング用、合成用の下絵など。
Tools>Snap Image | 作った3Dモデルを写真画像に合成したいときに画角やパース合わせに利用できると思います。 カメラ視点/レンズを、背景にタイリングされた画像のパースに合うように変えてみましょう。 (※この方法は、モデルの位置をむやみに動かさなくて済むので、非力なPCへの負荷もも少ないです。
|
Body(全体選択モード) Image Plane...
|
このコマンドで読込んだ画像はビルボード状のオブジェクトとして張り付けられます。 3面図や設計図などの画像を読込めば、モデリングの下絵として利用する事ができます。
|
※Outlinerに読込まれた画像の項目を、PickupしてマテリアルにDropするとテクスチャを貼れます。
一つのマテリアルにつき、拡散光(Diffuse)、光沢(Specular)、バンプマップ(Heightmap)、ノーマルマップ(Normal)を重ねて使用可能。
出入力ファイル形式
File>> Export で、別の3D,2Dのデータ形式でファイルとして書き出します。
Export Selectedは通常のExportと違って、選択部分のみ保存されます。
オプションの右のマーク?(丸く囲んだ部分)クリックできるものは、Export時に、テクスチャフォーマットを(bmp以外)に変更することもできます。
Wings3d 標準形式の〜.wings のファイル は、通常1つのファイルに マテリアル、テクスチャ画像、モデルデータが埋め込まれた形で保存されます。
テクスチャ画像やImagePlane(下絵)画像の読込みは bmp/TIFF/tga形式 に対応しています。アルファチャンネルに対応したTIFF/tga形式も読めます。
例外としてテクスチャ画像は、編集時に、埋め込み(Internal)か独立したファイル(External )か任意で選択できます。テクスチャは独立したファイルで書き出すと、外部のグラフィックエディタに読込んでテクスチャに色を塗ったり、その変化をWings3Dで確認しながら作業できます。
Kerkythea(.xml) 形式(出力)
レンダラーアプリケーションKerkytheaで読み込み可能な形式で保存します。カメラ位置はGeometryウインドウの表示が反映され保存されます。
Wings3Dのマテリアルの編集ダイアログには、KerkytheaとPovray用の設定欄があります。
レンダラーのインストールと設定方法も合わせて読むと便利です
WaveFront(.obj) 形式(出入力)
作ったデータをOBJ形式で書出せるモデラーは多いです。テクスチャ(.bmp)とマテリアル(.mtl) も同時に書き出されます。他のソフト
Blender 、
Art of Illusionでデータを読み込むことを確認。
Blender2.4.9で作成したobj形式をwings3Dで読むとオレンジ色の辺が付いてる場合があります(これはハードエッジ属性が付いている辺です、編集に問題ありません)。
LightWave(.lwo) 形式(入力)
v5.5形式の古い.lwoファイルは読めませんでした。→ Blender2.4.9 では読めるようです。
3dsMax(.3ds) 形式(入力のみ)
Wings3Dで読むと、オレンジ色の辺が付いてる場合があります(これはハードエッジ属性が付いている辺です、編集に問題ありません)。
Scalable Vector Graphics形式(.svg)(入力のみ)
SVG形式は現在入力のみ対応しています。(Inkscape0.48.1 & Wings3d 1.4.1現在)
Wings3dでは、Inkscapeで出力したSVGファイルは、Inkscape.svg, Plain.svg形式両方とも認識可能でした。ただし一部座標がずれることもあるようです。
注意:円や四角形などオブジェクトを使いたい場合、「パス>オブジェクトをパスへ」を適用して、パスに変換しておかないと、Wings3d側が読込めないことが分かっています。
ai形式の入力と同じく、読込んだパスが一部重なっていれば重なり、完全に重なっていれば中抜きされます。複雑な形は自動的にポリゴンで分割されます。すべてのパスに対してZ方向に厚みが加えられます
Wings3D側でも読込む時に SVG Import Opetions の Number of edge bisections(デフォルトは0)の値を増やせば、読込んだデータの円周(曲線)を構成する辺を補って滑らかにできます(ただし円以外の全パスの辺上の頂点も余計に増えます)。
Illustrator(.ai)形式(入力)
最新のIllustratorCSで作成していても、読込むファイルは Illustrator 5.0/5.5または8.0(テキスト)形式で保存しておきます。
Wings3D 1.0.2 では、Illustrator 8.0(テキスト)形式での読込みも対応しています。Illustrator9.0のバイナリ形式は読めません。
Wings3Dでは、線で構成される
閉じたパスオブジェクトのみ読み込めます。
読込んだ場合、オブジェクトが一部重なっていれば重なり、完全に重なっていれば型抜きされます。複雑な形は自動的にポリゴンで分割されます。すべてのオブジェクトに対してZ方向に厚みが加えられます
■Wings3DでIllustrator形式を読込む際の注意
アートワークに、閉じていないパス、グラデーション、ブレンド処理、透明、複合パスが含まれる場合はWings3d読込み時にエラーが出ます。
Illustrator上で、250mmx250mm以上の範囲にオブジェクトが分布している場合、大きすぎてwings3dのai形式の読み込みが失敗することがあります。その場合、全体の大きさを50%程度に縮小して保存したものを読込むなどして下さい。
また、円のようにベジエ曲線を含む図形をそのまま読込むとひし形になるので、事前に「アンカーポイントの追加」を使い円周上にアンカーポイントを増やすと良いでしょう。
これは逆にWings3D側で対応する事もできます。読込時に AI Import Opetions の Number of edge bisections(デフォルトは0)の値を増やせば、読込んだデータの円周(曲線)を構成する辺を増やせます(ただし円以外の全オブジェクトの辺上の頂点も余計に増えます)。
※この方法でWings3Dで読込んだ立体の頂点の順序は、#0,#1,#2,....という順序で割り振られています。
Cartoon-edges形式(.eps)(出力)
eps形式で保存します。 2Dベクター形式なので拡大縮小にも耐えます。モノクロ印刷物へ3Dワイヤーフレームモデルを使いたい場合に使えます。
Illustrator や Inkscape(EPS→PDFに変換で可能) 、MacOSXのPixelCat,プレビュー等のアプリケーションで読む事ができます。(表示時にPDF形式に変換され表示されるものもあります。)
注意事項:
あまりにも小さすぎるモデルではレンダリングが届かないことがあります。(例:グリッド格子1つよりも小さいもの)
eps形式出力されるデータはモノクロの線のみです。線の太さを変えられますが、面の色は反映されません。すべての辺はバラバラで1本につながっていません。
Hard属性の辺を強調させる Show edges|Hard 適用すると自分が指定した線だけを太くできるので、表現の幅が広がります。
Geometryウインドウよりはみ出た部分は、出力されません
Edge width のALLのチェックが付いている場合は、全ての辺が同じ太さになります。
各オプションを指定した場合の描画結果:
(次の結果はWings3Dでepsファイル出力した結果を Illustrator CS2 で表示したものです。)
(クリックで大きな画像が見れます)
Crease Angleパラメータの検証結果:
これは面の角度を元に、どのエッジを描画するかを決めるパラメータです。
(クリックで大きな画像が見れます)
色を塗るには?
このCartoon edgeでレンダリングされたEPSデータはモノクロで線はバラバラです。
そのため色を塗るためには、輪郭を連結したりPhotoshopへ画像として読込んだりとても大変でした。
実はInkscapeや、Illustratorを使えばデータを劣化させず色を塗ることができます。
Inkscape(0.48.1現在)ではeps形式を直接読込めません。
MacOSX ならOS付属のプレビュー(Preview.app)でpdfに変換してそれを読込ませてください。
Windows環境の人は、GSView(GUIアプリケーション)とGhostscript(変換エンジン)を使ってEPS→PDF変換出来るようです。
Inkscapeで(pdfを)読込んだ場合、線はバラバラですが、バケツツール(Buket Tool)を使えば、輪郭を連結せずに色を塗る事ができます。
IllustratorCS2以降の場合は、ライブペイント機能を使えば、輪郭を連結せずに色を塗る事ができます。
※Inkscapeのバケツツールと、Illustratorのライブペイントは、ほぼ似たような機能です。
オブジェクトの中の構造も描画したい場合は、マテリアルの透明度を設定して半透明にして下さい。(2014.4.20補足)
Heightmap Surface plugin
Micheus氏による、高さマップ画像から3Dの地形を自動生成するプラグインです。
カラースペクトル画像(赤:高い場所←黄〜緑〜青〜紫→赤紫:低い場所)と
モノクログラデーション画像(白:高い場所←→黒:低い場所)に対応。
右クリックメニューから、Micheus add on...>Heightmap Surfaceを選択。読込む画像を指定します。
フォルダや画像名には日本語は使えません。
読込む画像のサイズは、縦横それぞれ2の累乗pixel(例:256x128, 128x128 等)
ただサイズから外れたり、最大384x384ピクセルを越えるとリサイズされるようです。
データの目安として、64x64で3974ポリゴン、384x384ピクセルで146694ポリゴンの規模になるそうです。
プラグインのファイルはトピック中の、作者さんのWindows Skydrive のアーカイブから入手。
Heightmap Surface - plugin released!
Secondlife Scuplted 形式(.bmp)(出入力)
テンプレートメッシュと importer/exporterがプラグインとして配布されているようです。
Wings3D 1.4での対応状況
Wings3dフォーラムによれば、このプラグインは作者のOmei氏が多忙により、長らくWings3dの最新版に対応していない状態でありました、そこでoort氏がそれを最新版に対応できるようコンパイルされたとの事です。Wings3d 1.4でも利用可能なプラグインはファイルは
Oortman3D - Wings3Dで入手できます。
また、Omei氏のオリジナルのソースコードは
Wings 3D Plugin Files | PK Pounceworksでも入手可能です。
Secondlife Wikiの情報
Exporter Templates Sculp Exporter(1.0.2以降)
プラグインは、FIle>Install Plug-in で、xxxx.beam を選択するとインストールできます。
■Wings3Dでスカルプテッド形式をExportする際の注意(v1.2の場合)
テンプレートメッシュの頂点や辺等を増やしたり減らしたりしない限りは問題ありません。
しかし、もし1回でも辺や面の追加や削除を行えば、頂点の結ばれる順番がおかしくなり失敗するでしょう。
また、Wings3Dで、テンプレートを用いずに、スカルプテッド立体を作るには、最初にスカルプテッド形式の仕様で規定された面と頂点の数を持つテンプレート立体を、N-gon、Torus、Sphereコマンドなどを使い新規生成し、それを拡大縮小移動コマンドのみで、変形する作業となります。
もし、Wings3dで正しく立体を作る場合は周回する頂点はそれぞれ
「#0,#1,#2,#3,#4,#5,#6,#7,#8,#9,#10,#11,#12,#13,#14,#15,#16,#17」のように正しい順序で割り振られる必要があります。このように番号が一括生成されるのは新規作成立体の場合のみです。
参考: wings3d用の SculpExporter-plug in では頂点の順序と位置関係が重要とみなされるらしいです。極端な話、面で立体を構成しなくとも、Extractコマンド で増やした 64角形の円盤を63枚重ねただけの立体をCombineコマンドでグループ化したものでも、スカルプテッドテクスチャとして出力できるようです。
参考;
頂点を収束させる/あるいはその復帰方法
ManifoldLab
ManifoldLabはWings3d用の多機能プラグイン集で、
ggaliens氏のサイトで開発・配布されています。
Download Manifold。
(このプラグインは自由/無料で使えます。また任意でPaypal経由の寄付を作者さんへ送る事もできます。)
プラグイン名称はおそらく「
多様体研究室」という意味なのでしょう。
Youtubeにも
動画による解説があります。
MacOSX,Linux の場合Wings3dの File>Install PlugInから、アーカイブを解凍せず「mlab-2011-03-01---18-58_wings-1.4.1.tar.gz」を選択ですることで、簡単にインストールできます。
説明によると...
- 有機的な形状を作れる(岩場や崖)。
- フラクタル立体を作れる(メンガーのスポンジ)。
- 選択領域のパターン化
- ボロノイ図状にポリゴン分割(細胞のような形状)、色分け
- 3Dインスタンス表示切替( 配置された複数の代替オブジェクトをオリジナルに置き換えて表示可能。データが重くならない。)
- ブーリアン演算による立体生成
普通に動作するものも多く、Tilt Random,Deform Random, Color Random, Color splash、のようなランダムフィルタや頂点/面の色を変化させるコマンドも多いです。珍しいものとしては、複数の選択頂点に光源を配置するVertex|Light Arraysがあります。
▼
Manifold-Lab プラグイン詳細(←クリックで詳細が開きます )
追加インストール無しで動作するものを少し紹介します。Manifold-Labのコマンドは多いので、Plug-ins incubator のメニューによって別個に管理されてます。
Body | Plug-ins incubator...
Scatter Bodies (オブジェクト散布)
- 1) 2つのオブジェクト(大,小)を選択してしておき、このコマンドを実行
- 2) コンテキストメニューで散布場所を On Face、 Near Face、On Edge、At Bodies のいずれかを選択。
- 3)ダイアログが出る、Scatter This Many は散布する小オブジェクトの個数(デフォルト10個)
(慣れていない人は、パラメータを弄らず) OK ボタンで実行
大きなオブジェクトの周囲(面/面付近/辺/全体)に小オブジェクトが、たくさんこびり付きます。
Edge Face Collisions
- 1) 2つのオブジェクトを選択してしておき、このコマンドを実行
- 2) 2つのオブジェクトがぶつかっている場所が選択領域として赤く染まります。
Arrengements of Objects (Menger Sponge メンガーのスポンジ)
- 1) 1つの立方体を選択してしておき、このコマンドを実行
- 2) AsBoxed, As Menger Sponge ,Between(Bookends), As Circular,As Concentric Bodies
これらから選ぶ。(今回は As Menger Sponge(メンガーのスポンジ) を選択します)
- 3)すると、3X3 の穴空き立方体が作成されます。この穴空き立方体に再度このコマンドを掛けて行くと
より複雑なメンガーのスポンジ(フラクタル立体)になります。
Arrengements of Objects (Between(Bookends) : 本立て補完)
- 1) 離れた距離にある、同じ形のオブジェクトを2つを選択してしておき、このコマンドを実行
- 2) AsBoxed, As Menger Sponge ,Between(Bookends), As Circular,As Concentric Bodies
この中からBetween(Bookends)選ぶ。
- 3)ダイアログが出るので、Number(include Bookend objects) の数値パラメータを指定して下さい。OKを押す。
- 4)すると、2つのオブジェクトの間に (パラメータ-2)個のオブジェクトが作成されます。(本棚のように並びます)
( Illustrator の ブレンド, Inkscape の補間(Interpolate)ツール に似た機能です ※但し大きさは変化しません)
水平ではブックエンドに挟まれた沢山の本のように、高さが違えば階段のようにオブジェクトが並びます。
Arrengements of Objects (Concentric Bodies : マトリョーシカ補完 )
- 1) オブジェクトを1つを選択してしておき、このコマンドを実行
- 2) AsBoxed, As Menger Sponge ,Between(Bookends), As Circular,As Concentric Bodies
この中からConcentric Bodiesを選ぶ。
- 3)ダイアログが出ます、
- Shelling Technique:Inset(内側) , Scale
- Number of shells : 殻の数
- Relative Distance Between Shells:殻と殻の間の距離
-
OKを押す。
Concentric Bodies で作成された立体について
Insetの場合、マトリョーシカ人形のように、内側に入れ子状に立体が作成されます
Scaleの場合、少し中心からずれた場所に作成されます(こちらは、生成された*オブジェクトが選択しやすいです)。
Greeble Extrude by Color(色の付いた部分を象嵌)
- 1) 先に、オブジェクトの1つ/複数の面に色を付けておきます
- 2) このコマンドを実行するとダイアログが出て来ます。
- 3) Max , Min Extrude Height 彫りの深さの最大/最小値
Sepataion option について Sparate Greeble Layer(浮き彫りにした部分を独立させる) , Keep Shingle Object(もとのオブジェクトを保持)
- 4)色の付いた部分だけ 浮き彫り状態/象嵌状態(マテリアルを変更したら)になります。
※このコマンドを使うとExtrudeの副作用で元の立体は膨らんでしまいます。
Face | Plug-ins incubator...
Directed Quads Move(パターン化された選択領域の繰り返し)>解説動画→
YouTube - Shift Quads
- 1) 先に、パターン化する面を選択し、Tools>Plug-ins incubator>Directed Edges...>Make Directed Facesを実行。矢印付きの面に変わる。
- 2) Face | Plug-ins incubator...>Directed Quads Shift
- 3)ダイアログで、Pattern Width(移動する距離/辺)を指定(デフォルト:10 )
選択領域のパターンが複製されます。
先に、Make Directed Face化しないとこのコマンドは実行できません。
Directed Quads Move Backward/Forward 1 は1単位ずつ動かすコマンドです。
Make Directed Faceは、Tools>Plug-ins incubator>Directed Edges...>Remove で解除可能。
Face |Trun shape toward...
複数のオブジェクト(各オブジェクトごとに1つだけ面を選択する必要あり)を同じ方向に向かせます。
Fit big to smaller 同じ形の面を指定してあれば、全ての指定場所へぴったり配置できる。
- 1) 先に、オブジェクト#(ナンバー)が小さいオブジェクトの面を一つ選択
- 2) オブジェクト#(ナンバー)が大きなオブジェクトの面を複数選択
- 3)コマンド実行すると、小さなオブジェクトのコピーが、
大きなオブジェクトの選択された全ての部分へ、接合面にぴったり張り付く。
RMB(右クリックだと逆の、Fit small to big weldedになる)
Bridge Arrayed Bridge (面同士の接続/トンネル貫通)を選択部分すべてに適用する
Put Arrays Clone On(オブジェクトのクローンを配置)コマンドで選択部分すべてに張り付く。
- 1) 先に、小さなオブジェクトの面を一つ選択
- 2)コマンド実行すると、ダイアログが出る, とりあえず OKを押す。
- 3) 情報行に従い、大きなオブジェクトの面を複数選択
- 4) マウス右ボタンで効果適用
大きなオブジェクトの選択された部分へ、とりあえず張り付く。
Tilt Random
Color Random
Face | Smoothless Divide
BlenderのDivideツールコマンドと同じ効果
Edge | Plug-ins incubator...
Loop Paths to Tubes....
- 選択辺(3次元空間上)に内接するようなひも(チューブ)を生成
Arrenge Object On Path
- あるオブジェクトA上にある連続した辺(Path)に任意のオブジェクトBを複数配置する
- 1)オブジェクトAの複数の連続した辺(複数)、配置したいオブジェクトBの任意の辺(1つだけ)をそれぞれ選択
- 2)このコマンドを実行
- 3)ダイアログが出ます。 Frequency on Path の値を1にすると間隔なしの連続配置。→ OK
- オブジェクトBが、Aの選択した辺に沿って並ぶ
歯とか花びらとか、規則的に並ぶオブジェクトを作るのによさそうです。
Path Morphing(選択辺の角を変容させる)
Vertex | Plug-ins incubator...
Light Arrays
- 選択した頂点の位置すべてに、光源オブジェクトを配置(点光源/無限遠光源)
Shape extrude
らせんやバネのような特定の形を出現させます
このスクリーンショットでは、数式欄はそのままでOKを押した時の形。
アウトライナーの項目名は、画像のオブジェクトの並びと同じ順序になってます。
追加ライブラリについて
一部コマンド名に Voronoi , Convex , boolean などが含まれる物があります。
自前でコンパイルする必要なく、Manifold-Lab配布サイト(デイリー最新版の所)にコンパイル済みファイルがあるので、
それをインストールしてください。>
Download Manifold_daily
追加ライブラリの入れ方
- MacOSXの人は、Booleans-OSX-Leopard.tar.gz、voronoi-2011-01-06-osx.tar.gz
- Linuxの人は、Booleans2010-12-22-ubuntu10.x.tar.gz、voronoi-2011-01-06-ubuntu10.x.tar.gz
- Windows向けは最初から入ってるようです intersect.exeなどがそれです。
MacOSXなら、
/Applications/Wings3D 1.4.1.app/Contents/Resources/lib/wings-1.4.1/plugins/manifoldlab/voronoi/osx
にqhullとqvoronoiを入れます。
/Applications/Wings3D 1.4.1.app/Contents/Resources/lib/wings-1.4.1/plugins/manifoldlab/boolean/osx
にintersect を入れます。
他のOSも、それぞれOS名のフォルダに入れます。
boolean コマンド
交差した2つまたは、2つ以上のオブジェクトを選択後、Body|plugin-incubator>Boolean(Constructive Solid Geom)を実行。
マウスボタンのバリエーションは次の通り L:Union M:Split R:Intersect それぞれ結果が違います
Voronoiコマンドの結果↓
自前で入れたい人のための Qhullライブラリのmake 方法
分かる人向けの説明 (MacOSX (たぶん Linuxでも) はこの方法で入れられます )
Manifold Labのサイトで、コンパイル済みのQhullファイルが用意されているので、それを使った方が早いです...
QhullのMakefileの生成には
Cmakeが必要です。
Cmake で Qhull用makefileを生成してから、ビルドします。上の画像参考(今回はbuildというディレクトリに展開させました)。その後、展開先ディレクトリに入って、makeします。
$ cd /Users/my/qhull-2010.1/build/src
# ※出来たファイルはwings3dのプラグインフォルダの中に入れるのでsudo make install はしません
$ make
:
:
# makeが済んだら、テストしてみる
$ ./rbox c D4 | ./qconvex i Pd0:0.5 Qt
# 結果
9
9 13 14 15
12 9 13 14
9 11 13 15
11 9 14 15
9 10 11 14
12 9 14 8
9 12 13 8
9 10 14 8
10 9 11 8
# これでOK
生成されたバイナリファイルをwings3dの所定のディレクトリに入れてあげてください。
rbox
qvoronoi
qhullcmd
qhalf
qdelaunay
qconvex
libqhull.a
を
Wings3D 1.4.1.app/Contents/Resources/lib/wings-1.4.1/plugins/manifoldlab/voronoi/osx
にコピーして下さい。
それと、必ず qhullcmd のエイリアスを同じ階層に作って、qhull という名前にしてください。
(そうしないと、Wings3d側でファイルが見つからないというエラーが出ます。※コンソール確認)
これでManifold labがライブラリにアクセスできるようになります。
外部レンダラーとの連携
外部レンダラーとは、3Dモデルを美しく画像出力するための専用アプリケーションのこと。
Wings3Dは、直接レンダラーと連携するほかに、レンダラーで読込み可能なファイル形式でExportすることもできます。
外部レンダラーの例:
- Kerkythea (Kerkythea 2008 Echo) フリーのレンダラー Windows,MacOSX,Linux版あります。
Intel Mac OSX10.5.8 + X11 / PPC G5 Mac OSX10.4.11+X11環境でも動作しました
- POV-Ray Windows,MacOSX,Linux版あります。 PPC OSX 10.2.8 以降とありますが、IntelMacや OSX10.5非対応
- YafaRay は Yafrayというレンダラーの後継。 Windows,MacOSX,Linux版あります。(Macでは、Intel OSX10.5のみ) Wings3D 1.2 ではまだ利用できない模様
Wings3Dでは、Edit>Plugin Preference の設定項目で設定をします。レンダラー本体がインストールされたパスを指定すると良いみたいです。
しかしWings3D、レンダラー、OSのバージョンの組合せによっては動作しないこともあります。
もし直接の連携ができなくても、レンダラーが単体のソフトウェアなので、Wings3Dからレンダラー専用ファイル形式で出力して、読ませる方法もあります。
Kerkytheaレンダラーを使ってみる
2010年4月現在のおすすめレンダラーは、Kerkythea(2008 echo)。これはレンダリングエンジンに単体のGUIアプリケーションも付いていて、わかりやすいです。
Wings3dのメニューから、File>Rendaring>Kerkythea を実行すれば、でKerkythaの使い方が分からなくてもレンダリングができます。
(Wings3d上から、Kerkytheaのレンダリング指定ができるため。)
Wings3dでは、Edit>Plug-in Preference>Kerkythea のオプションで設定を行います。
その Exectutableの欄にはKerkytheaまでのファイルパス「/Applications/Kerkythea/Kerkythea」を指定しておきます
( Kerkytheaが MacOSXのApplicationフォルダにインストールされている場合 )。
レンダリング前のヒント
- 初めての人は、オブジェクトを照らすようなスポット光源を1つ配置しておくと、陰影をはっきり確認できます。
- テクスチャを読込んでるのにレンダリングが真っ黒の場合、wings3d のマテリアルのdiffuseパラメータ上げるとよいでしょう。
- GeometryGraphウインドウで、非表示にしたオブジェクトは、レンダリング結果に反映はされません。
- デフォルト状態の平行光源や環境光にくせがある?レンダリングがシルエットになる。 スポット光源を追加したり、パラメータを変える等対策が必要かも
Kerkytheaでレンダリングする2つの方法
- Wings3dからKerkytheaへ連携:Wings3DのFile>Render>Kerkythea を選ぶ(または最低限の設定をして実行)と、自動的にKerkytheaへデータが渡されて、レンダリングされます。レンダリングされた画像はHDDへ保存されるほか、<<Rendererd>>という画像ででWings3Dのアウトライナーへ項目が追加される。
- xml形式で保存(Keykythea経験者向け):Wings3Dの File>Export>Kerkythea を選ぶ。これは Kerkytheaで読込み可能なxmlファイルで保存されます。
Kerkytheaいろいろ
- レンダリングを途中で停止する方法:Kerkytheaで実行中のレンダリングウインドウ(X11)のタイトルバー左上の赤丸ボタンをクリックすると、停止するかどうかのダイアログが出ます、Yesを選べばウインドウを閉じてレンダリングが停止されます。このとき、レンダリング途中の画像はそのまま保存されます。
(レンダリングを最後まで完璧に行わず、きりがいいと思った所で止めておくのも一つの方法)
- Wings3d上でレンダリング結果を確認:<<Rendererd>>画像はアウトライナーから右クリックメニューでShowすると、内容を表示できます。このときマウスホイールでズーム、ホイールボタン押下ドラッグで上下左右にスクロールすることができます。
- Kerkytheaはレンダリングの並列処理ができます: 長い時間がかかるレンダリング処理中に、
Wings3dから短い設定の別設定のレンダリングをKerkytheaに渡してみました、すると短い設定のレンダリングを優先しつつ、もとの処理も続行しているようでした。(Wings3d 1.4.1,MacOSX 10.5.8)
- レンダリング結果のオブジェクトが真っ白になる場合、Wings3D側のマテリアルのEmissionの値を低く(暗く)する。
Wings3d→Kerkyhea のマテリアル設定
Wings3dのマテリアル編集ウインドウには、Kerkythea用の設定タブがあります。
ここではWings3dのマテリアル設定を変換して、Keykytheaに渡せるように、プリセットを選ぶ事ができるようになっています。
カキーシャ(KT)は、写実表現に主眼をおいています。しかしWings3dのOpenGL対応の設定では、リアルな結果を正確に出力するとは限りません。
それでKTに存在するすべての設定に対応する制御を提供する代わりに、写実的な設定に最も共通する設定にプリセットします。
選択可能なKerkytheaプリセットのタイプ
- Matte :ツヤなし
- Plastic : プラスチック
- Dielectric Glass: 厚いガラス(宝石、水晶玉、IORでレンズの性質を持つ ) (屈折あり)
- Fresnel Glass : フレネルガラス
- Frosted Glass : 霜付きガラス
- Thin Glass : うすいガラス(窓ガラスなど)(屈折なし)
- Matte Metal :ツヤなし金属
- Ashikhmin Metal:異方性反射特性を持つ金属( Anisotropic Ashikhmin Material)
- SSS :光の透過と散乱=サブサーフェイス・スキャタリング (Sub Surface Scatteering)(大理石、肌、牛乳 )
これらプリセットの詳細
Wings3dのプリセット選択欄付近の「?」ボタンを押すと、
Kerkythea Material Propertiesというウインドウが現れ、
現在選択されているプリセット項目に対応する、詳細な説明が表示されます(英語です)。
▼
【プリセット詳細を見る】(←クリックで詳細が開きます。※やっつけ訳)
●Matte
これは最も基本的な設定です。写実的な設定ではありませんが、使える方です。
KT Diffuse ー> diffuse * opacity
KT Specular ー> specular
KT Refractionー> diffuse * (1 - opacity)
KT Shininess ー> shininess (linear range 0 - 128)
KT Ambient ー> ambient
KT IOR ー> IOR
diffusecolorの代わりにdiffusemapが使用されるでしょう。
diffusemapは、異なる色のある場所で使われるでしょう。
不透明が適用され、それゆえ反射もありません。
glossmapは、反射色のある場所で使われるでしょう。
emissionは、マテリアルを発光させます。高度マップと法線マップは、それぞれ
バンプマップとノーマルマップとして適用されます。
●Plastic
これも最も良く使われる設定です。IORをベースにした反射を生成したフレネルプロシージャ使用したマテリアルの重なりです。
KT Diffuse ー> diffuse * opacity
KT Specular ー> specular; Intensity (V in HSV) should ALWAYS be 1.0
KT Refractionー> diffuse * (1 - opacity)
KT Shininess ー> shininess (exp range 1 - ~44,000)
KT Ambient ー> Ambient設定は全く無視されます
KT IOR ー> IOR
diffusecolorの代わりにdiffusemapが使用されるでしょう。不透明が適用され、それゆえ反射もありません。
glossmapはこの周囲に多層マテリアルを生成し、フラット拡散光と鏡面マテリアルの中間の効果をマップします
反射サンプリングは有効です。これはshininessの値をベースにくもった反射となるでしょう。
emissionはマテリアルを発光させます。高度マップと法線マップは、それぞれバンプマップとノーマルマップとして適用されます。
●Dielectric Glass
これは単純なガラス素材を表現する設定です。単一レイヤーのマテリアルです。
KT Reflection ー> specular
KT Refractionー> diffuse * (1 - opacity)
KT IOR ー> IOR
KT Shininess ー> shininess is ignored.
KT Ambient ー> ambient setting is completely ignored.
refrection colorの代わりにdiffusemapが使用されるでしょう。 diffuse map の 値が 透明度を決定します。
reflection の代わりに gloss map が使用されるでしょう。gloss map の値が反射の度合いを決定します。
emissionはマテリアルを発光させます。高度マップと法線マップは、それぞれバンプマップとノーマルマップとして適用されます。
●Fresnel Glass
これはプラスティックと霜ガラスと似ています。フレネルプロシージャは反射と、反射層とのバランスを決定づけます。
KT Reflection ー> specular; Intensity (V in HSV) should ALWAYS be 1.0
KT Refractionー> diffuse * (1 - opacity)
KT IOR ー> IOR
KT Shininess ー> shininess is ignored.
KT Ambient ー> ambient setting is completely ignored.
refrection colorの代わりにdiffusemapが使用されるでしょう。 diffuse map の 値が 透明度を決定します。
gloss map は無視されます
emissionはマテリアルを発光させます。高度マップと法線マップは、それぞれバンプマップとノーマルマップとして適用されます。
●Frosted Glass
これは、フレネルガラスと、プラスチックに似ています。フレネルプロシージャが伝えられ、反射と、反射層とのバランスを決定づけます。
KT Reflection ー> specular; Intensity (V in HSV) should ALWAYS be 1.0
KT Transmissionー> diffuse * (1 - opacity)
KT IOR ー> IOR
KT Transmitted Shininess ー> shininess (exp range 1 - ~44,000).
KT Ambient ー> ambient setting is completely ignored.
transmitted colorの代わりに diffuse mapが使用されるでしょう。 diffuse map の 値が 透明度を決定します。
gloss map は無視されます
Transmission サンプリングは有効です。これはshininessの値に基づく曇ったな屈折をもたらすでしょう
emissionはマテリアルを発光させます。高度マップと法線マップは、それぞれバンプマップとノーマルマップとして適用されます。
●Thin Glass
これは、薄いガラスの板を模倣します。
KT Refraction ー> diffuse * (1 - opacity)
KT IOR ー> IOR
KT Specular ー> specular is ignored
KT Shininess ー> shininess is ignored
KT Ambient ー> ambient setting is completely ignored.
refrection colorの代わりにdiffusemapが使用されるでしょう。 diffuse map の 値が 透明度を決定します。
gloss map は無視されます
emissionはマテリアルを発光させます。高度マップと法線マップは、それぞれバンプマップとノーマルマップとして適用されます。
●Matte Metal
これは反射的性質をもつ金属のための単ーレイヤーのマテリアルです。
KT Diffuse ー> always black
KT Specular ー> always white
KT IOR ー> IOR
KT Fresnel Low Colorー> diffuse
KT Fresnel High Colorー> specular
KT Shininess ー> shininess (exp range 1 - ~44,000)
KT Ambient ー> ambient setting is completely ignored.
透明度は無視されます
diffuse map は無視されます
gloss map は無視されます
Specular サンプリングは有効です。これはshininessの値に基づく曇ったな屈折をもたらすでしょう
emissionはマテリアルを発光させます。高度マップと法線マップは、それぞれバンプマップとノーマルマップとして適用されます。
●Ashikhmin Metal
これは異方性反射特性をもつ金属のための単ーレイヤーのマテリアルです。
KT Diffuse ー> always black
KT Specular ー> always white
KT IOR ー> IOR
KT Fresnel Low Colorー> diffuse
KT Fresnel High Colorー> specular
KT Shininess ー> shininess (exp range 1 - ~44,000)
KT Ambient ー> ambient setting is completely ignored.
透明度は無視されます
diffuse map は無視されます
gloss map は無視されます
Ashikhmin サンプリングは有効です。これはshininessの値に基づく曇った反射をもたらすでしょう
emissionはマテリアルを発光させます。高度マップと法線マップは、それぞれバンプマップとノーマルマップとして適用されます。
●SubSurface Scattering
本質的にはプラスチックのようですが、SSSは吸収した光が透過し内部で散乱する様を表現します
正確なSSS効果を得るためには、不透明度を1にした暗いdiffuse colorを用いるべきです。類似した色相の光の透過を表す逆もまた同様です。
この設定を使う場合は、render / export ダイアログのKerkythea設定で Volume Lighting(ボリュームライト)を有効にすべきです。
KT Diffuse ー> diffuse * opacity
KT Specular ー> specular; Intensity (V in HSV) should ALWAYS be 1.0
KT Refractionー> diffuse * (1 - opacity)
KT Shininess ー> shininess (exp range 1 - ~44,000)
KT Ambient ー> ambient setting is completely ignored.
KT IOR ー> IOR
KT Translucencyー> translucency
KT Absorptionー> white * absorption
diffusecolorの代わりにdiffusemapが使用されるでしょう。不透明が適用され、それゆえ反射もありません。
glossmapはこの周囲に多層マテリアルを生成し、フラット拡散光と鏡面マテリアルの中間の効果をマップします
Specular サンプリングは有効です。これはshininessの値に基づく曇った反射をもたらすでしょう
emissionはマテリアルを発光させます。高度マップと法線マップは、それぞれバンプマップとノーマルマップとして適用されます。
Wings3d→Kerkyhea のレンダリング設定
- Camera:カメラタイプ。通常はPerspective(デフォルト)で問題なし
- Pseudo◯◯処理 = 疑似◯◯処理
- Caustics:光の屈折模様;コースティクスの度合いのこと(ひなたにビー玉を置くと、床に映る光の模様)
- IOR:(Index Of Refraction)) 屈折率のこと。
- レンダリング種類は、〜Quickが付いているものが早い
- Threadを増やすとレンダリング速度が上がる
- Lenz Samplesを増やすと遅くなる(10くらいで滑らか、遅い)
- アンチエイリアス:
Lenz samplesを低く設定した時の粗めな状態を改善するためのもの?
- アンチエイリアス処理その他をチェックすると、レンダリング速度は遅くなる
- アンチエイリアスのしきい値は0.3程度でよいみたい。アンチエイリアスを有効にするとその分遅くなる。
- アンチエイリアスフィルタは周囲ピクセルの重み付け平均値で行われているようです。
(Extra Pass 3x3,Iterative 3x3,Production AA...)
- Kerkytheaのアンチエイリアス設定を調べると、それぞれこのような違いがありました。
- F-number:
F値のこと(レンズの明るさ、明るいと通過する光の量が増える)。
- F値設定は 1, 1.4 , 2, 2.8 , Pinhole(全てにピントが合う) から選べます。
- Pinhole(デフォルト)の場合、Lenz Sampleは使用できません。
- 1の場合奥行きの半分くらいまでボケます。2.8の場合さらに半分手前からボケます
- F値を小さくすると、手前から半分奥までボケる。
- F値を大きくするとと、手前から少し奥までボケる。
- Lenz samples:
レンズサンプリングを増やして、被写界深度のクオリティ(ぼやけ具合)を高めます
F-NumberがPinhole以外の時に使用出来ます
- 1(粗目)<3(デフォルト)<10(なじむ)
- グラデーションの明灰部分が馴染むのが6。灰暗部分が馴染むのが10くらい。
Lenz samplesが10になると、レンダリング速度はかなり遅いです。
- F1.0(左から順に Lenz samples=1,6,10)
- F2.8(左から順に Lenz samples=1,6,10)
被写界深度とは何か - [デジタルカメラ] All About
その他の用語メモ
- Ray Tracing(レイトレーシング):
カメラ→光源の交点。光の軌跡を辿って色を算出
メリット: 影、光の反射・屈折の再現。写真のような表現
デメリット: 光源が増えると計算に膨大な時間がかかる。
上から下へ走査して行く感じでレンダリングされていきます。
- Photon Mapping(フォトンマッピング):
光源→オブジェクトの交点周囲から色を算出。光源から放出した光を光子(フォトン)として扱う
メリット:計算量少、透明感, コースティクス(光の屈折模様)表現、間接照明表現
デメリット:明暗差が大きい部分がノイズ )
モザイクがどんどん鮮明になる感じでレンダリングされていきます。
- Path Tracing(パストレーシング;ファイナルギャザリング):
カメラ→オブジェクトの交点周囲の平均的な明るさを求め色を算出
メリット:表面の乱反射、影の暈かし表現
デメリット:明暗差が大きい部分がノイズに
上から下へ走査して行く感じでレンダリングされていきます。
- Progressive Path Trace( プログレッシブパストレーシング):
プログレッシブ(段階的)にパスオブジェクトレーシングを行います。
これ以降の方式は、アンチエイリアスオプションはありません。
メリット:表面の乱反射表現
デメリット;明暗差が大きい部分がノイズになる。かなり時間がかかる。
- Bi-directional Path Tracing(BPT;双方向パストレーシング)
光源→カメラ、カメラ→光源で、双方向のパストレーシングを行う。
ザラ目のノイズが晴れて行く感じでレンダリングされていきます。
それ相応の時間がかかります
- MLT(メトロポリス光輸送)
MLT BPT(メトロポリス光輸送+双方向パストレーシング)
とてつもなく時間がかかるが、とてもリアルな結果になるらしい。
ノイズが晴れて行く感じでレンダリングされていきます。
lucille 開発日記によれば「メトロポリス」は人の名前だそうです。
Kerkytheaレンダラー関連の情報
公式サイトで説明書がpdfファイル配布されています。
Kerkytheaは、単体アプリケーションです。そこから生まれた商用の
Theaレンダラーもあります。
また、Kerkytheaと同じレンダリングエンジンを利用したものとして、GoogleSkecthUp専用プラグインとして知られている、
Twilightレンダラーというものもあります。
【MacOSXでのKerkythea日本語化はダメでした】
sketchup+etcさんで入手したKerkytheaのJapanese.txtを適切なフォルダに入れた後、KerkytheaのFOXGUIの設定もしてやります。「ユーザーホームディレクトリ/.foxrc/Kerkythea Rendering System/Fox GUI」のテキストファイルを編集します。
[Settings]にLanguage=Japaneseを追加、また[SETTINGS]にnormalfont エントリを追加。Keykythea起動時に「ライブラリ/フォント」にある TTFファイルを読込みますが、OSXでは文字が豆腐化してしまいます。
[Settings]
Start Maximized=0
Launch Application=/Applications/Kerkythea/Kerkythea
Animation Shell=
Apply to Same Name Materials=0
Launch Folder=/Applications/Kerkythea
Use Small Preview Icons=1
Running Folder=/Applications/Kerkythea
Language=Japanese
Material Editor Scene=standard/standard
Copy Texture Maps to Libraries=1
Render Priority=-2
Use Model Shape in Preview=0
Show Render Small View=1
Apply Default Gamma Correction=1
[SETTINGS]
forecolor=#cdc8be
basecolor=Gray25
backcolor=#505050
hilitecolor=#606060
shadowcolor=#202020
tiptime=131072
tippause=100
normalfont = "Osaka,120,bold,italic,normal,utf-8"
[File Dialog]
height=300
showhidden=0
width=500
style=12582912
アイコン
テスト版、開発中断プラグイン
これらは様々な人によって、Erlanの練習・Wings3dプラグインの作成や実験のために作られた物です。プラグイン作成の参考になるかもしれません。
使用には充分注意し、開発途上版なので予期せぬ不具合が発生することもあります。頓挫していたり、引き継ぐ人がなく開発が中断しているものもあります。
・
Newbie Programmer Plugin help in PROGRAMMING Forum
・
Wings3d Coding Guildelineを
要約してみました。(日本語)
Clipping Planes
View|Show>Clipping Plaens.
クリッピング平面とは3D空間を切り取るオレンジの円で表示された平面をいいます。
これはWings3dでは「ユーザーが指定した任意の軸」及び「デフォルト軸」で指定した軸に垂直な平面を表す補助オブジェクトでもあります。
しかし、クリッピングのFar,Near平面も設定できないので、まだまだこれからの機能です。
参考:
Houdiniという3Dソフトにもclipと言う機能があります。
【何の役に立つのか?】
これは、3D空間上を切り取って(クリッピング)しまう平面です。
3D空間のすべてのオブジェクトがクリップ対象です。
面と交差したオブジェクトは断面が表示されますが、オブジェクト自身は破壊されません。
このクリッピング平面よりも手前に移動させるとすべて表示されます。
【(本来の使い方ではない)別の使い道】
この表示を有効にすると、例えば3D空間上で任意の軸方向でオブジェクトを切断するときに、
ユーザーがどの面で切ろうとしているのか予測をつけることができます。
また、コマンドの実行過程でもクリッピング平面は消えることがないので、ユーザーの助けになります。
作業に応じて、表示/非表示を切替えて使ってください。
【どういう操作でこれが変化する?】
このクリッピング平面は3D操作中は常に維持され続けていて、
Wings3dで、ユーザーが任意の軸を指定する、またはデフォルト軸を変更するたびに、
それに応じて、クリッピング平面の向きも変化するという機能をもっています。
【実際の使い方】
クリッピング平面の表示を有効/無効にするには、メニューバーから選びます。
クリッピング平面の表示が有効な場合、このように表示されます。
このとき、クリッピング平面とオブジェクトと交差している部分は線で表示されます
クリッピング平面自体の色や大きさを設定するには、環境設定から行います。
クリッピング平面の位置を変える場合は、任意のコマンドを実行する過程で、軸を指定するか、デフォルト軸を指定して下さい。
デフォルト軸を指定するには、 Tools|Set Default Axis>Set Axis を実行します。
例:Plane Cutの右クリックコマンドで、任意の面で切断した結果。Plane Cutコマンドの過程で指定した切断面がわかります。
トラブルシューティング
wings3dは ファイルフォルダ関係が英語でないと読込みません。
扱う3Dデータのファイル名は?
- ファイル名/拡張子は、英小文字数字記号から構成される名前にしておいてください。
- ファイル拡張子は英小文字を使ってください(例:.obj)。拡張子が大文字(例.OBJ)だと認識されません(Linuxで確認)
- アジア圏の文字やダイアクリティカルマークのある文字(例: ä,à,ö,è,ü 等)を含むファイル名は読込めません。
3Dデータのファイルはどこに置けばいいの?
- すべて英小文字数字記号から構成されるフォルダ に入れて下さい。
- 日本語や、アジア圏の文字やダイアクリティカルマークのある文字(例: ä,à,ö,è,ü 等)を含むフォルダの中には入れられません。
- WindowsXP環境ではマイドキュメント以下にファイルを置く。
- Win7,OSX 環境ならデスクトップ上の英文字フォルダの中でもOK
環境設定ファイルはどこ?
- MacOSX版では、 /Users/ホーム/Library/Preferences/Wings 3D Preferences.txt にあります。
設定が壊れた場合はこれを編集するか捨ててWings3Dを再起動すると治ります
エラーログはどこ?
- Wings3Dで内部エラーが出た際にログが吐き出されます。
- MacOSXでは、Users/ユーザー名/wings_crash.dump というエラーログが吐き出されます。
- Windows7では、デスクトップにwings_crash.dumpというエラーログが吐き出されます。
テキストファイルなので、プラグイン開発時の手がかりや、開発元へのフィードバックにご活用ください。
内部エラーが出ても、Geometryウインドウをクリックすることで、そのまま復帰出来る場合もあります。
読込みファイルダイアログ関連
- Mac OSXの場合、Wings3dのFile>MacOS file dialogにチェックを入れると、OSXネイティブのダイアログが出ます。
もしデフォルトの保存ダイアログでクラッシュする場合、これを使ってください。
- Windows7の場合、ネイティブダイアログが出る。(デスクトップもOK)
- WindowsXPの場合、ネイティブダイアログが出る。マイドキュメント以下に置いたファイルは読めます。(デスクトップだと何故かダメ)
- Linuxの場合、Wings側のウインドウのダイアログが出ます。UTF-8対応(チェック入れた場合)。他のOSのダイアログに比べて使いづらい。
テクスチャ画像が真っ黒、読み込み時に「不正な画像です」というダイアログが出る。
縦横のサイズが不正。または外部テクスチャの参照(リンク)が外れている可能性があります。
- Wings3dで外部テクスチャの場所を正しく指定する、または外部テクスチャファイルのほうを正しい場所に置いてください。
- テクスチャのサイズは、必ず縦横をサイズを64x64、64x128, 128x512 、256x256ピクセルなど、「2のべき乗サイズ」の組合せにして下さい。これはOpenGLの仕様がそうなっているためです。
UVマップがややこしい
- Q:複数のUVマップが個別に回転してしまう → A:UVEditorの頂点選択モードなら全体の位置関係を保ったまま回転に追随します。仕様です。
- Q:UVマップ全体を位置関係を保ったまま回転させたい → A:UVEditorの頂点選択モードで全選択してからRotate>Freeで全体の位置関係を保ったまま回転に追随します。
- Q:UVマップの関連性がわからない → A:基本的に1つのオブジェクトに対し、1つのUVマップが対応していて座標/UVシェルの編集はその中で完結します。オブジェクトの部位ごとにSegmentingやUV展開しても別のUVマップが新たに追加/削除されるようなことはありません。
- Q:編集中に目的のUVシェルが見つからない → A:UVmappingウインドウではResegmentまたは選択部分のUVマップを表示した時は選択部分のUVシェルだけが表示されている状態になっています。オブジェクト全体を選択してUVmappingを実行してみると見つかるかもしれません。
- Q:UV編集画面のテクスチャがデフォルトのUVauv画像になっている→ A:一つのオブジェクトのUVに2つ以上のマテリアルを設定しているとそうなります、UVEditor に読込むテクスチャはUV位置合わせ作業用の下絵として一時的に読込まれるものと考えて下さい。アウトライナーのテクスチャ項目をUVEditorへドラッグ&ドロップすると任意の画像に変更できます。
- Q:マテリアルを二つ以上設定したオブジェクトを作ったけど、3D画面上にもう一つのテクスチャが現れない→ A:アウトライナーの該当するマテリアル項目のプロパティを開いてDiffuseの値をほんの少しいじって、マテリアルを更新すると上手く表示されることがあります。
既にテクスチャが貼ってあるオブジェクトを押し出したらその部分のテクスチャがおかしくなった
おかしい部分のみをUV展開して、テクスチャを再び割り当てる(Resegmentする)ことができます。
- 手順:新しく生成された部分(面)を選択後、右クリックメニューから「.UV Mapping.」をマウス中ボタン(MMB)で選択実行すると、UVを再割り当てするResegmentを行えます。Segmentingウインドウで該当部分に切れ目を入れたり展開方法を設定後、展開されたUVを編集してください。
- Q:Resegment時のオブジェクトが見えない → A:Segmentingウインドウ内のカメラの視点を変える。
- Q:Resegment時のUVmappingウインドウのテクスチャがテストパターン「AuvBG」になってしまった。 → A:一時的なものなので変化しても問題ないようです。しかしジオメトリ内の表示もAuvBGになってしまった場合は、対応するマテリアルに、正しいテクスチャを再割り当てしてください。
インターフェース
例えば、右クリックメニューで、使いたいあのコマンドが見つからない。
- (ジオメトリやUVEdit画面で)あのコマンドが見つからない:→頂点,辺,面など他の選択モードに切替えて探してみましょう。
- ImageSnapモード中、SnapImageコマンド見つからない:→全体選択モード以外に切替えましょう。
- 立方体や球を出すためのメニューが出ない:→未選択状態で右クリックメニュー
- コマンドが消えてしまった?メニュー項目が5個しか表示されていない:→光源オブジェクトも一緒に選択すると起きます(光源オブジェクトに対して効果のないコマンドがメニュー項目から除外されているのが原因)。光源は選択から外しましょう。
- どこがどうなるのかがわからない:→ギズモが少ないので分かりにくいです。メニューからView>Showで、Normal(法線)やClipping Planes(クリッピング平面)の表示を有効にして下さい。(※)
【※ユーザー補助オブジェクト】
法線は拡大縮小する方向や、面の向きを調べるヒントになります。また、クリッピング平面はユーザーが指定した軸に垂直な面を表し、コマンドの過程でユーザーが操作を見失わないための助けとなります。
その他
- アンビエントオクルージョンが適用されない:実際には適用されています。アンビエントオクルージョンは、頂点カラーを利用しているため、頂点数が多くないと陰影が出なかったり影自体が出なかったりするのでそう見えます。ローポリモデルでうまく影が付かない場合、一時的にハイポリ状態にしてテクスチャを書き出すなど工夫が必要かもしれません。
操作しにくい
- Q:思ったようなカメラワークにならない → A:常に原点中心のカメラの可能性があります。特定の部位を中心にカメラを設定すると便利です。特定の部位を選択後キーボードの「a」(aim)を押せば切り替わります。
- Q:マウスをドラッグしても少ししか動かない → A:Wings3dの環境設定で Advanced>Drag Preferences,Customize Drag Responseにチェックを入れると、マウスのドラッグ量、拡大縮小度、回転スピードを変更出来ます。遅い<8.5(デフォルト)<速い
この設定は3DジオメトリまたはUVマップのセグメントの編集時に適用されます。
操作不能になる
- ファイルを読込んだ直後、マウスボタン押してもオブジェクト回転できない→(まだオブジェクト認識処理中なので)十数秒待ってみる。または一旦別アプリケーションに切替えてからWings3dにふたたび戻す。
- マウスドラッグで大量の頂点(ポリゴン数10万以上)を一度に移動させると、マウスクリックによる移動完了/取り消しができない→【回避法】Tabキーを押して数値ダイアログを出す、Tabキーを押し続け「OK」までフォーカスを移動させて、リターンキーで確定すると脱出できます。(Windows7でこの現象を確認)
Wings3D側の設定で対処できるケース Edit>Preference...
- 一部のグラフィックボードが引き起こす問題は
Wings3Dの環境設定>Miscタブ Workaround でチェックすることで解決できるそうです。
メモリが足りない環境
メモリ足りない状態で作業を続けると、次の現象が発生するかもしれません。
- MacOSXネイティブのファイルダイアログが出るまでが遅い(数秒〜数十秒):他のアプリに切替えてからWings3Dに戻すとすぐ表示されます。
- ホットキー(ショートカット)による領域選択が効かなくなる(例:Lキーで EdgeLoopや、Gキーで EdgeRing等)
- カーソルキーによる、カメラの移動や回転が効かなくなる
この場合はWings3Dを再起動してください。
使い勝手の向上Tips
制作効率を上げる、制作スピードを上げる、ミスを減らす、便利なアレコレ
スペースキーを活用
Wings3dでは、選択領域は変形コマンド適用後も残り続ける特徴があります。
そのため、
改めてオブジェクトに何か別の処理を行いたい場合は、一旦
スペースキーを押して選択領域を解除する習慣をつけましょう。
間違った領域にコマンドを適用することを防げるので、ミスがかなり減ります。
三面図画像を、ジオメトリウインドウ内に配置したい
読込んだ画像を三面図等の用途で画像を読みたいなら、未選択状態(Shapeモード)で右クリックメニュImage Plane...を使いましょう。
すぐに、板状ポリゴンに画像が貼られた状態で出現します。いちいちUV設定する手間が省けます。
数値入力で、オブジェクトのサイズを変えたい
他のアプリと同じように、数値入力で、オブジェクトのサイズを変えたい場合があります。
例えば、Y方向に高さ3の直方体の柱のオブジェクトがあったとして、高さ入力欄に10と入力すると、オブジェクトの高さも変化するような感じ。
こういう事をしたい場合、該当オブジェクトを選択(または、変更したい面or辺を選択)した状態で、右クリックメニューからabsolute_command > scaleで、絶対座標コマンドのダイアログが出るので、X,Y,Z それぞれのサイズを入力してOKボタン。また、中心座標を0,0,0にすると端に伸びます。
頻繁に使う場合、absolute_command > scale にホットキーを割り当てると便利です。
簡単に図面をトレースしたい
三面図でモデリングする場合、図面を3Dモデラー上でトレースするのは骨が折れます、先にInkscapeやIllustrator上でやってしまうのも、うまい方法です。
Wings3d 1.4.1 では Inkscape のsvg形式 Illustrator8 テキスト形式(.ai)、.eps形式が読込み可能です。
Wings3dで認識可能なデータの作り方を載せたので、詳細は
この辺りを見てください。
ビル群のような散らばったオブジェクト、 上空から見下ろしたときの建物の土台の位置関係や形をSVGやEPSデータで単純に作っておき、Wings3Dへimportさせる方法が早いです。
※Illustrator上で、250mmx250mm以上の範囲にオブジェクトが分布している場合、大きすぎてwings3dのai形式の読み込みが失敗することがあります。その場合、全体の大きさを50%に縮小して保存したものを読込むなどして下さい。
ハードエッジで素早くUVセグメンティング
Wings3dではあらかじめジオメトリウインドウ内のモデルの辺に(Edge|Hardness>hardで)ハードエッジ属性を付けた状態で
UV展開すると、自動的にハードエッジ属性の付いた辺がUV展開のための切り込み(シーム)として認識されます。Body|.UVmapping.→Continue→Unfold
ジオメトリウインドウ内でもシームを把握出来るので便利です。
(※通常はUVセグメンティング時に「Edge|mark edge for cut」コマンドを使ってシームを決めます。この方法ではジオメトリ
内のオブジェクトにはハードエッジ属性は付きません)
自由な位置にオブジェクトを置くには?
3D統合ソフトのBlenderには3dカーソルがありその場所に立体を設置することができますがWings3dにはありません。
ビル群や学校のように棟が点在する建物を素早く作る場合どうしたらいいでしょう?
Wings3dでは、新規立体は必ず原点に配置されるため、もっと手早いやりかたを探す必要があります。例えば....
- Wings3dの流儀でやるなら、作る過程で原点から遠くへ枝や根を張るようにオブジェクトを伸ばし、遠くへ拡散させていく方法があります。
例えば、Extractや、Shell Extrudeコマンドを使うと、遠くへ面の複製や立体を生み出せます。
- オブジェクトを複製する場合、 Object|duplicateコマンドや、 Face|Extract 、Face Put on (あるいは Clone on)コマンドを使う。もし数が分かっている場合は、絶対座標(Absolute position)コマンドの複製コピーを使ってもよいでしょう。
- Object|AbsoluteCommand>Snap MMB , Face|Put on で遠くに移動可能。
- 最も簡単な方法は、建物の配置を上空から見た図を、InkscapeやIllustrator などで、SVGやEPSデータとして作っておきます。Wings3Dでそれを読込ませるやり方です。あとは土台から立体を ExtrudeコマンドでY方向へ面を伸ばしていけば、建物に高さを与えられます。
よく使うコマンド
X,Y,Z軸を考えず、立体をとりあえず移動したい場合は、法線やRegion、任意のベクトルの方向に移動させると良いです。
これらの技はWings3dを使って すばやく制作する助けになります。
マウスの移動距離を少なくしたい。
右クリックコンテキストメニュー上部アイコン(メニューツールバー)を使用する方法があります。
アイコンのサイズは環境設定のInterfaceタブから設定できます。
アンドゥ | 繰り返し | 各選択モード | 選択メニュー | ツールメニュー |
L:Undo,ホイール手前:連続Undo
R:Redo,ホイール奥へ:連続Redo
|
L:繰り返し(ドラッグ入力の反映)
M:繰り返し(入力値の反映
R:繰り返し
ホイール手前:連続 繰り返し
ホイール逆へ:繰り返しを戻す
|
対応する編集コマンドが出現。
頂点/辺/面/全体 選択モード
|
領域選択コマンドのメニューへアクセスできます
L:選択メニューを表示
M:登録した選択領域の呼び出し
R:選択領域の登録
(辺のループ選択/共通領域の抽出等)
|
L:ツールメニューを表示
(整列/バウンディングボックス/バーチャルミラー/Tewak/スカルプモード/アンビエントオクルージョン/コネクトモード/マグネットマスク)
|
ホイールを回す方向により、選択領域拡張、縮小
ホイールを回す方向により変わります。
ホットキーを割り当てる方法
ホットキーとは、メニュー中のよく使うコマンドを、キーボードの特定のキーに割り当てることで、キーを押せばメニューから探さずに一発でコマンドを呼び出せる便利な仕組みです。
メニューの深い階層にあるのもすぐ呼び出せます。
例:X方向へ移動させるコマンド「Move|X」を キー「X」に上書き登録すると、次からキーXを押せばX方向へすぐ移動できるようになります。
ただしWings3dでは、頂点モードでのXキー と 面モードのXキーは別物と扱われるので、すべての要素で同じようにしたいなら、面、頂点、辺、全体それぞれのMove|X コマンドにおいてホットキーXを割り当てる必要があります。
【0.メニューを出す】
使いたいメニューを出します(特定のモードや,あらかじめオブジェクトを出したり、要素や選択した状態でないと出現しないメニューもあります) サブメニュー内の項目も同じです。
.
【1:ホットキー登録モードにする】
メニュー項目をハイライト表示(選択して色がついている)状態で、かつマウスカーソルが項目上に乗っている状態にします。
その時に、キーボードの「Insert」キー、または「/」キー(Macの場合はこれ)を押せば、ホットキーの登録を開始します。
.
【2:コマンドの中のどれをキーに登録するかを決める】
Wings3dは、コマンド1つにも、いくつか別バリエーションが存在するものもあるので、どれを割り当てるかマウスボタン押下で決めて下さい
一つしか機能のないコマンドはそのまま、次のステップ:キー入力ができます。
別バリエーションのある場合 L(左クリック)コマンドの基本機能, M(中クリック)別バリエーション,R(右クリック)で別バリエーション。
ASKはダイアログが出るという意味です。
.
【3:割り当てたいキーを入力】
ここで、割り当てたいキーを入力して下さい。
ファンクションキー、英数字、または英数字とSHIFT,CTRL,Altキーの組合せが入力できます。
視点変更のX,Y,Zキーを上書きして、XYZ方向への移動に割り当てたりすることも可能ですが、
最初から割り当てられているキーものを避けて、何も割り当てられてないキーを使う方法もあります。
例として、Wings3d v1.4.1現在 何も割り当てられてないキーと組合せを紹介します。
F8,F9,F10,F11,F12, H,J,K,M,N,P,T,[,],@ それと, .
Alt +0〜9
CTRL+0〜9
もし既になんらかの機能がキーに割り当てられていた場合でも、情報を上書きするか聞いてきます。いやならNO。
.
【4:現在割り当てられているキーの確認】
キー入力が完了すると、メニューにホットキー表示が出ます。
奇妙なマークは、修飾キーの組合せを意味していて、上から順に
CTRL+X
SHIFT+Y
Alt+Z
を意味します。Macの場合はcommand マーク(四葉マーク)もあります。
次からこれを入力すると、メニューの奥深くにある項目でも一発で呼び出せます。
また、ツールバーの Help>Difined Hotkeys を選択すると現在割り当てられているホットキーの一覧をみることができます。
全モードで実行可能なもの、特定のモードで実行可能なもの等、カテゴリ分けされています。
.
【5:ホットキーの解除方法】
メニュー項目を
ハイライト表示(選択して色がついている)状態で、かつマウスカーソルが項目上に乗っている状態にします。
その時に、キーボードの「Del」キー(Mac)、または「Delete」キー(Windows)を押せば、ホットキーの取り消しができます。
ダイアログが出て、消したいものをすべてチェックして、「OK」
再びメニューを開けば、ホットキー表示が消えます。
なお、初期設定ファイルを削除するとホットキーも全部元の状態になります。
何度もメニューを選ばず快適に操作したい。
(※慣れた人向けのTips)
Wings3Dの階層型コマンド方式は、何をするにも右クリックメニューから何度も選ぶので面倒にみえます....。
できるなら、もっと楽に操作したいですよね。たとえば、同じコマンドを繰り返す場合はホットキー(ショートカットキー)やRepeatコマンドで行うと楽です。
それからWings3dには、一旦コマンドを選べば、
最終的な変更の確定前ならカメラモードとコマンドを出入りできます。編集のプレビューを様々な角度から眺めて実行することでミスを減らし、二度手間を避ける工夫になります。
まず
Wings3dの移動回転コマンドには次に挙げる2種類があります。
- 座標軸に依存するもの(X/Y/Z/Planner)例:Move>X は、どんなに視点を変えてもX方向にオブジェクトを移動させることができます。
- 現在のカメラ視点に依存するもの(Free)例:Rotate>Free 今みてる視点平面を基準に座標軸無視でオブジェクトを時計回りに回転
カメラ依存の回転機能は、いいかげんなカメラ視点だとフリーダムな挙動を示しますが、視点の位置を正しく意識するだけで便利なツールに変わります。
これらのことを念頭において、次の説明をみていきましょう。
●カメラモードの入り方
- デフォルトでは、コマンド実行中(結果の確定前)に、マウスの中ボタン押せばカメラモードに入れます。
- カメラモードでは、ボタンを押さずマウスを動かすだけで、視点が変わります。
- 視点を変えたまま、カメラモードから出るには、マウスの左ボタンを押せば、コマンド実行(編集の確定前)に戻れます。
- やっぱり元の視点がいいやという場合は、マウスの右ボタンを押してください。
●そして視点をこまめに切替えることで、手数を減らせます
- 3D表示のGeometoryウインドウ内左下にある XYZの方位表示を手がかりにする
- View>View Along から垂直なカメラ視点に出来る。
対応ショートカットキー:X,Y,Z, SHIFT+X, SHIFT+Y, SHIFT+Z
- Move>Free (マウスの上下左右移動が、Geometry画面みたままの上下左右移動に対応する )
- Rotate>Free (マウスの左右移動が、Geometry画面みたままの回転移動に対応する )
ここでのポイントは、いい加減な変更を防ぐために、Move>Free, Rotate>Freeを使う場合カメラ視点の切替は厳密にすることです。
●作業量の比較。
例えば、オブジェクトを(X,Y,Z)方向に移動させたいとします。
- カメラモードを活用せず。Move>X → Move>Y → Move>Z (移動方向を決めるたびにメニューを開く、3クリックx3回)
- カメラモードを活用する。Move>Free → 視点をXYZ方向切替えながら移動させる
(初回だけメニュー開く 3クリックx1回、あとはカメラ切替のためのクリック )
視点基準のコマンドとカメラモードを活用すると、メニューに妨げられずに編集作業に集中できます。(単純比較で3倍の差)
細かな位置編集など、こまめに移動、回転が必要な場合に役立つかもしれません。
動作スピード向上や問題解決
- Wings3dの英語版では、 Help>PerformanceTips にて効率よい制作ヒントについての文書(英語)が表示されます。
- マウスのドラッグ量と方向(上下/左右)で移動量が決まります。
- 2辺を選択して C , 2頂点を選択して C キーを押すと、素早く面を分割したり、頂点を結べます。
- ファンクションキーや一部のホットキーが効かない(例:修飾キーを使用しない V,E,F,B,F1,F2,C ):Caps Lockを無効にすると治ります。
- 辺や頂点などを頻繁に移動させるなら正面表示を切替え(x,y,zキー)ながらTweakで移動させるとよいです。
- 対称物を作るなら、ミラーモードが便利。
- Wings3dのGeometryウインドウの上に他の内部ウインドウが重なると実行速度が極端に下がります。
- Wings3dの一番外側の(OSネイティブの)ウインドウを広くしすぎると実行速度に影響がでます(遅い環境で顕著)。
- 未使用テクスチャ,マテリアルが保存されない;File>Save UnUse Materialにチェックを入れ保存する。(v1.2時点)
- Wings3dで大量のポリゴンを処理する際に、意外と重い動作、オブジェクトをグルーブ化するSeparate, Combine。
- 他には マウスドラッグによる矩形選択が割と重い。
- smoothプロキシをかける。
- 7万FaceにTesselate→ untrianglate 3分以上?
- Wings3dで画像を読込む時、そのサイズは縦横が2の累乗の数の組合せでないとダメ
(例:128x256 ,256x256, 512x512 , 1024x512, 1024x1024 ピクセル)。
これはOpenGLの仕様で、これを無視すると画像が上手く読込めなかったり、真っ黒なテクスチャになります。
ファイル読込み速度
ファイル読み込み速度は、グラフィックボードの性能を上げても劇的には変わらない。
- Wings3dで重いデータを編集する場合は素直にWings形式で扱いましょう。他フォーマットのファイルではかなり遅くなります(3dsよりobj形式が若干速い)>比較結果(参考)
※Intel Core i5 以上のCPUを持つPCであれば、快適です。(頂点数10万程度でも 読込みが15秒くらい)
※ハイポリゴンのデータならば、Dual Coreでは頂点数6万以上(6MB)になると重くなります(読み込みは 1分くらい)。
※Erlangで動作するのでCPUコア数が多ければ並列処理速度が上がるのでは?いう話もあります(未確認)。
※3ds形式のファイル読み込みは、Intel Core i5 以上のCPUを持つPCであれば 早いです。
Erlang関連メモ
※注意;ここから下の文章はプログラミングをかじった方向けの内容です。
Wings3Dを普通にモデラーとして使っている方は読み飛ばしてOKです。
内部の仕組みを覗いてみたり、 Wings3Dをより便利にするプラグインを作るにはどうすればいいか...という書きかけの内容です。
Wings3dの内部へアクセスするため、データを壊さないためにも、読んでてさっぱり意味が分からないと思ったら試さない方が安全です。
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は、オブジェクトの頂点や辺などのデータを
ウイングドエッジデータ構造として管理しています。
Wings3Dの内部構成についての、日本語の情報は
yst memoさんが詳しいです。
・
Wings3d Coding Guildelineを
要約してみました。(日本語)
・Wings3d v1.1 (2009-06-27)以降、辺や頂点データの格納には gb_treeではなくarrayを使用しています。古い情報をあたるときは注意してください。
Wings3d v1.1 (2009-5-17)ではエッジデータをarray で管理することになった。
Wings3d v1.1.xy(2009-5-23〜)では 面と頂点のテーブルをarray で管理することになった。
Erlang言語って何?
Wikipedia - Erlang
Erlang land (日本語)Erlangの基本的な使い方の情報があります。基本構文、データ構造、関数の書き方、beamファイルの作り方、パターンマッチ
Erlang クエックブック(日本語) より高度な内容
Erlang World(日本語)インストール方法から、並列処理まで色々
参考文献:『プログラミング言語 Erlang入門』,柏原正三著, ASCII
また、Wings3d本体には、Erlang言語をすぐに試せる、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 環境が内包されているので、手っ取り早くそれを使う事にします。
※Erlangコンパイラは入ってません、yst memoさんの記事を参考に試したところ、
Erlang R13bの場合は本体をダウンロードして/Desktop/otp_src_R13B04/lib/ 内にある compiler というディレクトリを
Wings3D1.2.app/Contents/Resources/lib ディレクトリへコピーすると、Wings3DのErlang Shellでも c()モジュールが使えるようになります。
なお、今回は.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の公式ページから Source のリンクを辿ってダウンロードしてください。
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コードを読解するための手がかり。
- 一部のプラグインのメニュー構築に、再帰関数や無名関数が使われている。
- Wings3dの辺や頂点データはバージョン1.1以降arrayで管理されている。
- Erlangのモジュール、関数の作成方法、パターンマッチ、変数の束縛
- Erlangのマクロ定義と記述
- rr().関数は、レコードデータを読む(ReadRecord)
- Erlangの変数は英大文字かアンダーバーから始まる。
- 小文字の変数はアトム:「名前が値がそれ、値そのもの」を表現するデータのこと。列挙体 英小文字から始まる、または「'」で囲まれる文字列。例:true, false
- Erlangの束縛。 (A = B: AはBに入りますか?→条件にマッチしたら入る)
- 変数の束縛(変数は値が決まったら、それ以降は変更できなくなる→もし値を変えたいなら、そのつど結果を入れるための新しい変数を作成する)
- 文字列は「"」で囲まれる
- レコードと、タプルとリストの違い→ { } , [] (変更不可)
- Erlangの関数は群体型、マッチする条件は最初の方限定的で、一番最後が最もゆるい条件、一番終端の関数から上へ読むとわかりやすい。
- バイナリデータ → << 〜 >>
- リスト内包表記 → <-
- リストの追加、削除、分割、リストの先頭を追加する方法→ ++ , --,[ Head | List ]
- 単一のアンダースコア 「_」は無名変数で、任意の値でマッチするが。その結果は取り出せない、またコードの書き手はその値には興味が無いという意味を持ちます。
- ソースコードから、wings_intl.hrl,wings.hrlの内容もあわせて読んでおけば理解が進みやすいかもしれないです。
wings.hrlの「The Winged-Edge data structure」にはデータ構造レコードの説明があります。
- ガード → 関数のパターンマッチを補助する仕組み、when 以下条件をさらに絞り込められる,複数可能。
Wings3Dのソースコード中によく登場する ?__( 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言語の構造体と似ている。また名前付きのデータ領域として利用できます。
※Wings3d v1.1 以降、内部エレメントデータの格納には gb_treeではなくarrayを使用しています!次の情報は古いので注意してください。
<ソースは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(General Balanced Trees 平衡ツリー)データ、sel はLISTデータであることがわかる
平衡木とは 【balanced tree】 - 意味/解説/説明/定義 : IT用語辞典
5行目は We というのは(
Wingd-
edgeの略で) 1つの稜線に接続する辺や頂点に関するデータを束縛するものです。
6行目は Winged-Edgeデータのうち、vpにリストされたデータの値をVsに束縛すると思われる。
まだまだ不明な点が多いです。
Wings3Dのプラグインを開発する方法
いまのところ、2種類の作成方法が見つかっています。
注意: 最新の Wings3D v1.3.1 は、Erlang(OTP/R14)以降で動作します。もし古いErlangのバージョンを使ってるなら make時に ./array.erl:253: function error/1 undefined というエラーが出ます。
また Wings3D v1.3.1以降 は Intel Macのみで動作するようです。
その1:Wings3D内のErlangShell上でプラグインをコンパイル | その2:Wings3Dソースコードと一緒にプラグインをコンパイル |
必要な物:
ソースコード一式(Erlang , Wings3D )
・makeやinstall必要なし、必要なファイルを拝借するのに必要。
Wings3Dアプリケーション(※Erlangソースコードからcompilerモジュールを持ってくる)
ターミナル.app (ターミナルを起動して、bashで作業するため)
|
必要な物:
ソースコード一式( Erlang ,SDL ,esdl ,Wings3D )
・Erlang,esdl,Wings3Dは、ビルド、makeし、インストール済であることが条件
・SDLは、ビルド、makeし、Home以下にインストールしてあることが条件
ターミナル.app (ターミナルを起動して、bashで作業するため)
|
あまり手間がかからない。
Wings3D内にあるErlang Shell上で、プラグインをコンパイルする。
ただし、初期状態ではコンパイルする機能c()は使えないのでErlang言語本体から拝借する。
また、bashでpathを通しておきWings3Dと対話できる状態にしておく。
システムにインストールしないので手軽そうですが、正式な方法ではないのでリスクがあります。
|
準備に時間を要する
例えば、Wings3Dをビルドするとき、デフォルトプラグインに紛れさせて一緒にコンパイルさせる。
Makefileへ設定を追加してから、コマンドライン上(bash) から make するだけ。
前準備のインストールが大変ですが、正式な手順で作成されます。
|
なお、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
その1:Wings3D内のErlangShell上でプラグインをコンパイルする方法
あらかじめ、Erlang本体ソースコードのディレクトリから compilerを拝借してWings3Dへ入れておきます。
- とりあえず、作ったプラグインのソース モジュール名.erlをホームディレクトリ直下へ置いておく。
- ターミナル.appを起動
- bashに一時的にPathを通して、Wings3Dと対話できるようにしておく。
- ErlangShell が立ち上がるので、ErlangShell上でコンパイルのためのコマンドを入力
c(モジュール名). %% (モジュール名部分は、ファイル名から拡張子を除いた名前)
カレントディレクトリ(デフォルトではホームディレクトリ直下)を確かめておくこと。
- このとき、プラグインがソース中でヘッダファイルをincludeしている場合は別途、ヘッダファイルを用意する。
これらはWings3Dソースコードにある、例えば「wpc_ex1.erl:122: can't find include file "e3d.hrl"」という
エラーが出たら、それらファイルを Wings3Dのソースコードのe3dディレクトリから拝借して、 いまコンパイルしようとしているソースコードと同じ場所にコピーしておきます。
それで、もう一回c()を実行してみる。
Erlang Shell上でのコンパイルと Include path
通常 c( ) を使ってerlファイルをコンパイル場合は、 erlファイル内でinclude されているヘッダファイル(.hrl)を
同階層のディレクトリにおけば自動的にinclude されます。
もし、他の場所に .hrl ファイルがある場合は、c()関数のオプションに、その場所のディレクトリパスを指定すると、走査されます。
タプル{}を追加することで、複数の場所を指定することが出来ます
wpc_ex1.erl
include_directory_path/e3d.hrl
include_directory_path/e3d_image.hrl
このように、別ディレクトリにIncludeすべきファイルがある時には、Erlang Shell上では、
compile:file("wpc_ex1.erl",[{i,"./include_directory_path/"}]).
または、
c ("wpc_ex1.erl",[{i,"./include_directory_path/"}]).
のように書くとコンパイルが通ります。
これでおしまい。あとは、Wings3Dでプラグインをインストールするために、beam ファイルを指定します。
その2:Wings3Dソースコードと一緒にプラグインをコンパイルする。(ただし、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つのファイルとして保存されます。
エラーログ
Wings3Dで内部エラーが出たときアプリケーションがクラッシュせずに、Geometryウインドウをクリックすることでで、何事も無く続行できます。
このとき、Users/ユーザー名/wings_crash.dump というテキストファイルにエラーログが吐き出されます。その内容は、エラー報告の時に役立ちます。
ログには、実行経過を記録したスタックトレース情報が保存されます。 (Short stack trace と、 Long stack trace)
エラー発生した関数と引数、そして呼び出し元の関数をどのくらい経由していたのかがわかります。
トレースデータは一番先頭から 2,3行くらいの内容が重要だそうです。
エラーについての情報は、
Erlang実験室:分かりにくいと評判のErlangエラーのまとめ - 檜山正幸のキマイラ飼育記
が詳しいです。
エラーの例↓
Wing3D1.3.0.1にて、Geometryウインドウにあるメニューから Window>Tewak_palette を出そうとしたところ、エラーが発生した。
Dump written 2010-4-20_22-17
Version: 1.3.0.1
Window: geom <----- Geometry ウインドウの操作中に発生
Reason: function_clause <-----エラーの原因 呼出時にマッチする関数節 が見つからない とのこと
Short stack trace:
[{wings,command_1,2}, <----------- 最後に、この関数、 wingsモジュールに存在する wings:command_1/2 関数(引数2)でエラーが出た
{wings_develop,time_command,2},
{wings,raw_command,4},
{wings_wm,handle_event,3},
{wings_wm,send_event,2},
{wings_wm,do_dispatch,2},
{wings_wm,get_and_dispatch,0},
{wings,init,1}]
Long stack trace:
[{wings,command_1,
[{window,tweak_palette}, <----- 引数に渡された内容。
{st,{0,nil},
face,false,[],
{0,nil},
none,
{1,
{default,[{maps,[]},
{opengl,[{ambient,{1.0,1.0,1.0,1.0}},
{diffuse,{1.0,1.0,1.0,1.0}},
{emission,{0.0,0.0,0.0,0.0}},
{shininess,1.0},
{specular,{1.0,1.0,1.0,1.0}},
{vertex_colors,set}]}],
nil,nil}},
[],undefined,true,1,none,none,
{0,{}},
{0,nil},
ignore,none,none,
{ignore,ignore},
{window,tweak_palette},
{[],[]},
true,[]}]},
{wings_develop,time_command,2},
{wings,raw_command,4},
{wings_wm,handle_event,3},
{wings_wm,send_event,2},
{wings_wm,do_dispatch,2},
{wings_wm,get_and_dispatch,0},
{wings,init,1}]
Argument #2:
参考:
Not a programmer but want to help? - PROGRAMMING - Wings - Wings3D - Official Development Forum - Message Board Yuku
未整理のメモ
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)-------これは他のアプリケーションを最前面に切り替えてから、Wings3Dに戻ると表示される。