2019年4月

Tips

modoでコンポーネントのランダム選択

modoのコンポーネント(頂点、エッジ、ポリゴン)をランダム選択する方法を紹介します。使用頻度は多くないかもしれませんが、地面やレンガなどランダムに選択して起伏をつけたいときに便利です。

 

modo 12.0にはHatchet Collection Python Scriptsから、いくつか便利スクリプトがmodoに搭載されるようになりました。マニュアルには「曲線のオフセット、ランダム選択、フラット化など、さまざまな新しいツールがインターフェイスから利用できるようになりました」と書かれてるのですが「ランダム選択」はメニューにもツールパレットにも表示されていません。

しかしスクリプトはインストールされているので、コマンドを実行すれば「ランダム選択」を使用できます。

 

ランダム選択 コマンド

  • @ppi_Random_Select_Edges.py
  • @ppi_Random_Select_Polys.py
  • @ppi_Random_Select_Verts.py

 

半分選択 コマンド

もう一つUIに表示されていない選択機能があります。象限を指定して選択する機能です。対象モデリングで半分だけ選択して削除したい場合に便利だと思います。

  • @ppi_Select_Half.py

 

参考

フォーム編集でUIにボタンを追加しておくと便利に使えるようになると思います。

Tips

modoのプロシージャルメッシュをリジッドボディダイナミクスで使用する方法

modoのプロシージャルメッシュをリジッドボディダイナミクスで使用する方法について書いてみたいと思います。

modoではメッシュを選択して「アクティブリジッドボディ」ボタンを押すと、プロパティに「ダイナミクス」タブが追加されて「シミュレーションを演算」することができます。

ところがプロシージャルメッシュ(メッシュオペレータ)でメッシュを生成した場合、通常の手順で「シミュレーションを演算」してもうまく動作しません。ダイナミクス タブで「スタティック」をOFF、「衝突シェイプ」を任意に変更する必要があります。

恐らく「アクティブリジッドボディ」ボタンはメッシュオペレータでメッシュを生成したものを認識せず、空のメッシュアイテムとしてダイナミクスの初期設定を行います。手動で適切に設定してあげれば、リジッドボディダイナミクスとして計算する事ができます。

今回のスケマティックはこんな感じ。Encode Stringはmodo 13以降は不要です。

 

プロシージャルメッシュをSwitch Stringで切り替えた場合、リジッドボディは0フレーム目のメッシュを使用してシミュレーションを実行する気がします。また、プロシージャルメッシュを「ソフトボディ」で計算することはできないようです (modo 13.0現在)。「シミュレーションの再生」ボタンではシミュレーションが実行されるのですが、「シミュレーションを演算」しても演算結果がキャッシュできないようです。

プロシージャルメッシュとダイナミクスの組み合わせは、もう少し改善してくれると助かりますね。

 

参考

参考資料

Tools-Based Rigging in Bungie’s Destiny

Destinyのアニメーションパイプラインを構築するための、MayaのPythonコードベースとツールセットの開発方法についての講演ビデオ。

IKとFK両方のスケルトン作って切り替えてるのか。MayaなのにスケルトンをCATみたいに箱形にしてるのが面白い。Bungieのモジュラーリグシステム、リターゲットツール、アニメーター向けのリグツール。

Tips

modoでオブジェクトの内側のパーティクルを検出する方法

modoでオブジェクトの内側のパーティクルを検出する方法を紹介したいと思います。今回もFoundryのフォーラムで公開されていたYahllさんのアイディアです。

https://community.foundry.com/discuss/topic/88018/

サンプルファイル(再アップ)

基本的にはIntersectを2個使ってメッシュの内側を判定して、内側になったパーティクルからParticle Operatorでパーティクルを発生させています。
Intersectは+YとーY方向からメッシュの内側を判定してるのでトーラスの穴の部分も内側と判定されていますが、X方向のIntersectを追加すれば解決すると思います。

 

modo13からはMergeMeshがパーティクルに対応したので、アセンブリの「Select By Volume」を使って手軽にメッシュの内側を判定できるようになりました。ただし、直接パーティクルを制御する方法に比べると、少し動作が重くなります。

サンプルファイル

 

基本的なノードを組み合わせてパーティクルを制御するYahllさんのサンプルはどれも凄く勉強になりますね。

参考

CG News

MAXONがREDSHIFTの買収

MAXONがREDSHIFTの買収を発表しました。現在のところC4Dに標準搭載されることはないようですが、より密接に動作するよう改善が進むようです。
しばらく併売で、将来的には標準搭載ですかね。GPUレンダラー羨ましい!
https://www.maxon.net/en/news/press-releases/article/maxon-acquires-redshift-rendering-technologies/

即時影響
  • Redshiftの価格設定は変更されません。 顧客は従来どおりRedshiftを引き続き購入できます。
  • Redshiftは、Maya、3dsmax、Houdini、Katanaで引き続き利用可能です。発表されたBlender用のプラグインの開発は予定通り継続されます。 将来、追加の統合が検討される可能性があります。
  • Redshift 3.0のリリース計画と開発は影響を受けません。
  • Cinema 4Dはプラグインアーキテクチャを通して他のサードパーティ製レンダリングエンジンもサポートし続けます。

 

Redshiftは、Cinema 4Dに統合されますか?

RedshiftはすでにCinema 4Dへの優れたサポートを提供している独立した製品です。 MaxonとRedshiftは密接に連携して、連携を今日よりもさらに良くするでしょう。

Tips

modoでカーブに沿ってパーティクルを動かす方法

modoでカーブに沿ってパーティクルを動かす方法を紹介したいと思います。前回同様にFoundryのフォーラムで公開されていたYahllさんのアイディアです。

https://community.foundry.com/discuss/topic/86939

 

サンプルファイル(再アップ)

このシーンではPath Constraintを使用することで完全にパスに沿ったパーティクルを実現しています。
1つめのParticle Simulation(青色)はY軸方向に移動するだけの単純なシミュレーションです。このシミュレーションのパーティクル位置をPath Constraintノードを使用してパスに沿わせ、Collector / Emitterノードを使用してカーブに沿ったパーティクルを発生させています。 2つめのParticle Simulation(オレンジ色)。

以前はParticle Simulation を2つ使って計算するという発想がありませんでしたが、このサンプルを見てパーティクルの位置をブレンドするとことができそうだと思いつきました。

 

modoには Curve Force という、カーブに沿ってフォースを発生させるノードがあります。しかし、あくまでフォースであるためパーティクルの速度が速くなるとCurve Forceの影響範囲を飛び出したり、Curve Force の影響範囲が干渉してパーティクルが止まってしまうことがあります。

サンプルファイル

 

modo 13からはMerge Meshがパーティクルに対応したので、シミュレーションしたパーティクルをデフォーマで変形することができます。

サンプルファイル

 

同じような表現をするにも複数のアプローチがありますが、Path Constraintを使用する方法が一番計算速度が早いように思います。発想的にも面白いので、他のパーティクル制御に応用出来る気がします。

 

参考

CG News

STARDUST 1.4.0

Stardustバージョン1.4.0がリリースされています。既存ユーザーは無料アップデート。だいぶ進化してきてますね。
https://www.superluminal.tv/blog

 

概要

3Dボリュームライティング、基本的なパーティクルタイプの大幅なレンダリング速度の向上、拡張されたレンダリング機能、Shadow CatcherマテリアルやShadow出力などのコンポジットヘルパー、アニメーションツールの改善、OBJファイルインポーターなどのワークフローヘルパー、その他多数の追加機能ツールセット

Version 1.4.0
  • 3D Volumetric Lights – シーンの影を考慮しながら、シーンに大気効果を追加します。
  • GPUサークル/クラウド – 非常に高速化されたサークルおよびクラウドパーティクルはGPUを使用してレンダリングされます。
  • 全体的なパフォーマンスの向上とワークフローの合理化
  • スムーズメッシュ – モデルメッシュを改良します。
  • より良いDOF。レンダリング設定の品質によって制御されます。
  • シャドウキャッチャーマテリアル – 影は透明なサーフェースにレンダリングされます。
  • 新しいレンダリング出力 – シャドウ、ボリューム
  • Fog – シーンにボリュームフォグ効果を追加します。
  • オフセットエミッタ時間(プレ実行) – 初期状態を設定するためのタイムシフト固有のエミッタ。
  • OBJファイルのインポート – 完全なプロジェクトファイルコレクションのためにプロジェクトにインポートされたネイティブOBJファイル。
  • 反射 – 新規:サーフェス法線による歪みに影響します。
  • マップ – 追加:Densityプロパティ。
  • レプリカ – 追加:パスへの方向付け。
  • 修正 – シングルモデル – スタジオカム。
  • 修正 – レイヤーエミッタ – 空のアルファをスキップします。
Version 1.4.1
  • 32bpcのテクスチャ付きパーティクルのレンダリングに失敗する問題を修正しました。
  • Windowsの一部のNvidia GPUでレンダリングが失敗する問題を修正しました。

 

 

チュートリアル

CG News

Flame 2020

AutodeskがNAB2019でFlame 2020を発売するそうです。新機能として機械学習を使用して、静止画像や動画の分析に基づいてモーションベクター、Z深度、3D法線の抽出が可能になるそうです。
https://www.fxguide.com/quicktakes/flame-embraces-deep-learning/

Z深度マップジェネレータ

 

人間の顔法線マップジェネレータ

 

CG News

After Effects CC 16.1 リリース

After Effects CC 16.1がリリースされました。目玉機能はAdobe Senseiエンジンを使用した「コンテンツに応じた塗りつぶし」、動画から人やカンバンを自動で消すことが出来る機能です。面白そう!
https://www.adobe.com/products/aftereffects/features.html

ビデオ向けコンテンツに応じた塗りつぶし

ブームマイクから看板、人まで、不要なオブジェクトをクリップから簡単に完全除去できます。Adobe Senseiエンジンによるコンテンツに応じた塗りがクリップ全体に適用されるため、フレームごとにオブジェクトの消去や置換を繰り返す手間と時間を大幅に節約できます。

 

エクスプレッションエディター

新しいエクスプレッションエディターには、行番号、ペアの波括弧のハイライト表示、コードの折り畳み機能があり、エクスプレッションの記述が簡単にできます。

パフォーマンスの強化

ラフエッジ、色を変更など、GPU高速処理対応エフェクトの種類が増えました。16-bpc、32-bpc両方のカラーをサポート。

ガイドを保存してPremiere Proのエディターと共有

ガイド設定の読み込みと保存により、新規プロジェクトでの再利用やPremiere Proのエディターと共有して相手のシーケンスのパラメーターを設定できます。

フォントの自動同期

別のマシンまたは別のプロジェクトに切り替える際、環境に無いフォントは、Adobe Fontsにあれば自動的に同期されます。

幅広いフォーマットのサポート

REDのデベイヤー処理がmacOSのMercury GPU高速処理(Metal)に対応しました。Sony VENICE X-OCNの映像素材の読み込みができます。

その他

フレームブレンドとモーションブラーを自動的に有効にし、旧エクスプレッションを新しいJavaScriptエクスプレッションエンジンと新スクリプトに容易に更新できます。

Tips

modoでサーフェースの色をパーティクル色に設定する方法

サーフェースの色をパーティクル色に設定する方法を紹介したいと思います。Foundryのフォーラムではさまざまな質問と共に多くの面白いサンプルファイルが共有されています。

今回紹介するのは「パーティクルがサーフェース色を継承できないか?」というスレッドのものです。
https://community.foundry.com/discuss/topic/88111

パーティクルをサーフェースから発生させる場合に、発生元のサーフェース色をパーティクルに継承したいことがあります。このスレッドでYahllさんが公開してたサンプルファイルは、私にはよく理解できませんが、確かに問題をクリアしている素晴らしいものです。

サンプルファイル(再アップ)

スケマティックを見るとParticle Operatorで「色」を「位置」に繋げていているのが面白いトリックです。Shader Inputsの「パーティクル色」をパーティクルの位置として扱っていて、Intersectを使用してサーフェースとパーティクルの方向を計算しています。最後にRaycastでサーフェース色を拾って、マテリアルの「ディフューズ色」に割り当ててます。

Particle Operatorの値をシェーダーノードが直接受け取れないので「色」を「位置」に繋げてる所は理解できます。その後の計算が成立してる意味かよく理解できないですが、パーティクルがサーフェース色を継承できています。

しかし、この方法では球体が回転するとパーティクルの色も回転に合わせてかわります。Time Offsetで1フレーム固定のようなことができればいいのですが、残ながらTime Offsetをシェーダーノードに使用するとmodonがフリーズしてしまいます。フォースでパーティクルを動かす場合は、パーティクル発生時の色を利用する仕組みを考える必要がありそうです。

 

Raycastを使用してサーフェース色を使用する単純なシーンも公開しておきます。このシーンはロケータの-Y方向の色をRaycastノードを使用して拾ってます。

サンプルファイル

スケマティックはこんな感じ。上半分は関係ありません。GLの見た目上のものです。

 

シェーダーノードはLightWaveで挫折してから苦手意識があって使わなくなってましたが、こういう自分では想像もつかないサンプルファイル公開してくれるのはすごく助かります。