2012年10月5日金曜日

LuxPreview

先日、LuxPreviewというiPad用のアプリケーションがLuxology社からリリースされました。



このアプリケーションは、iPad上にmodoのプレビュー画面をWiFi経由で表示します。コンピュータ上のmodoでプレビュー画面を変更すると、iPad上のプレビュー画面も同期して変更されます。LuxPrevewは、iTuneストアから無償ダウンロードできます。

modoには、ソケット通信で外部アプリケーションとコミュニケートする機能が実装されており、プレビュー画面の表示の他、Telnetでmodoにログインしてコマンドを実行する事もできるようになっています。プレビューソケットに関する詳しい情報は、Luxology SDK WiKiに公開されています。

LuxPreviewの使い方は、LuxPreviewの起動画面にあるiボタンを押すとヘルプが出てきますので、ここから参照することができます。下記が簡単な使い方の手順です。


  • まず、modoを起動し、プレビューにシーンを表示します。
  • 次にF5キーを押して、コマンドラインから次のコマンドを入力します。これは、iPadのLuxPreviewと更新するためのポート番号をmodoに設定するものです。

telnet.listen 12344
previewSocket.listen 12345


  • 今度は、LuxPreviewを起動し、WiFiボタンを押して、modoを起動しているコンピュータのIPアドレス(Host IP Address)を入力します。ネットワークのIPアドレスは、システム設定のネットワークから参照することができます。下記はOSXのネットワーク設定画面です。




  • Host IP Addressを入力し、LuxPreviewの再生ボタンを押すと、modoのプレビュー画面がLuxPreview上に表示されます。modoのプレビュー画面を操作すると同期してLuxPreviewの画面も変更されます。



2012年8月5日日曜日

第六回 modoユーザーグループTOKYO勉強会

modoユーザーグループTOKYO勉強会に参加してまいりました。今回は大阪から柳村さんと日比さんが講師としてお見えになっていて非常に有益なお話を聞くことができました。今回は残念ながら懇親会には参加できませんでしたが幾つかのポイントをメモとしてブログに書き残しておきます。

まず、柳村さんの「建築モデリングTips」ですが、JWCADから出力したDXFデータをQuantize(量子化)ツールを使用して、誤差を含む頂点座標値を丸めてから作業されている工程が興味深かったです。外部ファイルから取り込んだデータの座標値はmodoとは座標系が異なったり、1.4999999 mなどのように誤差を含んでいる場合があります。Quantizeツールを使うことによってこれらの誤差を含む値を1.5 mのように丸めることが可能になります。

また、素晴らしいと思ったチップスはグリッドスナップを必要に応じて上手に変更して、スライドなどのツールの相対移動量に対するスナップとして使用する手法です。modoにはグリッドスナップツールというツールはありますが、これはあくまで空間上の絶対位置にマウスカーソルを吸着させるためのもので、移動量そのものを0.5 m, 0.75 mのように丸めた値として入力させる目的には向きません。Coordinate RoundingをFixedにすることによって、指定した増分値にツールの入力量を吸着させることが可能です。柳村さんは、この機能を頻繁に切り替えて使用するため画面の右上にグリッドスナップの設定値入力のフィールドを表示していました(通常は初期設定パネルのInput/Unitsにあります)。これはフォーム編集で下記のコマンドを追加してあげることで任意の場所に設定値の入力フィールドを持ってくることができます。追加するフォームの場所は、フォーム編集のFind Formを使ってあげると簡単に見つけることができます。


pref.value opengl.gridSnap ?
pref.value opengl.gridFixed ?



このCoordinate RoundingおよびFixed Incrementの変更は、このワークフローでは重要なのでmodo 701ではスナップパレットで変更できるように工夫してみようかと思います。

次の日比さんの「スムージングについて」の講義は、非常にベーシックかつ重要な内容でポリゴンでCGを表現する場合に避けては通れない問題について解説していただきました。modoを含むポリゴンをベースとしたCGツールでは、面法線ベクトルを何かしらのルールに基づいて補完し、なめらかな曲面のようなレンダリングを行っています。このスムージング処理は、通常はあまり意識することは少ないかもしれませんが、丸めを表現する形状と平坦な平面が隣接するような部分では、平坦な平面のサンプリング法線ベクトルが丸め部分の法線ベクトルとスムージングによって影響を受け、歪んで表示されてしまう場合があります。ボックスのエッジをエッジベベルで丸め処理を行い、丸めていないボックスとリフレクションを付けて比較してみると、本来平坦になっている部分が歪んでレンダリングされているのがわかります。上が普通のボックスで下がエッジベベルでエッジに丸めを付けたものです。


大きな隣接する平面に隣接するエッジベベルによって作られた平面が角度を持っているため、平坦な平面上のレンダリングサンプル点の法線ベクトルはスムージングによってこれらの隣接面の法線ベクトルとで補完された値になっています。これを解決するにはこの中央の平坦な平面に隣接するポリゴンはこの平坦なポリゴンと同じ方向の面法線を持つようにしてあげる方法があります。これによりスムージングしてもサンプリング法線は面法線と一致しますので歪みがなくなります。具体的にはループスライスを使用して平坦な面にエッジを追加してあげることで解決できます。また、hisakoさんから601のRound Edgeレンダリングでも同じ問題があるのかという質問がありました。Round Edgeは、形状レベルで面ポリゴンを生成せず、シャープエッジに対してシェーディングレベルで丸め処理を行うため、スムージングによる問題は発生しません。



法線ベクトルマップを使って、接続部の頂点に別々の法線ベクトルを設定するという方法もありますが、現在modoの法線ベクトルは外部から入力したモデルの法線ベクトルを保持するために使われていますので、自由に編集して使えるほど汎用性がありません。従ってループスライスでループを追加する方法が現実的だと私も思います。この処理はエッジベベルのオプションとして用意されていると便利なのでエッジベベルの機能拡張を検討してみたいと思います(大昔にEnhanced Requestのリストにあった気もするのですが長い間忘れていました)。

また、SDSのサイズに関してのチップスの説明がありました。SDS(サブディビジョンサーフェイス)は、面ポリゴンを繰り返し分割しながらその頂点の座標値をあるアルゴリズムに基づいて移動していきます。ボックスを作った後にDキーを数回押して分割する方法と同じです。このSDSは、面ポリゴンと同じように曲面を扱えるため非常にフレキシブルにモデルを表現する事が可能な便利な表現なのですが、曲面のケージ(元になる面ポリゴン)が、限界曲面(Limited Surface)を包含するように作製されるため、ケージのサイズよりも限界曲面のサイズの方が小さくなってしまいます。これはサブディジョンサーフェイス固有の特徴であり、NURBS曲面などのようにコントロールポイントを通過する曲面表現ではこの問題はありません。



日比さんはこの問題を解決するために多角形ポリゴンの限界曲面の収縮率を実験的に算出しておき、必要に応じて作製したSDSの円に対してスケールを行ってからモデリングをされています。限界曲面上のポイントの位置は、オリジナルのケージポリゴンメッシュの位相とケージ上の頂点情報によって計算されるため、厳密にはリニアにスケールの値は求まりませんが、形状を単純な多角形に限定すれば実用的には十分な結果が得られると思います。この場合のスケール値は、ケージの頂点座標値から求めたバウンディングボックスのサイズを境界曲面上の頂点座標値から求めたバウンディングボックスのサイズで除算してあげれば簡単に求めることができます。この境界曲面上の座標値を求めるAPIはmeshserviceのCornerメソッドを使用して求めることができます。layerserviceには存在しないので機会があればプラグインとして作って見ようと思います。また、境界曲面のサイズをベースとしてプリミティブを作成する機能は、Sphereツールなどにあると便利なので、こちらも機能拡張を検討してみたいと思います。

今回の勉強会はとても勉強になりました。柳村さん、日比さん、ありがとうございました。





2012年4月14日土曜日

modo 601: モーフの更新

modo 601では、モーフマップをメンテナンスするオプションがトランスフォームツールについています。これは、以前ディスカッショングループで質問があった問題を解決するためのソリューションとしてmodo 601で追加したものです。モーフマップは、メッシュの頂点からの相対位置を差分ベクトルとして頂点マップに保存する機能で、modo 601からはモーフデフォーマなどでも使用されています。

モーフマップは通常ベースとなるメッシュを作成してから、そのベースメッシュのバリエーションとして後から作成する頂点マップです。ベースメッシュに対して少しずつことなる形状をマップごとに作成することができます。

問題点としてモーフマップを作成したベースのメッシュを後から編集した場合、モーフ適用後の形が想定外の形状になってしまう点がありました。モーフマップはベースメッシュの各頂点からの相対ベクトルとして情報を保存していますので、ベースメッシュを変形すると新しいベースの頂点にマップに保存されている相対ベクトルがそのまま加算されるためベースメッシュを大きくスケールや回転するとモーフ適用後の形状が崩れてしまいます。



この問題を解決するためにトランスフォームツールにMorphオプションを用意いたしました。Transformモードを有効にした状態でベースメッシュの頂点を変形するとトランスフォームツールはベースメッシュを変形するのと同時に全てのマップに対してそのマップを適用した形状を変形し、その形状と新しいベースメッシュから新たに作成した相対ベクトルをモーフマップに書き出します。これによりモーフ適用後の形状を崩すことなくベースメッシュを編集することが可能になります。

Keep Positionsは、ベースメッシュを変更しても元のベースメッシュにモーフマップを適用した形状を変更したくない場合に使用します。トランスフォームツールは変形前のベースメッシュ+モーフマップから変形後のベースメッシュを差分して作成した相対ベクトルを新しいモーフマップとして書き戻します。


2012年4月10日火曜日

選択の解除

先週末に大阪のユーザーグループミーティングに参加した際、柳村さんに選択状態にある頂点やポリゴンをフレームのブランクエリアをクリックして解除できないかという質問をいただきました(大阪ではお世話になりました)。汎用的な用途で使えるチップスになりそうなのでこのブログで紹介いたします。

modoでは3Dビュー上の空白部分をクリックすると選択解除できるのですが、画面いっぱいに選択されたポリゴンが表示されている場合、ブランク部分が3Dビュー上に存在しないため選択が解除ができなくなってしまいます。LightWave 3Dでは、UIの空白の部分をクリックすると選択を解除することができます。

エレメントの解除は、select.dropというコマンドで行うことができます。例えばポリゴンの選択を解除したい場合、select.drop polygonというコマンドを実行します。頂点の場合は、select.drop vertexになります。現在の選択モードに応じてエレメントを解除するには、select.typeFromコマンドで選択モードをテストしてから対応したモードでselect.dropを実行すれば良いので下記のようなスクリプトを実行すればOKです。スクリプトは、ユーザーのスクリプトフォルダにコピーして置くと絶対パスの指定無しで、@SelectDrop.plのようなシンタックスで実行できるようになります。私のOSXでのユーザースクリプトフォルダは


/Users/taz/Library/Application Support/Luxology/Scripts

になります。スクリプトはこちらからダウンロードできます。下記をテキストエディタにコピペして使用してもOKです。



#! perl

if (lxq( "select.typeFrom {vertex;edge;polygon;item;ptag;center;pivot} ?" ) ) {
lx ("select.drop vertex");
}
if (lxq( "select.typeFrom {edge;vertex;polygon;item;ptag;center;pivot} ?" ) ) {
lx ("select.drop edge");
}
if (lxq( "select.typeFrom {polygon;edge;vertex;item;ptag;center;pivot} ?" ) ) {
lx ("select.drop polygon");
}
if (lxq( "select.typeFrom {item;edge;vertex;polygon;ptag;center;pivot} ?" ) ) {
lx ("select.drop item");
}
if (lxq( "select.typeFrom {ptag;item;edge;vertex;polygon;center;pivot} ?" ) ) {
lx ("select.drop ptag");
}
if (lxq( "select.typeFrom {center;item;edge;vertex;polygon;ptag;pivot} ?" ) ) {
lx ("select.drop center");
}
if (lxq( "select.typeFrom {pivot;item;edge;vertex;polygon;ptag;center} ?" ) ) {
lx ("select.drop pivot");
}

次にこのスクリプトがフレームのブランクエリアをクリックしたときに実行されるようにInput Editorで設定すれば良いのですが、この場合FramesのRegionsのLeft Clickに割り付けます。Input Editorでは、イベントが実行される条件をビューポートやツールなどさまざまなカテゴリで指定することができます。





この方法はmodo 601から実装したレイジー選択を常にオンにしたいときにも便利です。レイジー選択は常にマウスカーソル位置に一番近いエレメントが選択されてしまうので、3Dビューのブランクエリアをクリックしても選択が解除できません。

よろしかったらお試しください。modo 501でも使用可能です。


2012年4月9日月曜日

Audio Ape

modo 601では、アニメーションの機能が大幅に追加されましたが、残念ながらオーディオをmodo上で再生する機能は搭載されませんでした。ところが先日、Celfさんというユーザーの方がAudion Apeというmodo上でオーディオファイルを再生するプラグインを開発し、先週末にバージョン1.0が公開されました。詳しい経緯はオープンフォーラムをご覧ください。

Audio Apeが読み込めるオーディオファイルはWindows版ではWAV形式、MacOS版ではWAVE、AIFF、CAF、m4a、mp3などが扱えるようです。Audio Apeは、modoのキットの形式で配布されており、ユーザーコンフィグフォルダにダウンロードしたaudioapeフォルダをユーザーコンフィグフォルダにコピーすると使用可能になります。SetupタブやAnimetionタブにAudio Apeのタブが表示されますので、ここからAudio Apeの機能にアクセスル事が可能です。

Load Audio Fileボタンを押して、オーディオファイルを読み込むとAudioAPEという名称のロケータアイテムがシーン上に設定されます。このロケータアイテムにはAudioAPE専用のチャンネルがユーザーチャンネルとして登録されています。このアイテムはシーンに対して一つだけ登録されます。後はアニメーションタブで再生ボタンやタイムラインをスクラブすると読み込んだオーディオを再生することができるようになります。逆再生もサポートしています。取り扱えるオーディオファイルは一つのシーンで一つだけです。



Audio Apeは、ユーザーが自分で決めた金額を支払う方法で購入するプラグインです。ユニークなのは支払う金額を開発者に対する報酬と寄付金として寄付する金額とをパーセンテージで指定することが可能になっています。クレジットカードとPayPalが利用できます。

先週末から、Luxology modo SDKのWiKiサイトがオープンになりました。このサイトではmodoのプラグインやスクリプトを開発するために必要な情報がまとめられています。今後、ユーザーやサードパーティのプラグインツールがどんどん増えていくと嬉しいですね。




2012年3月31日土曜日

modo 601: ボリュームアイテム

ボリュームアイテムは、modo 601から搭載された新しいアイテムです。modo 501でもスポットライトのオプションとしてボリュームレンダリングを行う機能が搭載されていましたが、modo 601では独立したアイテムとしてボリュームレンダリングを行うことができるようになりました。ボリュームアイテムの実装を行ったのは、フランス在住のGregory Duquesneです。Gregoryは、LightWave 3DのHyperVoxelsの作者でもありますので、約15年ぶりに新しいボリュームレンダリングの実装をmodoで行ったということになるのでしょうか。HyperVoxelsがリリースされた当時は、ボリュームレンダリングは膨大なCPUパワーとメモリーリソースを消費するレンダリングでしたが、modo 601ではプレビューレンダーで設定の変更を即時に確認することができるようにまでなりました。

ボリュームアイテムには、通常のボリュームアイテム以外にボリューム関連アイテムとして幾つかのアイテムが追加されています。ボリュームは雲、煙、爆発などの表現に使用するアイテムです。ブロブはメタボールや濃度球とも呼ばれ、水などの表現に使用されます。スプライトは画像をパーティクルソースで指定した位置に画像を配置するアイテムです。

  • ボリューム
  • ブロブ
  • スプライト
  • レンダーブーリアン
  • グランドプレーン

ボリュームアイテムは、単体でもレンダリングすることができますが、通常はパーティクルソースで指定したポイントの位置情報を利用してレンダリングを行います。ポイントソースは、いろいろな方法で提供することが可能です。メッシュアイテムの頂点を始めとして、RealFlowのBINファイル、パーティクルジェネレータなどのパーティクル生成アイテムをパーティクルソースとして使用することができます。

ボリュームの密度やスキャッタリング度のアトリビュートにシェーダを使用することが可能です。シェーダツリーで登録したシェーダのエフェクトをボリュームレンダリングに関連するエフェクトに設定することによってボリューム密度などをノイズやベインなどのプロシージャルテクスチャで変調させることができます。ボリュームとして設定可能な項目は下記のエフェクトです。
  • ボリュームサンプル密度
  • ボリューメトリックスキャッタリングの色
  • ボリューメトリックスキャッタリングの量
  • ボリューメトリックレベル
  • ボリューメトリック吸収の色
  • ボリューメトリック吸収量
  • ボリューメトリック密度

また、ボリュームレンダリングのレンダー出力にも、幾つか専用のエフェクトが用意されています。深度に関しては、通常の深度ではなくボリューム深度に出力されますので注意が必要です。
  • ボリュームスキャッタリング
  • ボリューム深度
  • ボリューム不透明度

2012年3月25日日曜日

modo 601: デフォーメーションシステム

modo 601には、新しく堅牢なデフォーメーションのシステムが実装されました。デフォーメーションは、メッシュの頂点座標値をさまざまな方法で変形させるアニメーションの手法です。このデフォーメーションのシステムは、キャラクターアニメーションのためのスキンデフォーメーションで使用されていますが、更に汎用的な目的で使用することが可能です。

modoのデフォーメーションは、デフォーマと呼ぶアイテムを追加して行います。デフォーマは、デフォーマーリストで管理されており、追加されている順番で評価されます。よって登録されているデフォーマの順番を入れ替えると異なる変形を得ることができます。

デフォーマアイテムには、目的によって幾つかの種類があります。

エフェクタ(Effector)
エフェクタデフォーマは、移動、回転、スケール、ベンドなど与えられた座標値を座標変換するデフォーマです。言い換えると「どのようにデフォームさせるか」を担当するアイテムです。ベンド、マグネットなどおなじみの座標変換ツールと同名のアイテムがあります。

インフルーエンス(Influence)
インフルーエンスデフォーマには、頂点座標、モーフ座標値、アイテム座標値など影響範囲を与える対象が異なるデフォーマアイテムが用意されています。このデフォーマは「何に対してデフォームを行うか」を担当するアイテムです。エフェクタと組み合わせて使用します。

フォールオフ(Falloff)
フォールオフアイテムは、インフルーエンスデフォーマなしでも動作するハイブリッドなデフォーマです。直接、メッシュアイテムとリンクして座標値を変形させることもできますし、インフルーエンスデフォーマをオーバーライドして、エフェクタによって変形される値をフォールオフウェイトによって上書きすることもできます。また、フォースアイテムと結びつけて使用することも可能です。

グループ(Grouping)
グループは特殊なデフォーマアイテムで、複数のデフォーマをまとめて管理するときに使用します。デフォームフォルダは、デフォーマをフォルダーの中にいれてまとめてオンオフするときに使用するフォルダです。正規化フォルダは、スキンデフォーメーションでバインドを使用してデフォーマを追加すると自動的に追加されます。ジョイントを使用したデフォーメーションは、親のジョイントと子供のジョイントに割り付けられた別々のデフォーマの値を正規化する必要があるため、この正規化フォルダにデフォーマが入れられます。このフォルダを利用しないと子供のジョイントの変形と親の変形がそのまま加算されてしまいます。


このエフェクタとインフルーエンスの概念は、ツールパイプラインのジェネレータとエフェクターの設計思想と同じで、計算部分と作用部分を分離することによって、目的によってこれらを自由に組み合わせることが可能になります。非常にmodoらしいデフォーメーションシステムが実装されました。

デフォーメーションの詳しい解説は、サンフランシスコで行われたmodo 601のスペシャルイベントに置いて、Rich Hurrey氏が解説しています。





上記の説明を元にしてデフォーマの簡単な使い方を解説したデモもアップしました。

2012年3月18日日曜日

modo 601: ポーズスペーススカルプティング

modo 601のキャラクターアニメーションでは、各キーフレームでのキャラクターのポーズに対して修正を行い、ジョイントの変形に合わせて各ポーズを補間するワークフローを提供しています。このワークフローは、modo 601トレーニングビデオで既に説明されていますが、このブログでも解説しておきます。基本的な手順は以下の通りです。

  1. スケルトンジョイントを作成、ウェイトを設定した後、General Influenceデフォーマを追加したモデルを作成する。
  2. スケルトンジョイントをポーズツールやトランスフォームツールで変形し、ポーズを作成する。
  3. 修正を行う関節部分に対応するモーフマップを作成し、そのモーフマップに対してMorph Influenceデフォーマを追加する。
  4. 追加したMorph Influenceデフォーマと関連づけるルートのジョイントをペアレント設定する。
  5. メッシュベースのスカルプトツールで形状を調整する。
  6. ジョイントの角度のチャンネルとMorph Influenceデフォーマの長さチャンネルをチャンネルリンクでリンクする。
スカルプトツールは、modo 401から搭載されたツールでディスプレースメントマップに対してスカルプトを行うモードとは別にメッシュの頂点に対してもスカルプトを行うことができます。modo 601ではこのメッシュベースのスカルプティングが、メッシュをGeneral Influenceデフォーマで変形させた状態で行うことができるように拡張されています。モーフマップを作成することによって、スカルプトした頂点の座標値とデフォームさせたベースメッシュの座標値の差分情報をモーフマップに追加します。

Morph Influenceデフォーマは、モーフマップの適用の度合いをパーセンテージでアニメーションさせるためのデフォーマです。このデフォーマには「ローカルトランスフォーム使用」というオプションがあり、これを有効にするとモーフアイテムのローカル座標で動作するようになります。このデフォーマを変形に使用するジョイントのルートジョイントとペアレントさせることによって、この変形をMorph Influenceデフォーマを適用する部位を限定させることができます。

チャンネルリンクは、modo 401から実装されているアニメーション機能です。あるチャンネルの値の変化を使って、別のチャンネルの値を変更します。このSLIKなどのキットに含まれている器具は、このチャンネルリンク機能を使用してリグが組まれています。キャラクターアニメーションでは、このチャンネルリンクなどmodo 401から実装されたアニメーション機能を多く使用しますので、601からアニメーションを始められる方は、Luxolog TVにあるアニメーション関連のトレーニングビデオやロータリーエンジンなどのチュートリアルビデオをお勧めいたします。また、ピクサー社のRich Hurrey氏によるRigging Master Courseにはmodoでリグを組むためのノウハウが盛り込まれています。Rich Hurrey氏は、modoのβテスターでもあり、modo 601のアニメーション機能にはRich Hurrey氏のアイディアが多く反映されています。


2012年3月17日土曜日

modo 601: 選択とスナッピング

選択とスナッピングの機能に関する変更点が幾つかあります。

Selection Hit Size (pixels)
modo 501までは、ペイント選択で頂点を選択する時の許容範囲はOpenGLのSelected Point Sizeで設定されている値が使用されていました。modo 601では、初期設定パネルに選択に関するカテゴリが新しく追加され、Selection Hit Size (pixels)で設定された値が使われるようになりました。

Point Selection Priority
この値はエッジの端点部分をペイント選択でクリックした場合、エレメント移動などでエッジが選択されてしまう場合と頂点が選択される場合が曖昧なケースがあります。通常はこのような箇所では頂点を優先して選択させたいので、エッジ選択に対する頂点選択の優先順位をパーセントで指定するPoint Selection Priorityを設けました。

Ignore Shading Style
modoの投げ縄選択は、右マウスボタンで選択するとシェーディングビューではレイキャストが働き隠れている頂点は選択されません。ワイヤーフレームビューでは、投げ縄に入っている全ての頂点が選択されます。中マウスボタンでの投げ縄選択ではこの操作が逆になり、シェーディングでは全ての頂点がワイヤーフレームビューでは可視頂点のみが選択されます。Ignore Shading Styleを有効にすると投げ縄選択はビューの表示スタイルに関係なく、右マスでの投げ縄では可視頂点が、中マウスボタンでは全ての頂点が選択されます。

Allow Partial Polygon Selection
このオプションは、投げ縄選択でポリゴンを選択する時のルールに関するものです。通常、投げ縄でポリゴンを選択する場合、投げ縄の中に全ての頂点が選択されているポリゴンのみが選択状態になります。Allow Partial Polygon Selectionを有効にすると頂点の一部でも選択されていればその頂点を含むポリゴンは選択状態になります。

レイジーセレクション
これは、マウスカーソルから離れている頂点を選択する時に便利な機能です。バックスラッシュキーを押しながらペイント選択を行うとSelection Hit Sizeに関係なくマウスカーソルに一番近い頂点が選択されます。形状の輪郭沿いにある頂点を選択したい場合に便利です。レイジーセレクションはペイント選択以外にもエレメント移動などでも使用できます。

1Dスナッピング
1Dスナッピングは、ジオメトリスナッピングで軸ハンドルを移動して時に移動している軸に垂直な平面上にある最も近傍にある頂点に対して、移動している軸に沿ってハンドルがスナップする機能です。この機能で問題だったのは、ハンドル位置と近傍点が離れた位置にあり、形状が複雑でスナップする候補がたくさんある場合、スナップさせる目標頂点を特定させるのが困難な場合がありました。modo 601では、アンスナップカーソルという紫色のカーソルがジオメトリスナッピングで表示されます。このアンスナップカーソルをスナップさせたい頂点に合わせるとその頂点の位置まで正確に軸方向のスナップを行うことが可能になります。このアンスナップカーソルをうまく使うとスナップの目標頂点が遠く離れていても対象形状をぴったり合わせることができます。


2012年3月13日火曜日

modo 601: ウェイトツール

modo 601では、頂点ウェイトを使用したデフォーメーションを行うためにスケルトンジョイントに対応したウェイト設定するコマンドやツールを用意しています。

バインド
バインドコマンドは、各スケルトンジョイントに対応したウェイトマップを一括して作成するためのコマンドです。メッシュに対応するスケルトンが完成しましたらウェイトの初期値を設定するために行います。実行方法は、アイテムメニューでメッシュとスケルトンのルートジョイントを選択し、レストポジションでの編集を行うためにSetupモードにしてから、DeformersタブにあるBindコマンドを実行します。このコマンドには4つのバインドタイプがあります。

Rigidは各頂点に最も近いスケルトンジョイントに100%のウェイトを設定します。各頂点はいずれかのスケルトンのローカル座標系に従属して移動します。Smoothは各頂点とスケルトンジョイントの位置を基準にしてウェイト値を計算します。Falloffを大きくするほどウェイトの重複領域が小さくなりよりリジッドに近い変形になります。SmoothDistanceVisibleの違いは頂点とスケルトンジョイントとの距離の計算方法の違いです。Distanceはスケルトンジョイントと頂点の距離を計算するのに対して、Visibleは頂点の法線方向からレイキャストして求めた交点からの距離を使用します。Heatは熱伝導の計算方法を使用してウェイトを最小自乗法で計算する方法です。トポロジーを考慮して計算を行うためよりフィットしたウェイト値を求めることができますが、メッシュのトポロジー構成に計算がシビアな為、ソルバーが解を求められずに失敗してしまう場合があります。失敗した場合はSmoothモードを使ってみてください。

ウェイトペイントツール
ペイントツールは、modo 601で更にペイントできる対象を広げました。これでテクスチャ画像、バックドロップアイテム、頂点カラー、そして頂点ウェイトに対してもペイントが可能になりました。既存のペイントツールがペイント対象をウェイトに拡張したものですので、いままでのペイント手順と同じ方法で操作できるのが便利です。ウェイトのペイントにはPaint、値を平均化するSmooth、値を削除するErase、値を小さくするScale Downなどのペイントツールが使用できます。もちろん既存のブラシもそのまま使用可能です。

ウェイト調整ツール
エッジウェイトや一般的なウェイトを設定する為に使用されていたウェイトツールもスケルトンジョイントのウェイトを設定するために拡張されています。WeightingタブにあるAdjust Weightsツールは設定されているウェイト値を微調整するためのツールです。左マウスボタンでドラッグすると選択されている頂点やエッジのウェイトが変更されます。右マウスボタンは投げ縄ツールになっていますので、右マウスボタンで頂点を選択し、左マウスでドラッグして値を変更するワークフローです。ウェイトの値を数値で表示されるのも便利です。


2012年3月11日日曜日

modo 601: Alembic

Alembicは、Industrial Light & Magic ソニーピクチャーズイメージワークスが共同開発を進めているコンピュータグラフィックスの中間データ交換フォーマットで、昨年のSIGGRAPH 2011でにおいてAlembic 1.0がリリースされました。



Alembicは、プロダクションが大規模なアニメーションデータを取り扱うことができるように設計されており、各企業でカスタマイズして使用できるようにオープンソースのプロジェクトとしてリリースされています。Alembicの基本コードはプロジェクトのGoogle Codeサイトよりダウンロードすることが可能です。

昨年発表されたAlembic 1.0は、当初の仕様に加えデータの自動重複除外(automatic data de-duplication)が加えられています。この機能は繰り返し使用される同一形状を自動認識し、インスタンスとして保存することによってシーンサイズの大きさや読み書き速度を大幅に改善しています。modoでは、インスタンスおよびリプリケータのデータがこの自動重複除外に対応しています。

Alembicは、ILMおよびソニーピクチャイメージワークス以外にもThe Foundary、nVIDIA、Pixar、Autodeskなど多くの企業がサポートを表明しており、modo 601ではAlembic 1.0に対応した入出力プラグインを標準でリリースしています。

下記はmodo 601から出力されるデータの概要です。

ジオメトリデータ

  • メッシュアイテム、スタティックメッシュ、メッシュインスタンス
  • 面ポリゴン、オリジナルサブディビジョンサーフェイス、Catmull-Clarkサブディビジョンサーフェイス
  • サブディビジョンサーフェイスのウェイト、サブディビジョンレベル、境界ルール
  • UVテクスチャ、頂点法線ベクトルマップ
  • パート、マテリアルタグ
ロケータデータ
  • ロケータ、テクスチャロケータ、グループロケータ、ライト、カメラなどのアイテムトランスフォーム情報
  • アイテムの階層構造
  • 各フレームのアニメーショントランスフォームチャンネルデータ
リプリケータ
  • リプリケータのアニメーショントランスフォームチャンネルデータ
カメラデータ
  • 焦点長、焦点距離、Fストップ、フィルム幅・高さ、フィルムオフセット、レンズスクイーズ、カメラクリッピング
  • 上記の各フレームのアニメーションチャンネルデータ

2012年3月10日土曜日

modo 601: プリミティブツール

今回は少しマイナーな機能改善を紹介いたします。modo 601では、対称モードをオンにした状態で立方体やペンツールなどのプリミティブ作成ツールを使用すると、対称線を挟んだ両側にプリミティブを作成いたします。また、球やトーラスなどのサブディビジョンサーフェイスで作成されていたプリミティブは、サーフェイスポリゴンの種類をオリジナルのサブディビジョンサーフェイス、Catmull-Clarkサブディビジョンサーフェイス、面ポリゴンから選択できるようになりました。デフォルトのサーフェイスの種類を初期設定で設定することも可能です。modo 601は、大きな機能の追加が多いメジャーバージョンアップですが、既存ツールに関しても毎回ワークフローを見直しながら改善を行っています。作業効率の改善という点に関しては、新ツールの追加よりも既存ツールが改善された方が効果が大きい場合があると考えております。私はモデリングツールやUVツールの開発が主な担当なので、モデリング関連のご要望やアイディアがありましたら、是非お願いいたします。


2012年3月9日金曜日

CADローダー

modo 601のリリースと同時にCAD Loaders for modoという新しいプラグインが発売されました。modo 601のリリースの陰に隠れてしまい、あまり注目されていなかったようなので、このブログで紹介いたします。

CAD Loaders for modoは、三次元CADシステムで使用されているデータファイルを直接modoに取り込むための専用プラグインです。読み込み可能なフォーマットは、SIEMENSParasolidフォーマット(.x_t, .x_b)、IGESフォーマット、STEPフォーマットです。Prasolidは、Basic CAD LoaderとAdvanced CAD Loaderの両方に付属します。IGESSTEPは、Advanced CAD Loaderのみに付属します。

これらのCADデータは、機械部品や建築設計の中間データ形式として使用されており、特に機械部品の設計ではNURBS(Non-Uniform Rational B-Spline)と呼ばれる高度な表現力を持った自由曲面が使用されています。

NURBSは、modoではサポートされていない曲面形式であるため、これらの曲面を有するモデルデータをmodoに読み込む場合は、外部のコンバータなどを使用して細分化した面ポリゴンに分割してから取り込む必要がありました。この場合、不必要に細分化が細かすぎたり、分割したポリゴンの構成がレンダリングに適さない場合は、読み込んだデータから新しくモデルをトレースして作り直すなどの時間がかかる作業が必要でした。

CAD Loaders for modoは、これらのCADファイルからモデルデータを単純に細分化して読み込むのではなく、プロシージャルサーフェイスアイテムとしてNURBSなどの曲面情報をそのままmodoに取り込みます。そして表示されているモデルをmodo上で確認しながら細分化のレベルを読み込んだ後にダイレクトに変更することが可能になります。プロシージャルサーフェイスアイテムは、Gearアイテムなどと同じアルゴリズムによってサーフェイスをオンザフライで作成するアイテムタイプで、modo 501からサポートされています。このプロシージャルサーフェイスアイテムは、マテリアルのグループごとマテリアルをシェーダツリーで設定して、そのままレンダリングすることもできますし、メッシュアイテムやスタティックメッシュに変換することも可能です。

更にこのCAD Loaders for modoが賢いのは、CADフォーマットの中で繰り返し参照されている部品の形状をmodoのインスタンスやリプリケータとして読み込むことができます。これにより、複雑な形状も比較的少ないメモリ消費でmodo上に読み込むことが可能になります。


2012年3月8日木曜日

modo 601: レンダーディスプレー

modo 601で、最も目立つ新機能はレンダーディスプレーではないかと思います。F9キーでレンダリングするとmodo 501で表示されるレンダーディスプレーとは全く別の大きなウィンドウが表示されます。modo 601のレンダーディスプレーは、単にレンダリング結果を表示するためのウィンドウではなく、レンダリング結果の画像処理、比較、解析などのインテリジェントな機能が装備された新しいウィンドウです。機能は沢山ありますので、各項目の詳細についてはオンラインマニュアルをご覧ください。

画像処理(Image Processing
このタブにある機能を使用して、レンダリング画像に対して様々な画像処理を行うことができます。画像処理によって変更した結果はただちにレンダーディスプレーに表示されているレンダリング画像に反映されます。変更可能な画像処理には、入力レベル、出力レベル、出力ガンマ、トーンマッピング、ブルームなどがあります。これらの処理は通常レンダー出力の項目でレンダリング前に設定するものです。この画像処理の機能がユニークなのは、レンダー出力とこの画像出力の間で設定値をコピーアンドペーストできる点にあります。レンダーディスプレー上で設定項目を実験した結果をこれからレンダリングするシーンに設定するワークフローが可能になります。



レンダリング画像の比較Compare, Region, Options
このタブでは2つのレンダリング画像を比較するための方法がいくつも用意されています。Compare Withでは、2種類の画像を左右もしくは上下のウィンドウで比較したり、ディゾルブによって画像を重ねて比較することもできます。スポットライトを使用するとマウスカーソルの下にある領域だけ下の画像を表示させるという比較も可能です。もちろん、RGBのカラー画像だけでなく、画像の各種レイヤーは成分単位の比較も可能です。




統計情報Statistics
このタブはレンダリング結果の様々な統計情報を詳細に表示します。ジオメトリキャッシュやICキャッシュの情報に加えて、バケットバッファ、フレームバッファ、ライトキャッシュのメモリサイズも表示されますので、レンダリング時に必要とされるメモリの算出に便利な情報を得ることができます。また、レンダーディスプレーはレンダーパスのグループ単位に画像を保存したり、表示を切り替えることもできます。レンダーパスのグループ内で実験的に設定を変更したパスを比較することも考慮して設計されています。


2012年3月7日水曜日

modo 601: ソフトセレクション

ユーザーの方々からのリクエストに基づき、ソフトセレクションという機能を追加いたしました。modo 601のソフトセレクションはフォールオフツールとして実装されています。

通常のフォールオフツールは選択されている頂点に対して、ツールが影響する度合いをウェイトとしてコントロールしています。このソフトセレクションフォールオフが、他のフォールオフと異なるのは、選択されているエレメントのウェイト値を100%とし、選択されているエレメントの周辺にある選択されていないエレメントに距離に応じたウェイト値を設定する点にあります。従って、選択されていない周囲のエレメントもウェイトが設定されていれば編集可能な選択状態として扱われます。

ソフトセレクションは、選択>移動回転>影響範囲の調整を繰り返しながらのワークフローを想定していますので、セレクトスルーとローカルアクションアクシスなどと組み合わせて使用すると便利です。modo ToolsのDeformタブには、セレクトスルーとローカルアクションアクシスが組み合わされたSoft Selection Move, Soft Selection Rotate, Soft Selection Scaleなどのツールプリセットが登録されています。

また、フォールオフツールとして実装されることによって、トランスフォームツール以外のモデリングツールでも使用することが可能です。


2012年3月6日火曜日

modo 601: Unity+modoパイプライン

3月5日からサンフランシスコのモスコーニコンベンションセンターでは、Game Developer Conferenceが開催されます。このブログでもUnityとmodoを使ったゲーム開発のパイプラインを紹介いたします。Unityはスマートフォンやゲームコンソールなどで幅広く使われている人気のある3Dゲームエンジンです。modoで制作したシーンデータをUnityに変換するパイプラインに関する情報をまとめておきます。

modoからUnityのツールキットにシーンデータを変換するフォーマットは、FBX、COLLADAに加えmodoネィティブのLXOファイルがあります。この方法に関しては、UniftyのマニュアルページのImporting Objects From Modoに詳しく解説されています。Luxology社は、modoとUnityとのパイプラインに関して以前からUnity Technologies社と協力して開発を進めています。Luxology社のこちらのプレスリリースもご覧ください。


また、イーフロンティアさんのグラフィクス製品ニュースでは、modoのモデルデータをUnityに読み込んでみるで詳しくこのパイプラインを解説してくれています。こちらの記事も併せてご覧ください。




Wes McDermottさんは、初期の頃からmodoを使ったUnityのゲーム開発を消化している方でmodoのベータテスターでもあります。3D Game Art for the iPhone with Unityという著書では、modoとBlenderを使用してUnityを使ったゲーム開発を行う方法を紹介しています。

Luxology JPブログは、modo + Unity3.5を使用して制作したGear Boxというデモゲームを紹介しています。



modo 601では、FBXを経由してmodo 601で作成したスキンデフォーメーションの情報をUnityに取り込むことができるようになりました。下記はWes McDermottさんがmodo 601を使用して制作されたデモゲームです。



modo 601: スリップUV

スリップUVというオプションがトランスフォームなどの幾つかのツールに新しくつきました。このオプションは、ポリゴンメッシュを3Dビュー上で編集したときに、UVマップ上の対応するUVポリゴンを同時に修正します。

たとえば、UVテクスチャが貼り付けられたメッシュのエッジループを3Dビュー上で移動した場合、移動した頂点のモデル空間上の座標値のみが移動します。UVマップの対応する値はそのままの位置にあるため、結果としてマップされたUVが歪んでしまいます。

スリップUVは、3次元空間上の移動方向からUV空間での頂点の移動方向と移動量を推測してUV頂点を同時に移動します。これにより、UVテクスチャが貼り付けられたポリゴンメッシュのテクスチャは3次元空間上で正しい位置に保持されます。このオプションは3次元空間のポリゴンが投影されている平面を個別に推測し、その平面上に移動ベクトルを投影するため、極度に大域的な回転やスケールを行うと投影が旨く働かない場合がありますので、頂点の一部を編集したいときのみ、このオプションを使用することをお勧めいたします。

下記がスリップUVのオプションを持つツールです。


  • 移動、回転、スケールツール(トランスフォームツール)
  • 軸回転ツール
  • ベンドツール
  • ジッターツール
  • 量子化ツール
  • スライドツール
  • トポロジーペン
  • その他、フレックス、シアー、ソフトドラッグなどのトランスフォームのツールプリセット
このスリップUVオプションは、上記のツールで個別のツールアトリビュートとして実装されていますが、最後に使用した値は各ツール共通項目としてキャッシュされます。例えば、移動ツールでスリップUVをオンにして使用し、次にベンドツールを起動した時は、ベンドツールのスリップUVもオンになっています。


2012年3月5日月曜日

modo 601: リトポロジー

modo 601では、3Dスキャナからスキャンした高密度のメッシュやスカルプティングで造形したメッシュに対して、アニメーションで使用可能なきれいなポリゴン構造を持ったローポリゴンのメッシュを作るためのワークフローが見直されました。

modo 601のTopoタブには、背景メッシュの上から上書きする全景メッシュのポリゴンを見やすく表示するためのTopology表示モードが設定されています。また、デフォルトで頂点も表示されるようになっています。このTopology表示モードにより、複雑な背景メッシュを表示しながらローポリゴンを構築していくことが可能になります。

Topoタブに並べられているツールは、背景コンストレイントが組み込まれたツールプリセットになっています。背景メッシュを配置して、Topoタブのペンツールを起動すれば、余計なセットアップを必要とせずに、背景のメッシュにスナップしたポリゴンを追加することができます。また、ペンツールのラインモードで作ったラインポリゴンの間をブリッジツールやトポロジーペンを使ってポリゴンでつなぐことも可能です。

その他、N多角形を複数の四角形に分割する"Convert to Quadrangles"コマンドの追加、Dキーで実行するポリゴン分割コマンドの背景コンストレイント対応などコマンド群もブラッシュアップされています。

背景コンストレインには、"Point"という新しいモードが追加されています。このモードは既存の"Screen Axis"と非常に似ていますが、必ず背景メッシュのどこかに吸着する点がことなります。"Screen Axis"を有効にして、頂点を移動すると操作しているビューのワークプレーン(白く表示されているグリッド)に平行な面に対して移動が行われた後、このワークプレーンに垂直なレイと交差する背景メッシュの位置に吸着が行われます。これに対して、"Point"モードは、頂点を移動すると操作しているビューのワークプレーンに平行な面に対して移動が行われた後、ここから最短の距離にある背景メッシュ上の位置に吸着が行われます。"Screen Axis"モードは、移動点に背景メッシュが外れて置かれている場合は吸着されない反面、スクリーン上での動きはよりスムーズですので凹凸が激しい形状では、"Screen Axis"での操作が適しています。

トポロジーペンは、modo 601で新しく追加されたツールです。トポロジーペンは、リトポロジーを手動で構築する作業手順を見直し、頻繁に利用するツール群を一つのツールにまとめたものです。これにより複数のツールを切り替えずに異なる操作をこのツール一つで行うことができます。また、組み合わせに制限はありますが、幾つかの機能は修飾キーとマウスボタンの組み合わせに割り付けられています。

  • 頂点、エッジ、ポリゴンの移動(左マウスボタン)
  • エッジループの移動(右マウスボタン)
  • ポリゴンを頂点から頂点でスプリット(中マウスボタン)
  • 境界上の頂点、エッジの複製(SHIFTキーを押しながら左マウスボタン)
  • 境界上のエッジループの複製(SHIFTキーを押しながら右マウスボタン)
  • ループの追加(SHIFTキーを押しながら中ボタン)
  • スライド(Ctrlキーを押しながら左マウスボタン)
  • 頂点、エッジ、ポリゴンの削除(Ctrlキーを押しながら中ボタン)


2012年3月4日日曜日

modo 601: IKとデフォーメーション

modo 601の最大の機能追加は、インバースキネマティクスとデフォーメーションシステムによるキャラクターアニメーションワークフローの強化です。これらの機能追加は、単なるボーンを使ったデフォーメーションのツールの追加ではありません。

デフォーメーションは、メッシュを様々な方法で変形させるための手法で、高速性・柔軟性が要求されます。modo 601にはデフォーメーションを効率よく実装するために必要な堅牢なデフォーメーションシステムが実装されています。頂点をウェイト情報を元にメッシュに関連づけられたロケータのトランスフォームでブレンドするデフォーメーション(いわゆるボーンデフォーメーション)は、General Influenceデフォーマとして実装されています。これ以外にもフォールオフをデフォーマとして使えるようにしたフォールオフデフォーマやスプラインデフォーマ、トランスフォームデフォーマ、モーフデフォーマなどたくさんのデフォーマが実装されており、複数のデフォーマをブレンドして高度なアニメーションを可能にしています。

インバースキネマティクスに関しては、IKinemaのフルボディIK/FKエンジンがライセンスされています。IKinemaのフルボディIK/FKエンジンは、リアルタイムCGのミドルウェアとしても使用されている非常に高速で強力なソルバーです。このIKinemaのアニメーションツールはMayaのプラグインとしても発売されています(このMayaのプラグインは5万円ぐらいするそうです)。

modo 601のキャラクターアニメーションの基本はポーズベースドアニメーションです。キャラクターに対するポーズ付けを行い、各ポーズをキーフレーム上に配置して補完を行います。ここでもポーズの設定に使用されるのがレンダーパスで使用したグループです。modoでは、このグループの概念がレンダリング、アニメーションなどいろいろな用途で登場します。

また、各ポーズでの関節が曲がった状態の筋肉のふくらみ具合は、スカルプティングで行います。モーフを作成し、モーフ上にあるポーズの状態に適した頂点の移動情報を保存し、モーフデフォーマを使って、アニメーションにします。指の曲がり具合との連動には、チャンネルリンクが利用できます。チャンネルリンクなどリグを構築する為のインフラは既にmodo 501で実装されていましたので、キャラクターアニメーションにおいてこのシステムが真価を発揮します。modo 501の為にリグを構築するチュートリアルはLuxology TVなどに沢山ありますので、この機会に是非ごらんになってみてください。

modo 601のアニメーションを学習する為には、601 Spotlightに含まれているFireboyのチュートリアルが最適です。日本語版に関しては、現在イーフロンティアさんがフル稼働でローカライズ作業を行っていますので、日本語版が完成しましたら是非ごらんになってください。

下記はキャラクターのスキンデフォーメーションを設定する為の大まかな手順です。もちろん、各行程は調整を繰り返しながら行う事になります。

  1. メッシュアイテムにSkeletonツールでスケルトンジョイントを作る。
  2. General Influenceデフォーマを追加し、メッシュアイテムとスケルトンを関連づけ、デフォーメーション可能状態にする。
  3. Bindコマンドで、メッシュアイテムにスケルトンジョイントに対するウェイトマップを作成する。
  4. スカルプトツールやウェイトツールを使って、ウェイトの調整をする。
  5. モーフデフォーマの追加、チャンネルリンクなどの設定を行う。
  6. リグの設定、IKの設定を行う。
  7. Poseツールを使用して、キャラクターにポーズ付けを行う。
  8. 各アクターのポーズをキーフレームに配置し、アニメーションを作成する。
各行程の詳細は、601 SpotlightのFireboyのチュートリアルやLuxology TVにアップされているデフォーメーションやアクターのポーズ付けのチュートリアルビデオを参照してください。下記はウェイトを付けるまでの簡単な設定手順をビデオで解説いたします。



2012年3月3日土曜日

modo 601: セルシェーディング

modo 601で、セルシェーディング、セルエッジシェーディングの機能も強化されています。modo 501では、RenderOutputFinal Colorの設定として、サーフェイスの境界に対して稜線を書くことができました。modo 601では、このRenderOutputのContour Colorに関しても機能強化が行われていますが、これとは別に新しくCel MaterialCel Edge Materialが追加され、シェーダツリーからマテリアルとしてセルシェーディングとセルエッジシェーディングを設定することができるようになりました。

下記は簡単な設定方法の解説ビデオです。





オープンフォーラムでは、xtrm3dさんが早速セルエッジシェーディングを使ったテストを披露してくれています。



Luxology TVでは、本日Bradさんがセルエッジシェーダを使いこなすためのトレーニングビデオ Working with Cel Edgesを公開していますので、セルシェーダ、セルエッジシェーディングに興味のある方は是非ごらんになってください。

また、日本のクリエータの方からのセルシェーディングに関する、ご意見、ご要望も歓迎いたします。セルシェーディングに関して追加して欲しい機能などがありましたら、今後の開発にフィードバックさせていただきます。



modo 601: テクスチャリプリケータ

パーティクルの新しい用途として、パーティクルの位置情報を使ってテクスチャをマッピングするテクスチャリプリケータという機能が追加されました。通常、テクスチャマッピングは、UVマップを使ってマッピングしたり、平面、球体、立方体などのアルゴリズムで投影を行います。テクスチャリプリケータは、パーティクル一つ一つの場所に画像を個別に配置します。

このマッピングは、自然形状のテクスチャマッピングや地面のランダムな位置にテクスチャを配置するなどの用途に使用することができます。スプライトアイテムが樹木などのテクスチャを看板のようにカメラに向かって配置するのに対して、テクスチャリプリケータは地面や岩肌に貼り付けるようにマッピングすることができますので、組み合わせて自然景観の表現力をアップすることができます。


簡単なテクスチャリプリケータの使い方をアップしました。


2012年3月2日金曜日

modo 601: パーティクルアイテム

パーティクル解説の補足として、パーティクルを生成するアイテムを追加いたします。

パーティクルジェネレータは、複製ツールで使用されているジェネレータツールのようにリニア、アレイ、ラディアルの形で、計算された位置にアルゴリズムでパーティクルを発生させます。このパーティクルの位置情報は、CountやLenghtなどのアトリビュートでコントロールできますので、アニメーションでパーティクルの数や位置を規則的にコントロールできるのが大きな特徴です。

また、パーティクルステップモディファイアと組み合わせることによって、各パーティクルに差分で移動、回転、スケール情報を与えることができます。使い方によっては、非常におもしろいアニメーションが作れる強力な機能です。

これらのパーティクルを生成するアイテムは、全てSDKを使ってプラグインとして実装されています。このパーティクルを生成するアイテムプラグインはこれからもっと増えていくのではないでしょうか。

パーティクルアイテムのビデオをアップしました。ビデオはベータバージョンで収録しているため、pModやreGeneratorという名称を使っていますが、リリース版ではパーティクル、パーティクルジェネレータという名称に変更されています。


modo 601: パーティクル

パーティクルは、modo 601の新しい機能と組み合わせることによって、様々な用途で使用されるようになりました。パーティクルというのは、位置情報を持ったポイントの総称で、実体としては頂点ツールやメッシュペイントなどで作られるメッシュアイテムの頂点データやサーフェイスジェネレータが生成するサーフェイス上のポイントデータなどがあります。

modo 501では、主にリプリケータがパーティクルデータの利用者でした。ポイントソースにメッシュやサーフェイスジェネレータを指定することによって、ポイントソースの位置にプロトタイプの形状を配置します。

modo 601では、このパーティクルの位置情報を利用するボリューム関連のアイテムが沢山追加されました。

ブロッブアイテムは、メタボールや濃度球とも呼ばれ隣接するパーティクルと融合してなめらかに融合した等値面を表現します。水の表現などに使用されます。

スプライトアイテムは、パーティクルの位置にカメラの方向に向いた画像を配置します。樹木や群衆などの表現に適しています。

ボリュームアイテムは、雲や煙などの表現を行うためのアイテムです。

テクスチャリプリケータは、画像テクスチャに追加された新しいアトリビュートでテクスチャをポイントソースで指定した位置に貼り付けます。

また、パーティクルを生成する方法も増えています。

パーティクルペイントツールは、メッシュの表面上に頂点をペイント感覚で生成します。

RealFlowの連番ファイルであるBINファイルもRealFlowパーティクルアイテムを追加することによってmodoに取り込みが可能です。

Particle Generatorアイテム、Particle Cloudアイテムは、アルゴリズムでパーティクルの位置情報を作り出します。

その他、パーティクルの位置情報を制御するツールや付加情報も追加されています。

スカルプトツールは、新しくパーティクルに対してスカルプトができるようになっています。

メッシュアイテムの頂点に対しては、各パーティクルのサイズや回転情報を保存する頂点マップが追加され、スカルプトツールや回転ツールなどで一つ一つのパーティクルの向きやサイズが調整できるようになりました。

パーティクルの使い方を解説するビデオをアップしました。より詳しくは601 Spotlightチュートリアルの4_Replicator_Enhancementsが参考になります。



2012年3月1日木曜日

modo 601: レンダーパス

本日はもう一つレンダーパスについて解説いたします。レンダーパスは、異なるレンダリングの設定を管理するための新しいワークフローです。正確には単にレンダリング設定だけでなくチャンネル値として設定できる値はすべてレンダーパスでコントロールできます。

主な用途としてはテスト用・本番用にレンダリング設定を変更して、別々にレンダリングしたり、異なるマテリアルやテクスチャを設定してレンダリング結果を比較するなどがあると思います。

チャンネルの値は、アニメーションのキーフレームとして時系列に変更することができますので、このキーフレームで変更される値を利用して、レンダリング設定を管理されていた方も多いのではないでしょうか。レンダーパスは、このキーフレームで変更可能なチャンネル値を時系列なキーフレームではなく、レンダーパスという器に保存して管理しています。

使い方は非常に簡単ですので、是非お試しください。一度このレンダーパスに慣れると今までなんでなかったんだと思われるかもしれません。





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さんが紹介した機能のビデオがアップされています。個々の機能の紹介は、このブログ上でできるだけ紹介していこうと思います。