2012年3月1日木曜日

modo 601: レンダーブーリアン

modo 601のレンダリング関連の新機能の中で、クリッピングプレーンとレンダーブーリアンは、直ぐに試したみたい楽しい機能だと思います。これらの機能は、機械の内部の部品や建物の部屋を外側からくり抜いてレンダリングしたいような用途で便利な機能です。

従来の方法では、モデリングのレベルでブーリアンやスライスを使って、形状の一部を切り取ってから、断面の処理を行いレンダリングする必要がありました。クリッピングプレーンとレンダリングブーリアンは、どちらもこの処理をレンダリングのレベルで行うため、非常に高速かつ柔軟に切り取りができます。また、全ての設定はチャンネル値としてコントロールできますので、形状が切り取られていく様子をアニメーションとしてレンダリングすることができます。

クリッピングプレーンとレンダーブーリアンは、内部的には同様なテクノロジーに基づいていますが、設定方法が異なります。クリッピングプレーンは、カメラの全面にクリッピングを行う平面を設定し、カメラからの距離で平面を定義します。これに対し、レンダーブーリアンは、レンダーブーリアンアイテムを追加し、立方体、球体、円柱もしくは任意の閉じた形状で論理演算を行います。どちらの方法でも削り取った断面に対してマットカラーを設定することが可能です。





modo 601の新機能

Luxologyからmodo 601が発表されました。modo 501のリリースから14ヶ月ぶりのメジャーリリースです。日本時間で本日の午前2時から、Twitter上でBrad Peeblerさんによるイベントが行われ、Luxology.comでは本日から発売開始になっています。また、IGES、STEPなどのCADファイルをmodoに読み込むためのプラグインCADローダーも本日から発売です。今回のリリースは、非常にバラエティに富んだ新機能がたくさん盛り込まれています。下記はmodo 601の主な新機能です。



キャラクターアニメーションとデフォーマ
今回の最大のハイライトは、キャラクターアニメーションとデフォーマです。フルタイムインバースキネマティクスの搭載、キャラクターのポーズを作成するためのスケルトンツールとポーズツールを始め、デフォーメーションではウェイトやモーフデフォーメーションはもちろん今までモデリングツールとして使用していた様々なフォールオフをデフォーマとしてアニメーションで使用できるようになりました。また、スカルプティングやペイントツールもポーズベースアニメーションの編集ツールとして機能します。既存のツールが拡張されてキャラクターアニメーションのツールとしても使用できるようになったのはmodoらしい進化ではないかと思います。もちろんmodo 501で搭載されたリグの機能もキャラクターアニメーションの制作で真価を発揮します。

ダイナミクス
リジッドボディダイナミクスプラグインのrecoilが、ソフトボディダイナミクス機能を搭載してmodo 601の標準機能として組み込まれました。Bullet Physicsのソフトボディダイナミクスエンジンをサポートすることで、今までできなかった柔らかい布のシミュレーションや弾性体のアニメーションが可能になりました。布のシミュレーションは、エンタテイメント向けのアニメーションだけでなく、テーブルクロスをテーブルに掛けたり、カーテンや洋服のモデル制作など多目的に使用できます。

パーティクルとボリュームレンダリング
modo 501では、パーティクルはリプリケータの位置情報として使用されていました。modo 601では、パーティクルは様々な用途で使用されるようになりました。パーティクスサーフェイスジェネレータでは、アルゴリズムでダイナミックにパーティクルを生成し、ブロブス(メタボール)やスプライト、ボリュームアイテムのパーティクルソースとして使用されます。また、RealFlowの連番ファイルもパーティクルのソースとして取り込むことも可能です。

レンダーパス
レンダーパスは、レンダリングのワークフローを大幅に改善します。この機能が一番嬉しいというユーザーの方も多いと思います。通常、あるシーンのレンダリングを行う場合、様々な角度から設定を変更して、レンダリングのテストやレンダリング画像の派生版を作成します。従来は設定を変更したシーンを別々に保存したり、キーフレームを利用して各キーに異なるチャンネル値を設定したりして、シーンを管理していました。レンダーパスはこれらの設定をmodoが一元的に管理するシステムです。レンダーパスにより、レンダリング設定の管理が簡単になります。

リトポロジー
モデリングでは、3Dスキャナでスキャンしたモデルやディスプレースメントなどで作成した高密度のモデルデータから、少ないポリゴン数の綺麗なトポロジーを持ったモデルを再構築するためのワークフローが大幅に見直されました。Topoレイアウトには、背景メッシュの上から新しいポリゴンを見やすく表示するためのトポロジー表示モードが用意されています。また、新しいトポロジーペンには、ポリゴンメッシュを連続して構築していくために必要な便利な機能がオールインワンで用意されています。

レンダリング
レンダリングにもたくさんの新機能が追加されました。クリッピングプレーンとレンダーブーリアンは、レンダリング対象の内部の様子をくり抜いて描画する強力な機能です。たとえば、機械の内部で部品が動いている様子や建物の中の部屋を外側から部分的にくり抜いてレンダリングすることができます。ラウンドエッジは、鋭角なエッジに丸めを付けてレンダリングする機能です。レンダリングレベルで丸め操作を行いますのでモデルデータを複雑にせず高速に繊細な丸めを持ったエッジがレンダリングできます。その他、スキン、ヘアー、セル、ハーフトーンなどのシェーダーも追加されています。

レンダーウィンドウ
modo 601を初めて使ったときに、最初に目につくのが新しいレンダーウィンドウではないかと思います。レンダリングを行ったときに表示される従来のレンダーウィンドウは、レンダリング画像と要約されたレンダリング情報の表示、レンダリング画像の保存だけでした。新しいレンダーウィンドウは、レンダリング結果の比較、画像処理、レンダリング画像の解析、レンダリング結果の詳細表示など、多くの機能を持った新しいレンダーウィンドウとして作り直されました。非常に強力です。

上記は新機能の一部で、まだまだたくさんの新機能が搭載されています。Luxology TVには、TwitterイベントでBradさんが紹介した機能のビデオがアップされています。個々の機能の紹介は、このブログ上でできるだけ紹介していこうと思います。







2011年12月31日土曜日

FBX形式


FBXは、Autodesk社の3DCGシーンデータを交換するための中間ファイルフォーマットです。元々はKaydara社が自社のアニメーションツールFilmBox(現在のMotionBuilder)が他社のCGツールとデータ交換を行う目的で開発された中間ファイル形式(FilmBoxExchange)でしたが、現在はAutodesk社の3DCGアプリケーション間のデータ交換およびユーザーがシーンファイルをアクセスする目的で利用されています。先日、Autodesk社の3Decemberというイベントに参加してきましたが、今後もFBXが同社のCGアプリケーションのデータ交換形式としてバージョンアップされていくということです。

FBXは、バイナリー形式(もしくはテキスト形式)でシーングラフで記述するファイルフォーマットで、通常はAutodesk社が提供しているFBX SDKを利用してAPIベースでアクセスします。FBXのバージョンは使用しているSDKのバージョンと密接にリンクしています。基本的には上位互換ですが、新しいSDKでサポートされなくなったAPIなどがありますので、古い形式で出力されたFBXでも新しいバージョンをサポートしているプラグインで読めない場合もあるようです。Autodesk社から異なるバージョンを変換するFBXConverterがダウンロードできますので、バージョンの違いが起因するエラーが発生した場合は、このユーティリティツールを利用する方法があります。

http://usa.autodesk.com/adsk/servlet/pc/index?id=6837478&siteID=123112

modo 501で使用しているSDKは、FBX SDK 2010.2です。デフォルトでの保存形式はテキスト形式ですが、初期設定パネルのシーン入出力>FBX書き出しのオプションでバイナリ形式出力に変更することも可能です。初期設定パネルで指定できるオプションは、下記の通りです。”エッジスムージング付きで保存”は、ポリゴン頂点の法線ベクトルをFBXのエッジスムースとして出力するオプションです。

  • テキストフォーマットで保存
  • エッジスムージング付きで保存
  • カメラを保存
  • ライトを保存
  • ロケータを保存


下記は、modoがサポートするFBXの詳細です。

頂点座標値
頂点座標値は、modoの内部で使用されている座標値に100を掛けた値で入出力されます。modoは、1メートルを1.0で内部的に保存していますのでセンチメートルとして出力していることになります。ちなみにmodoの座標系は右手座標系で、Y軸が上方向です。

モーフデータ
modoのモーフマップは、FBXのシェープデータとして出力されます。出力されるモーフは、相対モーフのみで絶対モーフマップは出力されませんので注意が必要です。また、FBXのシェープデータは相対モーフマップとしてmodoに読み込まれます。

法線ベクトル
modoの面法線ベクトルは動的に計算されます。FBXにはこの計算された法線ベクトルの値がLayerElementとして出力されます。また、FBXに保存されているLayerElementのベクトルはmodoの法線ベクトルマップに読み込まれます。

テクスチャUV座標値
modoでは、テクスチャUV座標値は頂点マップとしてメッシュレイヤーごとに保存されています。FBXでは複数のUVマップを取り扱うことができますので、modoで作成した複数のUVマップは全てFBXに書き出すことができます。FBXではLayerElementとして保存されます。

頂点カラーマップ
modoでは、頂点カラーデータもテクスチャUVと同様に非連続頂点マップとして保存されます。頂点カラーマップは、RGBおよびRGBAの2種類があり、どちらもFBXのLayerElementとして保存されます。

ポリゴングループ
modoでは、ポリゴンを任意の目的でグループ化する際にパートという文字列をポリゴンに付けることができます。同一のパート名称を持ったポリゴンをポリゴングループとして取り扱うことが可能です。modoで付けられたパート情報は、FBXのLayerElementPolygonGroupに変換されます。

スタティックメッシュ
スタティックメッシュは、通常のメッシュを編集不可の圧縮した三角形の集合として保存するmodoのもう一つのメッシュアイテム形式です。このスタティックメッシュには、頂点マップの情報も保存されていますので、FBXにも通常のメッシュと同様に頂点座標やテクスチャ座標値が出力されます。ただし、メッシュと同じフォーマットで出力されますのでFBX読み込み時にはメッシュアイテムとして読み込まれます。

サブディビジョンサーフェイス
modoには、オリジナルのサブディビジョンサーフェイスとCatmull-Clarkサブディビジョンサーフェイスがありますが、FBXにはサブディジョンサーフェイスのSmoothness、PreviewDivisionLevels、RenderDivisionLevels、DisplaySubdivisionsが出力されます。modoではサブディビジョンサーフェイスはポリゴン単位の情報ですが、FBXではメッシュレイヤー全体に対してスムースレベルやサブディビジョンレベルが適用されますのでサブディビジョンサーフェイスを持つメッシュのポリゴンは全てサブディビジョンサーフェイスとして認識されます。また、エッジウェイトの情報はEdgeCreaseのデータとして出力されます。スムースレベルが設定されたFBXのメッシュポリゴンはCatmull-Clarkサブディビジョンサーフェイスとしてmodoに読み込まれます。

カーブ、ベジェカーブ
カーブおよびベジェカーブは、通常の面ポリゴンとして出力されますので、modoに再度読み込むと面ポリゴンになってしまいます。

インスタンスメッシュ
インスタンスメッシュは、元となるメッシュアイテムがFBXに出力されます。

マテリアル
マテリアル情報は、modoとFBXに共通の項目が入出力されます。

modoFBX
Diffuse ColorDiffuseColor
Specular AmountSpecularFactor
Specular ColorSpecularColor
RadianceEmmisiveFactor
Luminance ColorEmissiveColor
Reflective AmountReflectionFactor
Reflection ColorReflectionColor
Transparency AmountTransparencyFactor
RoughnessShininess(Shininess = exp ((10 * (1 - Roughtness) + 2) * log (2)))

カメラ情報
カメラに関しては、modoのカメラアイテムのチャンネルデータがFBXに出力されます。一部のチャンネルはアニメーションのFCurveとして出力されます。

modoFBX
Focal Length(Envelope)FocalLength(FCurve)
SqueezeSqueezeRatio
Film WidthApertureWidth
Film HeightApertureHeight
Projection TypeProjectionType(eORTHOGONALもしくはePERSPECTIVE)
Focus DistanceFocusDistance
Film OffsetXOpticalCenterX
Film OffsetYOpticalCenterY

ライト情報
ライトは、Radiant Exitanceが光源の輝度情報としてFBXのIntensityに出力される(FBX Intensity = Radiant Exitance * 40)他、スポットライトのコーン角度、指向性光源がeDIRECTIONAL、点光源がePOINTとして出力されます。ライトマテリアルの色もLightColorとして出力されます。

ロケータ情報
メッシュ、カメラ、ライトは、ロケータアイテムの派生アイテムで、共通のトランスフォーム情報(移動、スケール、回転、回転順序、ピボット位置)を持っています。これらのロケータアイテムの情報は、アニメーションデータとして、アイテムの階層構造と共に出力されます。FBXは元々モーションデータを受け渡すのが主な目的でしたのでアニメーション情報に関しては多くの情報が出力されています。ただし、modoのエンベロープカーブは、複合的なカーブを混在して使用することが可能な柔軟かつユニークな形式ですので、このエンベロープをFBXのFCurveに内部的に変換しています。




2011年11月6日日曜日

OBJ形式


modoはネイティブのシーンフォーマットであるLXO形式以外に幾つかの外部フォーマットをサポートしています。OBJ形式は、モデルデータを入出力するためのファイル形式でさまざまな3DCGソフトウェアでサポートされています。このフォーマットは、Wavefront社のThe Advanced Visualizerでモデルデータを定義するファイルフォーマットで、そのほかにもバイナリー形式の(.mod)やシーンデータを記述する(.pv)などがありましたが、モデルデータをテキスト形式で記述する(.obj)だけがモデルデータの中間フォーマットとして現在でも幅広く使用されています。ちなみにWavefront社は、1995年にシリコングラフィクス社にカナダのAlias Research社と共に買収され、当時次世代ソフトウェアとして開発中だったサイクロンプロジェクトは現在のAutodesk社のMayaの開発に引き継がれていったのを記憶しています。



OBJ形式が現在でも広く中間フォーマットとして利用されている理由を考察してみました。

  • テキスト形式であり簡単に読み書きするためのパーサーが作れる。
  • 多角形を取り扱うことができる。
  • テクスチャのUV座標値、頂点法線ベクトルが記述できる。
  • その他、グループ、マテリアルの指定などが可能。


実は、OBJ形式はThe Advanced Visualizer 3.0から、シンタックスが拡張されBezierやB-Splineカーブ、Nurbsパッチまでも記述できるようになっていますが、拡張されたシンタックスをサポートしているソフトウェアは多くないため、あまり使用されていないようです。

下記は、立方体を記述しているOBJファイルの例です。OBJの詳しい仕様に関してはwikiなどのサイトで公開されています。
o Mesh
v -0.5 -0.5 -0.5
v 0.5 -0.5 -0.5
v 0.5 -0.5 0.5
v -0.5 -0.5 0.5
v -0.5 0.5 -0.5
v 0.5 0.5 -0.5
v 0.5 0.5 0.5
v -0.5 0.5 0.5
vn 0 -1 0
vn 0 0 -1
vn 1 0 0
vn 0 0 1
vn -1 0 0
vn 0 1 0
vt 0.25 0
vt 0.5 0
vt 0.5 0.333333
vt 0.25 0.333333
vt 1 0.666667
vt 0.75 0.666667
vt 0.75 0.333333
vt 1 0.333333
vt 0.5 0.666667
vt 0.25 0.666667
vt 0 0.666667
vt 0 0.333333
vt 0.25 1
vt 0.5 1
mtllib cube.mtl
usemtl Default
g Default
f 1/1/1 2/2/1 3/3/1 4/4/1
f 5/5/2 6/6/2 2/7/2 1/8/2
f 6/6/3 7/9/3 3/3/3 2/7/3
f 7/9/4 8/10/4 4/4/4 3/3/4
f 8/10/5 5/11/5 1/12/5 4/4/5
f 5/13/6 8/10/6 7/9/6 6/14/6


"o Mesh"は、オブジェクトの名称を定義する行です。この行は省略されている場合もありますが、定義しておくとモデル名称を指定することができます。

"v -0.5 -0.5 -0.5"は、頂点の座標値を表しています。ソフトウェアによってデフォルトの単位系は異なりますので、読み込み時に変換されるか、読み込んだ後にスケールなどで調整する事になります。vで指定された頂点は、出現順に連番が付けられます。

"vn 0 -1 0"は、頂点の法線ベクトルを記述しています。法線ベクトルは長さ1.0に正規化されていることが前提になっています。法線ベクトルの指定はオプションであり、省略可能です。

"vt 0.25 0"は、テクスチャのUV座標値を指定しています。テクスチャ座標値もオプションであり、省略可能です。

"mtllib cube.mtl"は、マテリアルライブラリのファイル名称を記述しています。OBJではマテリアルは外部ファイル(.mtl)で別に記述し、そのファイルに記述されているマテリアルをOBJの中で参照します。本家のThe Advanced Visualizerでは、マテリアルライブラリのファイルの場所は、WF_MTL_DIR環境変数で指定されていましたが、ファイル名称のみを記述し、(.obj)ファイルと同じフォルダに置いておくのが一般的なようです。下記は、cube.mtlファイルの一例です。newmtl指定子でマテリアルの名称を指定し、その後にディフューズなどマテリアル属性を記述しています。

newmtl Default
Kd 0.8 0.8 0.8
Ns 256
d 1
illum 2
Ka 0 0 0
Ks 0.2 0.2 0.2

"usemtl Default"で、以下に定義するポリゴンでどのマテリアルを使用するかを記述しています。以下に出現するポリゴンは、Defaultというcube.mtlに記述されているマテリアルが適応されます。

"g Default"は、グループを指定しています。これはちょうどmodoのパート名称のポリゴンタグと一致します。

"f 1/1/1 2/2/1 3/3/1 4/4/1"は、四角形の面ポリゴンを記述しています。前述した頂点、法線ベクトル、テクスチャ座標値は出現順に1から番号が付けられ、3つのインデックスの対としてポリゴン頂点が記述されています。2/2/1は、第2頂点、第2法線ベクトル、第1テクスチャ座標を指定していることを意味しています。法線ベクトルを省略する場合は"2//1"、テクスチャ座標を省略する場合は"2/2"、両方を省略する場合は"2"のように記述します。テクスチャ座標値は、1つしか記述することができません。

次にmodoがOBJフォーマットをどのようにサポートしているかを解説したいと思います。modoのOBJ入出力は、SDKを使用したプラグインとして実装されており、LXSDKにはobjioフォルダにサンプルコードとして全ソースコードが公開されています。入出力に関する詳細や仕様のカスタマイズが必要な場合はこのSDKのサンプルコードが役に立ちます。

下記はmodoのobjioでサポートされているOBJファイルの命令です。

v   頂点座標値
vt   テクスチャ座標値
vn   法線ベクトル
o   オブジェクト名称
g   グループ
f   面ポリゴン
usemtl マテリアル名称
mtllib マテリアルライブラリ

頂点座標値は、メッシュアイテムの頂点座標が出力されます。もし、モーフマップが頂点マップリストで選択されていた場合は、基本の頂点座標にモーフマップの値が適用された座標値が出力されます。座標系はアイテムの座標系が付加されたグローバル座標系です。

modoでは、複数のUVテクスチャを頂点マップとして持つことができますが、OBJでは一組のUVマップだけしか持つことができません。OBJで出力するUVマップは現在頂点マップリストで選択されているマップのテクスチャ座標値が出力されます。

modoでは、法線ベクトルは面法線ベクトルとスムージング角度を元に頂点の法線ベクトルが計算されます。OBJにはこの計算された法線ベクトルが出力されます。また、OBJファイルに記述されている法線ベクトルは法線ベクトルマップとしてmodoには読み込まれます。この法線マップは読み込んだメッシュを後で編集する場合には事前に削除しておくことをおすすめします。modoは法線ベクトルが存在する場合は、動的に法線ベクトルを計算せずに法線マップのベクトルを優先して使用します。

オブジェクトの名称を指定する"o"は、modoではメッシュアイテムの名称として使用されます。シーン上に複数のメッシュアイテムが存在する場合は、現在選択されているメッシュアイテムが一つのファイルにまとめて出力され、"o"命令によって新しいメッシュが分離されて出力されます。modoにこのOBJファイルを読み込んだ場合は、メッシュアイテムはこの"o"命令を元に復元されますが、アイテムの座標値はリセットされてしまいます。

o Cube1
v -0.5 -0.5 -0.5
v 0.5 -0.5 -0.5
  :
f 1/1/1 2/2/1 3/3/1 4/4/1
f 5/5/2 6/6/2 2/7/2 1/8/2
o Cube2
v 1.5 -0.5 -0.5
v 2.5 -0.5 -0.5
  :
f 1/1/1 2/2/1 3/3/1 4/4/1
f 5/5/2 6/6/2 2/7/2 1/8/2

modoには、ポリゴンタグというポリゴンをグループ化するためのデータがあります。modoのパート、マテリアルは、それぞれOBJの"g"、"usemtl"に対応します。

modoの面ポリゴン、サブディビジョンサーフェイス、Catmull-Clarkサーフェイスは全て"f"命令で面ポリゴンとして出力されます。

マテリアルに関しては下記の属性がサポートされています。括弧の名称はmodoでの対応するマテリアル属性です。

Ka   アンビエント(ルミナンスの色)
Kd   ディフューズ(ディフューズの色)
Ks   スペキュラー(スペキュラーの色)
d   ディゾルブ(1.0 - 透過量)
Ns   スペキュラー係数(スペキュラー量)
map_Kd ディフューズマップ(ディフューズの画像マップ)
map_refl   リフレクションマップ(リフレクションの画像マップ)
map_Bump バンプマップ(バンプの画像マップ)
map_D ディゾルブテクスチャ(透過の画像マップ)
map_Ks スペキュラーテクスチャ(スペキュラーの画像マップ)
map_Ka アンビエントテクスチャ(ルミナンスの画像マップ)

その他、modoの初期設定には、OBJファイル入出力に関するオプションが幾つか用意されています。”メッシュをグループとして出力”を指定した場合は、メッシュアイテムは"o"命令を使って別々にオブジェクトとして出力されずに"g"命令を使ってグループとして指定しれます。また、”スタティックメッシュとして入力”を指定すると読み込まれたポリゴンはメッシュアイテムではなくスタティックメッシュとして読み込まれます。



2011年11月2日水曜日

グラフ編集とバッチレンダリング

第4回勉強会での日比さんのセッションの後で、マテリアルなどの設定値をテスト的に設定したレンダリング結果をまとめて作成し、後で比較したいという質問があったと記憶しています。このブログでこの件に関して少し補足させていただきます。

modoではマテリアルなどさまざまな属性を時系列的に変更させるための機能が搭載されています。この機能を使ってアニメーションでレンダリングを行えばフレームごとに別々のレンダリング結果を得ることが可能です。アニメーション機能は静止画のレンダリングには関係ないと思われている方がいらっしゃるようですが、静止画の制作においてもmodoのアニメーションは有効な手法です。

シェーダツリーの各属性の値のフィールドには丸いボタンのようなアイコンが付加されています。このボタンの上で右マウスボタンを押すとコンテキストメニューが表示されますので、ここからグラフ編集を選択すると各アニメーションフレームでその属性の値をどのように設定するかを設定するグラフ編集画面が表示されます。この画面でフレームにキーフレームを作成し、各フレームでの値を変化させることが可能です。時系列で変化させることができる属性はディフューズなどのマテリアル属性だけでなく、大域照明の様々な設定値もありますので、いろいろな値をフレームごとに変えてアニメーションレンダリングすれば、連番ごとに異なるレンダリング結果を得ることが可能になります。




また、それでも別々のシーンを作成してまとめてレンダリングを行い、後から結果を比較したい場合には、バッチレンダリングという選択肢もあります。Fredrik Stenson氏のサイトには、複数のシーンをまとめてmodoに読み込んだ後で、まとめてレンダリングを行うためのスクリプトBatchRenderが公開されています。まず、BatchRenderをダウンロードし、圧縮ファイルを解凍すると、fs_BatchRender_scriptというフォルダが現れますので、これを付属のhow_to_use.rtfのドキュメントにしたがい、modoのユーザーフォルダにコピーします。fs_BatchRender_scriptはScriptsフォルダに、Form_ScriptsContainer.CFGは、Configsフォルダにそれぞれコピーします。ユーザーごとのフォルダの場所は下記の通りです。

OS X:
<user name>/Library/Application Support/Luxology/Configs
<user name>/Library/Application Support/Luxology/Scripts

Win XP:
C:\Documents and Settings\<user name>\Application Data\Luxology\Configs
C:\Documents and Settings\<user name>\Application Data\Luxology\Scripts

Win Vista:
C:\Users\<user name>\AppData\Roaming\Luxology\Configs
C:\Users\<user name>\AppData\Roaming\Luxology\Scripts

Win 7:
C:\Users\<user name>\AppData\Roaming\Luxology\Configs
C:\Users\<user name>\AppData\Roaming\Luxology\Scripts

上記をインストールした後、modoを起動するとシステムメニューにScriptsメニューが表示されます。




使い方は非常に簡単です。まず、レンダリングしたいシーンを片っ端からmodoに読み込み、上記のメニューからBatch Renderを起動します。すると、各シーンごとにレンダリングで保存する画像ファイルの名称と形式をしていするダイアログが表示されますので、全てのシーンに対して保存画像の指定を行うとレンダリングが開始されます。


また、Fredrik Stenson氏のサイトには、その他にも便利なツールが沢山用意されています。AfterFxIOは、AfterEffectにキーフレーム情報を入出力するためのツールで、modo 501のカメラ情報をAfterEffectに取り込むことが可能になります。modoは、Render OutputでZバッファの値や様々なレンダリングレイヤーを個別に出力することももちろん可能です。


AfterFxIO from Fredrik Stenson on Vimeo.

2011年8月15日月曜日

円弧を作るスクリプト

Takumiさんが開発した円弧を作るスクリプト”Arc.pl”がアップデートされましたので、このブログで紹介させていただきます(Takumiさん、ありがとう)。Arc.plは、頂点で指定したエッジを円弧に変換するためのスクリプトで、アップデートされたバージョンでは、ポイント数を指定して選択したエッジを自動的に分割する機能が追加されています。


まず、最初に円弧に変換するエッジの始点(1)と終点(2)を選択します。次に円弧を作る平面を指定するためにもう一つ頂点(3)を選択します。この3つの頂点で円弧の始点終点と平面が定義されます。



次にCount of Pointsでエッジのポイント数を指定します。これは円弧の解像度になります。続けて、Radiusで円弧の半径、Curveで円弧の方向を指定します。Convexを指定すると凸型に、Concaveを指定すると凹型になります。



スクリプトは、下記のURLからダウンロードできます。スクリプト、SystemメニューからRun Script...からArc.plを選択することによって実行できます。ユーザー定義のScriptsフォルダに置くことによって、ファイル名だけでショートカットなどに割り付けて実行することも可能です。

http://bit.ly/nJveKn


スクリプトとは関係ないですが、modo User Group Tokyoの第三回勉強会に参加させていただくことになりました。今回の勉強会では日比さんがモデリングやレンダリングのテクニックをデモしていただける予定となっています。私の方からはモデリングのトラブルシューティングに関するチップスをKeynoteを使って説明することを考えています。modoの開発サイトから受け取るバグレポートの中には、イレギュラーなメッシュが原因で発生する不具合によるものが多数あります。これらのイレギュラーデータは、モデリングの作業中やインポートしてきたデータが原因で発生するもので原因を見つけるのに結構な時間を費やしてしまう事があります。今回の勉強会では、ちょっと地味ですがモデリングでトラブったときに解決のヒントになるチップスを紹介しようと思います。勉強会のスケジュールは、modo User Group Tokyoのサイトでご確認ください。

modoユーザーグループTOKYO


2011年8月3日水曜日

ショートカットキー

先日、あるユーザーの方から、ポリゴンベベルのGroupオプションをショートカットキーで切り替えができないかという質問を受けました。頻繁に切り替えて使用する機能は、ショートカットに登録して使うと作業効率が向上するのでしょう。

modoのショートカットは、システムメニューにあるInput Remapping(入力編集)でカスタマイズすることが可能です。modoの入力編集がユニークなのは、同じキーでも条件に応じて実行させるコマンドを別に設定できる点にあります。

たとえばContext(コンテキスト)には、Item(アイテム)モードとComponent(コンポーネント)モードがあり、Itemモードで設定したショートカットは選択がアイテムの時にだけ実行され、Componentモードで設定したキーは、頂点、エッジ、ポリゴン、マテリアルの選択モードでのみ実行されます。デフォルトの状態で設定されているショートカットはグローバルなショートカットキーです。

ポリゴンベベルを実行しているときにだけ有効なショートカットを設定するには、Edit(編集)モードをTool(ツール)に設定します。そして、Tool(ツール)のポップアップをPolygon Bevel(ポリゴンベベル)に指定します。ここでは、Gキーに下記のコマンドを設定します。

tool.attr poly.bevel group value:?

上記のコマンドは、ポリゴンベベルを実行中にGroup(グループ化)ボタンを押すと、Command History(コマンド履歴)に表示されますので、それをコピペして使います。最後の?の文字は、Command Historyではtrueもしくfalseで表示されています。これを?にすることによって、trueの時はfalseに、falseの時はtrueに切り替えるトグルコマンドを設定することが可能です。トグルが使えるのはアトリビュートの種類が論理値の場合だけです。

これでポリゴンベベルを実行中にGキーを押すとGroupのオンオフを切り替えることができるようになりました。ポリゴンベベルを起動していないときは、グローバルキーに設定されているビューポートのGoToコマンドが実行されます。