2010年12月30日木曜日

modo 501: カラーピッカー

modo 501の新機能の中では若干地味な存在ですが、非常に実用度の高い機能の一つにカラーマネージメントの改善があります。ヨーロッパのmodo Roadtripでも最もディスカッションが多かったテーマの一つです。
modo 501では、プリセットブラウザが拡張されカラーをプリセットとして取り扱えるようになりました。チームでCG制作をする場合や異なるコンピュータで仕事をする場合、そのシーンで使用するカラーを共有したい場合があります。カラーがプリセットファイルとしてファイルシステム上で個々に保存できるようになりましたので、LAN上の共有サーバーやDropboxなどのクラウドサーバーなどにカラープリセットを共有する事が可能です。カラープリセットのファイルは、下記のような単純なテキストファイルですので、他のシステムからも簡単にコンバートすることができます。
#LXColor#
RGB .365 .541 .659

カラーピッカーのインターフェイスも大幅に改善され、カラーモデルもRGB、HSV、ケルビンが用意されています。また、0.0-1.0の範囲外のハイダイナミックレンジのカラーもこのピッカーを使用して設定が可能です。カラー数値の単位も浮動小数点数、整数、16進数、パーセンテージなどを選択することができます。

HSVのオプションには、ルールという選択しているカラーに対応する関連カラーを同時に選択するオプションがあります。例えばこのHSVのルールオプションを補色(Complementary)にするとHSVパレットの円対称位置にある補色が同時に選択されますので、暖色とそれに対応する寒色が同時に欲しいときなどに便利です。その他、類似色相(Analogous)、3色配色(Triadic)、4色配色(Tetradic)、混合(Compaund)、明清(Tints)、陰影(Shades)などがあります。

カラーモデルは、RGB、HSV以外には色温度を指定するケルビン(Kelvin)が用意されていますが、modo 501ではカラーモデルをユーザーがカスタマイズできるようにSDKによる拡張を可能にしています。modo 501のSDKは、大幅にアップデートされています。SDKに関しましては、改めて解説していきたいと思います。

2010年12月27日月曜日

modo 501: ワークフローとユーザーインターフェイス

modo 501で新しくなったワークフローとユーザーインターフェイスに関してはmodo 501 Tour に紹介されています。RayGLなどはmodo 501を入手して直ぐに試されたのではないでしょうか。レンダリングされた画面のポリゴンを直接モデリングができるのは不思議な感覚ですよね。プレビューウィンドウを開かずに作業画面上でレンダリング結果を見ながらモデリングやペイントの作業ができるのは便利です。RayGLに関しては、初期設定パネルにレンダリング方法の細かい設定オプションがあります。また、カメラビューで設定されているカメラがレンダリングで使用するカメラの場合、ビューの中央下に"Render Camera"のラベルが表示されますので、複数のカメラを持っているシーンではちょっと便利な機能です。

その他、modo 501で改善されたワークフローの幾つかを紹介します。
3Dトラッキング
前回のブログでも紹介しましたが、レイアウト中央下にあるマウスカーソルの位置情報などを表示する3Dトラッキングの情報が少し賢くなりました。modo 401までは、マウスカーソルの物理的なポジション情報だけを表示していましたが、modo 501では選択タイプごとにもう少し有益な情報を提供するようになりました。下図のビューはポリゴンモードでマウスカーソルをポリゴン上に移動したときの表示です。マウスカーソルの下にあるアイテム名称、ポリゴンの種類、ポリゴンのバウンディングボックスのサイズ、マウスカーソルが置かれているポリゴン上の座標値が表示されています。

その他の選択モードでは、下記のような情報が表示されます。
頂点モード
- マウスカーソルの下にあるアイテム名称
- マウスカーソルが置かれている頂点の座標値
エッジモード
- マウスカーソルの下にあるアイテム名称
- マウスカーソルが置かれているエッジの座標値
- マウスカーソルが置かれているエッジの長さ
マテリアルモード
- マウスカーソルの下にあるアイテム名称
- マウスカーソルが置かれているポリゴン上の座標値
- マウスカーソルが置かれているマテリアル名称(もしくはパート名称)
アイテムモード
- マウスカーソルの下にあるアイテム名称
- マウスカーソルが置かれているアイテムの名称
- マウスカーソルが置かれているマテリアルの種類
プロジェクトディレクトリ
プロジェクトディレクトリは、プロジェクトで使用するシーン、画像などのディレクトリを作成したり、切り替える機能です。システムメニューのFileメニューにある"New Project..."を使用すると新しいプロジェクトディレクトリを作成することができます。"Choose Project..."を使うと現在使用している違うプロジェクトに切り替えることができます。(※ 日本語メニューでは「プロジェクトを閉じる」になっていますが「プロジェクトの選択」の誤訳です)
"New Project..."で、Templateを"modo Standard"を選択して新しくプロジェクトを作成すると入力したプロジェクト名称のディレクトリが選択したディレクトリの下に作成され、その下にTemplateに基づいて"Images", "Moves", "Renders", "IrradianceCache", "Scenes"などのサブディレクトリが作成されます。これらはシーンで参照するテクスチャ画像の保存場所やレンダリング結果の保存場所などに対応しています。また、このプロジェクトディレクトリの下にはmodoが各サブディレクトリを認識するための情報が保存されている.luxprojectというテキストファイルが同時に作成されます。
Movies  (シーンで使用するムービーファイル)
Images  (シーンで使用する画像ファイル)
Renders/Frames  (シーケンスレンダリング結果)
Renders/Movies   (ムービーレンダリング結果)
IrradianceCaches  (放射照度キャッシュ)
Scenes  (シーンファイルの保存場所)
上記のサブディレクトリは、リソースディレクトリにあるprojdirstandard.cfgというコンフィグファイルに定義されています。カスタムのテンプレートを作成したい場合は、このコンフィグファイルを元にカスタマイズしたテンプレートをユーザーコンフィグディレクトリに置いておくと次回から"New Project..."のTemplateに出てきます。modo 501からユーザーコンフィグディレクトリは、システムメニューのSystemメニューにある"Open User Configs Folder"からデスクトップに開くことができるので便利です。
下記がカスタマイズしたテンプレートの1例です。残念ながらmodo 501ではテンプレートを作成するための専用エディタはまだ用意されていませんのでテキストエディタなどを使って編集する必要があります。"Association"は、modoが認識しているファイルの種類でデフォルトの検索場所を指定することができます。ちなみに"mdd"は、明文化されていませんがMDDファイルのディレクトリです。"Documents"などのように任意のディレクトリを定義することも可能です。
<atom type="ProjectTemplates">
<!-- User Strings -->
<hash type="TemplateInfo" key="mytemplate@en_US">
<atom type="UserName">My Projects</atom>
<hash type="PathInfo" key="scenes">
<atom type="FolderName">Models</atom>
</hash>
<hash type="PathInfo" key="images">
<atom type="FolderName">Images</atom>
</hash>
<hash type="PathInfo" key="docs">
<atom type="FolderName">Documents</atom>
</hash>
<hash type="PathInfo" key="mdd">
<atom type="FolderName">Mdd</atom>
</hash>
<hash type="PathInfo" key="irradiancecaches">
<atom type="FolderName">IrradianceCaches</atom>
</hash>
<hash type="PathInfo" key="renders">
<atom type="FolderName">Renders</atom>
</hash>
<hash type="PathInfo" key="renders/frames">
<atom type="FolderName">Frames</atom>
</hash>
</hash>
<!-- Definition and Hierarchy -->
<hash type="Template" key="mytemplate">
<hash type="Path" key="scenes">
<list type="Association">scene</list>
</hash>
<hash type="Path" key="images">
<list type="Association">image</list>
</hash>
<hash type="Path" key="irradiancecaches">
<list type="Association">irrad</list>
</hash>
<hash type="Path" key="mdd">
<list type="Association">mdd</list>
</hash>
<hash type="Path" key="renders">
<atom type="Path">Renders</atom>
</hash>
<hash type="Path" key="docs">
<atom type="Path">Documents</atom>
</hash>
<hash type="Path" key="renders/frames">
<atom type="Parent">renders</atom>
<list type="Association">image@render</list>
</hash>
</hash>
</atom>

2010年12月25日土曜日

modo 501: Pixar サブディビジョンサーフェイス

Luxology社からmodo 501がリリースされました。リリースの概要は、modo 501 機能紹介ツアーのページで紹介されています。modo 501で新しく追加された機能や改善された機能をもう少し詳しくこのブログで紹介していきたいと思います。
最初に紹介する新機能は、Pixarサブディビジョンサーフェイスです。modoには、最初のバージョンからサブディビジョンサーフェイスが搭載されています。今回追加されたPixarサブディビジョンサーフェイスは、このオリジナルのサブディビジョンサーフェイスを置き換えるものではなく、新しいポリゴンタイプとして実装された物です。デフォルトのサブディビジョンサーフェイスは、あくまでもオリジナルのサブディビジョンサーフェイスで、面ポリゴンからPixarサブディジョンサーフェイスに切り替える場合は、TABキーの代わりにSHIFT-TABを使います。

Pixarサブディビジョンサーフェイスには次のような特徴があります。
- Catmull-Clerkアルゴリズムを使用したサブディビジョンサーフェイス
- セミシャープクリースにより、繊細な丸めを持つエッジの表現が可能
- 歪みのないUVテクスチャマッピング
- サブディビジョンレベルは、4のべき乗
- 異なる境界ルールのサポート
- 新しいFBX入出力プラグイン(FBX 2010.2)を使って、サブディビジョンサーフェイスとセミクリース情報を交換
セミシャープクリースは、エッジウェイトを使用して繊細に角が丸くなったエッジの表現を可能にします。オリジナルのサブディビジョンサーフェイスを使った場合は、エッジウェイトを使わずにエッジの近辺をスライスを加える方法が常套手段でした。このセミシャープクリースは、サブディジョンレベルに依存します。より、繊細なエッジの丸めを作るためには、サブディジョンサーフェイスを高くする必要があります。

また、エッジウェイトを使用していた場合、オリジナルのサブディビジョンサーフェイスでは、UVがゆがんでしまうケースがありました。Pixarサブディビジョンサーフェイスでは、エッジウェイトを使用しても歪みのないUVマッピングを行う事ができます。


一つ気をつけなければならないのは、サブディジョンサーフェイスの分割レベルの取り扱い方がオリジナルのサブディビジョンサーフェイスとPixarサブディビジョンサーフェイスとでは異なる点があります。オリジナルのサブディビジョンサーフェイスの分割レベルはリニアに分割が行われますが、Pixarサブディビジョンサーフェイスの分割レベルは階層的に行われます。分割数をあげすぎると急激に内部のポリゴン数が増えてしまうので注意が必要です。
オリジナルサブディビジョンサーフェイスの分割
Pixarサブディビジョンサーフェイスの分割
また、Pixarサブディビジョンサーフェイスには、メッシュのプロパティに境界ルール(Boundary Rules)というアトリビュートが追加されています。これは、閉じていないポリゴン形状をサブディビジョンサーフェイスにした場合、境界のエッジ部分をどのように表現するかを決めるアトリビュートです。たとえば、四角形を一つ作ってTABを押すとサブディジョンサーフェイスの形状は丸くなります。Pixarサブディビジョンサーフェイスでは、境界ルールを"Smooth All"と"Crease Edges"の場合丸くなり、”Crease All"の場合は四角くなります。下記が境界ルールの違いです。デフォルトは”Crease All"です。利用状況によって使い分けることができます。
• Smooth All: 全ての境界上のポジションはスムースルールに基づいて移動されます。
• Crease All: 2つのエッジが接続されているポジションはクリースルールによって移動され、それ以外の境界上のポジションは二つの境界エッジによってスムース化されます。
• Crease Edges: 2つのエッジが接続されているポジションはスムースルールによって移動され、それ以外の境界上のポジションは二つの境界エッジによってスムース化されます。

Pixarサブディビジョンサーフェイスには、上記のような優れた点がありますが、オリジナルのサブディビジョンサーフェイスにも下記のような利点がありますので状況に応じて使い分けることをお勧めします。
オリジナルのサブディビジョンサーフェイスの優れた点
- データ構造がシンプルなため、消費メモリーが少ない
- 既存のSDSモデルとの互換性
- サブでビジョン分割レベルがリニアなので制御しやすい
- アダプティブサブディジョンのサポート
最後にmodo上のモデルがオリジナルのサブディビジョンサーフェイスなのかPixarサブディビジョンサーフェイスなのかを区別するには次のような方法があります。これに関してはもう少し改善の余地があるかもしれません。
- 情報と状態(Info & Statistics)のポリゴンタイプで判別する
- ポリゴンモードでマウスカーソルの下にあるポリゴンの種類が画面中央下の状態パネルに表示されます
- 初期設定パネルでポリゴンタイプごとに選択ロールオーバーの色を変更することができます