CG 日記

CG News

MODO 11.2 リリース

MODO 11.2 がリリースされました。11シーリーズ最後のバージョンです。
https://community.foundry.com/discuss/topic/136381/modo-11-2-has-been-released

ダイレクトモデリングの改善

・ポリゴンベベルの改良(Square Corner、Offset Even、Offset Even、Thicken )
・エッジベベルの改善( Mitering Offset 、Maintain Co-Planar Edges)
・選択されたものだけをスナップするオプション追加

UVツールの強化

・マップされていないポリゴン選択
・3DビューポートにUVの歪み表示
・エラーUVの選択(スタック、UDIM境界を越えてる、ゼロエリア )

プロシージャルモデリング

・前回の操作で選択(スライス、軸スライス、軸ドリル、ソリッドドリル、ブール、曲線スライスをサポート)
・テキストツールのパフォーマンス向上
・Set Polygon Type 追加
・ポリゴン反転 追加
・ポリゴンタグで選択 追加

アニメーションのパフォーマンス

・ウェイト編集 (リギングされたキャラクターを操作して変形したウェイトを編集するワークフロー改善。ウェイトツール、ウェイトの調整ツールはキャッシュされた要素のみ更新)

ファイルI / Oの更新

・Alembic I/Oの改善 (Export Replicas Asオプションが追加され、リプリケータのエクスポートを「ジオメトリ」「パーティクル」「パーティクルとジオメトリ」から選択可能)
・FBX 2017、FBX 2018 サポート

クラウドベースのプリセットブラウザ

・Cloud Assetフォルダ内のプリセットやキットをダブルクリックするだけでローカルシステムにインストール

MeshFusionのアップデート

・エッジウェイトのサポート
・パフォーマンスの向上
・アイテムベースのマテリアルグループ
・RibTrim、ElboPipeアセンブリ追加
・フュージョンパイメニューとドラッグ&ドロップのモディファイヤキー更新

ワークフローの改善

・Unreal Bridgeの改善(複数のシーンでシームレスに作業できるように改善。プッシュインタフェースの簡素化。プリケーション設定としてサブフォルダの検索、アクターの識別、アセットの命名を追加。新しいプッシュオプションとしてメッシュアセットのリセット追加)
・レンダリングの改善(ディズニーのPrincipled Shader追加。True Fresnel追加)
・シーンのクリーンアップ(空のメッシュアイテム、空のグループ、未使用アイテムを現在のシーンから削除)
・チャネルホールツールの改善(自動的に3Dビューポート内のユーザーチャンネルを表示するように更新)
・GLプレイブラスト(アニメーションのクイックプレビューを作成)
・レンダリングパスオーバレイ(3Dビューポートの右下隅にパス名を表示)
・グループマスクのテクスチャレイヤー(アドバンスドビューポートでグループマスクテクスチャをサポート)
・カメラの改良(3Dビューポートのカメラフレーミング領域の表示を切り替え。有効前景と背景画像に「有効」チェックボックス追加)

ムービーで紹介されてない機能

・ペイントの前景色設定
・平面マッピング(Front Culling オプション追加)
・3Dビューポートで選択アイテムの描画オプションが追加

Modo 11.2 Quick Clips

https://vimeo.com/album/4746573

FlexFuse Kit for Modo 11.2

modo 11.2のリリースに合わせてMeshFusionの開発者 Darrel Anderson さんが作ったキットが公開されました。
https://community.foundry.com/discuss/topic/136402/introducing-the-flexfuse-kit-for-modo-11-2

FlexFuse Kitはモデリング用のプロシージャルプリミティブプリセットです。MeshFusion向けに作成されてますが、プロシージャルモデリングワークフロー全体で使用することもできます。

FlexFuse Kitは、Modo 11.2の新機能である新しいプリセットブラウザ、Cloud Assetから入手できます。


順調なプロシージャルモデリング機能の強化と、UVやベベル周りの強化がいい感じ。Alembicのような他のソフトと連携する機能が継続して強化されるのもいいですね。11シリーズは地味な更新が多いですが、実用的なものが多いのが嬉しいです。
新しく追加されたシェーダー Principled Shader については以前記事を書いてたので、見てみるといいかもしれません。
http://kai-tei.daa.jp/2017_0911_2467/

アニメーションのパフォーマンスについては、ACS2の末端のスケルトンを動かした場合の速度が早くなってます。modoでアニメーションする場合のボトルネックも徐々に解消されてる気がします。
ですがキャラクターリグの腰のアイテムを移動して、リグ全体を移動した場合の速度は以前と変わらず重い状態だったりします。オブジェクト数が多い場合のレスポンスが悪い問題に起因しているのかもしれません。

ちなみにスクリプトからのオブジェクトの作成速度も早くなってるみたいです。アイテム2000個作成するのに11.1v1で 50 秒だったものが、11.2v1 RC2だと2.3秒と高速になってるらしい。
https://community.foundry.com/discuss/topic/129836/modo-vs-maya-performance-problems?mode=Post&postID=1104131#1104131

パフォーマンスが悪い原因は1つではなく、ひとつひとつ改善する必要があるとのこと。11以降も継続してパフォーマンスの改善に取り組むという話がフォーラムに書かれてたのでmodo 12にも期待したいです。

CG 日記

modoのアイテムインデックススタイル

modoではアイテムを複製した場合など、アイテム名が同じ場合に自動的に (2) のような連番を追加してくれます。この連番のフォーマットは「初期設定 / デフォルト / アプリケーション 」の「アイテムインデックススタイル」から変更することができます。

この連番表記は他のソフトとFBX形式でデータやり取りする場合に問題になる事があります。
modoと3dsMax間では問題にならないのですが、Mayaはアイテム名に半角スペースなど使用出来ない文字があるためFBXインポート時に自動的に「FBXASCxxx」という文字列に置き換えます。
modo デフォルト設定の場合は、半角スペース と()が「FBXASC032」「FBXASC040」「FBXASC041」のように置き換えられるため、Mayaに読み込んだときにアイテム名が酷いことになります。

Maya のリネーム機能「修正 / 名前を検索して置換」を使用してリネームすることもできますし、フリーのmelもあるようですが、modo側で「アイテムインデックススタイル」を「_2」のようなスタイルに設定しておくと便利です。

CG 日記

フォルダやファイルがロックされてる場合の解除方法

Windowsでフォルダやファイルを削除する場合に「別のプログラムがこのフォルダーまたはファイルを開いているので、操作を完了できません。」とメッセージが出て、ファイルを削除出来ない場合があります。
CGソフトでは大抵タスクマネージャーで生きてるプロセスを終了すれば問題が解決出来るのですが、Gitのようなファイル管理ソフトの場合は複数のプロセスがいるため、どのプロセスがファイルをロックしてるのかわかりにく場合がありました。

このような場合は「リソースモニター」を使用するとファイルをロックしているプロセスを検索できるようです。

「タスクマネージャー」から「リソースモニター」をクリックして、「リソースモニター」の「関連付けられたハンドル」の「ハンドルの検索」にロックされているフォルダやファイル名を入力すると関連したプロセスが表示されます。

 

 

CG 日記

modoでUVをEPS形式保存する方法

modoにはテクスチャ作成用の機能として「UVをEPSに書き出す」機能があります。
カメラから見た状態で「ビューから投影」でUV展開することで、ワイヤーフレームレンダリングのようなEPSデータを作る事ができます。デザイン作業でワイヤーフレームが欲しいときに知っておくと、ちょっと便利に使えます。


CG 日記

VDBデータからメッシュを生成する方法


modo 901からOpenVDBファイルを読み込んでレンダリングできるVDBVoxelノードが追加されました。
OpenVDBファイルは煙のようなボリュームデータを保存出来るオープンソースのファイルフォーマットです。元はHoudiniでシミュレーションしたボリュームを他のソフトやレンダラーで使うために作られたフォーマットだった気がします。

VDBVoxelは上の画像左側のようにボリュームをレンダリングすることも出来ますが、画像右側のようにボリュームデータからポリゴンメッシュを生成することができます。ボリュームからメッシュ生成する機能自体はOpenVDBライブラリが提供している物だと思いますが、このVDBVoxelはパーティクルからもメッシュを生成することができるので便利です。

modoにはパーティクルをレンダリングする機能としてBlobノードがありますが、VDBVoxelを使うことでメッシュを粗めに生成してレンダリングを早くしたり、モデリングツールで編集できるようにすることができます。モコモコデフォルメされた雲や木のようなモデルを作るのにも役立つと思います。
Blobと違ってボクセルフィルターでメッシュを滑らかにすることができるのもいい感じです。

パーティクルをBlobでレンダリングした画像。複数のParticle SimulationをまとめるのはParticle Modifierを使います。

パーティクルをVDBVoxelでメッシュ化してレンダリングした画像。

CG 日記

リプリケータをリプリケータで複製

modoにはポイントやポリゴンにオブジェクトを複製して配置するリプリケータという機能があります。リプリケータで配置したオブジェクトは、さらにリプリケータで配置することができます。

ただしビューポートでは正しく表示されないので注意が必要です。
同様にデフォーマでアニメーションさせたオブジェクトをリプリケータで複製した場合に、タイムオフセットがビューポートで確認できないという仕様があります。リプリケータを使ってみた場合は、とりあえずレンダリングしてみるといいです。

将来的にはビューポートで確認できるようにして欲しいですね。

CG 日記

3ds Maxのアンインストールや再インストールができない

インストーラのテンポラリ用のAutodeskフォルダと間違えて、Max本体を手動で削除してしまうという失敗をしてしまった。orz
Maxアンインストール後に再インストールしようとしても「インストール済み」状態になり再インストール出来ない状態になって困った。

Microsoft Fix it を使ってアンインストールしたら解決できた。

https://knowledge.autodesk.com/ja/customer-service/download-install/remove-products/using-microsoft-fixit

インストールやアンインストールに失敗してして同様の症状になった場合も、Microsoft Fix it を使うといいらしい。

CG 日記

modoのマトリクス計算順

modoのアイテムは幾つかのマトリクス チャンネルを持っています。
3D座標計算の知識があれば理解出来るのかも知れませんが、マニュアルには特に説明がないためよく理解出来てませんでした。
各マトリクスチャンネルについてmodoの開発者のMattさんがコメントしていたのでメモっておきます。
マトリクスの計算順はチャンネルモディファイヤの接続や、値を取り出す場合に知っておきたい情報です。

http://community.foundry.com/discuss/post/1099604

  1. トランスフォームチャンネルは、各トランスフォーム アイテムのトランスフォーム行列に格納される。
  2. トランスフォーム行列はボトムアップから乗算され、ローカル行列に書き込まれる。
  3. ローカル行列に親行列のワールド行列が乗算され、アイテムのワールド行列に書き込まれる。
  4. ワールド行列は、ワールド位置、ワールド回転、ワールドスケール行列に分解される。
CG 日記

サイト再構築中

サイトを10年ぶりに再構築中です。MODO関連のTipsを投稿していこうかと思います。記事にはコメントを投稿できるので気軽に書き込んでください。

サイト構成としてCG関連の制作日記とメモ用ブログを統合しました。
ニュースサイトっぽく見えますが、あくまで個人のCGサイトというスタンスです。気になった情報だけメモしてます。またニュースサイトと違ってPV(ページビュー)を稼ぐための「続きを読む」とかクリック数を増やすようなデザインは避けてます。

 

サイトの便利機能

ブログには知ってると便利な機能があるのですが、サイト作ったことのない人だと気がつかないことも少なくないと思います。便利そうな機能について簡単に書いてみたいと思いますのでご利用ください。

カテゴリーとタグ

記事には「カテゴリー」と「タグ」が設定されています。
「CG 日記」「CG News」「参考資料」などがカテゴリーです。タグは記事に関連した付加情報を追加しています。主にソフトウェア名や「カッコイイ」など私が記事を検索する場合に便利なメタ情報を追加しています。

 

記事の検索

サイト内の記事を検索する機能があります。カテゴリーとタグを使用して詳細な検索ができます。

 

RSSの購読

右上のメニューから表示したページは「Diary」のような親カテゴリーや、「CG News」などの子カテゴリーごとにRSSを拾えます。特定のカテゴリーだけ拾いたい場合に便利です。

 

記事のアーカイブ

カテゴリーページの左側には、年や月ごとに記事がまとまっています。
年号をマウス中クリックして新規ページで表示すると年単位で記事を表示します。月をクリックすると月ごとに記事を表示します。

CG 日記

ミクさん10周年

ミクさん10周年おめでとう!僕も10年前に作った懐かしいやつ貼っておきます (・∀・ )
LW9.6以降ではシーンが正常に開けないのと、32bit版はシリアルが違うのでLW7.5起動するのに凄く手間取った。。。
コンフィグ設定用のショートカットも全部消しちゃってて、プラグインのスキャンディレクトリからスタートだった。

CG 日記

ACS2のパフォーマンスを上げる方法


アドバンスドビューポートでACSのパフォーマンスが上がるのに気がつきました。環境は modo 10.2v3 サブディビジョンはOFFです。
はじめデフォルト表示だと6FPS程度ですが、アドバンスド表示に切り替えてしばらくアイテムを動かすと何かをキャッシュしてリグのレスポンスが20FPSまで上がる気がります。
modo 11.1でリグの操作が早くなったと思いましたが、10.2でも早くなったので以前からの仕様のようです。PC環境に依存した問題かもしれませんが、アニメーションを作成する場合はとりあえず表示をデフォルト→アドバンス→デフォルトと切り替えてから作業開始するといいかもしれません。

CG 日記

modoの角度測定ノードで360°測定する方法

modoにはリギングに必要な多くのノードが搭載されています。
ノードの応用例として「条件式」ノードを使用した角度の測定について書いてみたいと思います。
modoでFBIKで制御されたスケルトン角度でモーフを制御する方法」では、Measure Angle ノードを使用してIK制御されたスケルトンの角度を測定しました。

Measure Angle ノードの問題点

Measure Angle ノードの問題点として、3個のオブジェクトの座標を使用して角度を測定するため 0~180°の範囲の角度出力に限定されていることです。ヒジやヒザをIKで制御する場合は、間接の曲がる角度が0~180°の範囲であるため概ね問題になることはありません。
ですが肩や股関節のようにIKの始点となるオブジェクトは360°回転するため、Measure Angle ノード単体では0~360°の範囲を測定できません。

Measure Angle ノードで0~360°の範囲を測定する方法

360°回転するオブジェクトの角度を測定する場合は、条件式ノード と Measure Angle ノードで組み合わせて使用します。

スケマティックの解説です。
Measure Angle ノードはオブジェクトの位置関係で測定する方向が変わってしまうのが問題です。現在どの方向にオブジェクトがいるか判定できれば、0~360°の範囲で角度を測定することができます。
このスケマティックでは緑色と黄色のロケータを2個配置して、Measure Distance ノードを使用してスケルトンがどちらのロケータに近いかで方向を判定しています。

Measure Distance の「距離出力」を 条件式ノードに接続して、操作を「AはBより大きい」に設定しました。
条件式ノードは入力されたチャンネルの値を比較して、接続されたチャンネルの値をそのまま出力したり、任意の値を出力することができるノードです。処理の分岐に使用したりできる便利なノードです。

条件式ノードでは「Trueの場合」を「出力 True 値」に変更し、「True の値」を「1.0」に設定します。
同様に「False の場合」を「出力 False 値」に変更し、「False の値」を「-1.0」に設定します。
この値を Measure Angle の「角度出力」の値と掛けることで、-180°~180°の範囲の角度を測定することができます。

-180°~180° の値でも問題ないのですが、0~360°の範囲のほうがわかりやすい場合は、
最後に180を足すことで値を180オフセットしています。

以上で0~360°の範囲で角度を測定することができました。
modo 901からQuaternion モディファイヤが追加されているので、Quaternionを理解していればもっと便利な方法があるかもしれません。Quaternion覚えたら何か記事を書いてみたいと思います。

CG 日記

modoでワールド回転からローカル角度を計算する方法

ローカル角度は「自分のワールド回転と、親オブジェクトの逆行列をかける」と求められる。

IKのようにチャンネルモディファイヤによって制御されているアイテムから、リギングのためローカル座標を取得したいことがあると思います。
modoのノードを使って同様の計算を行うことができます。

画像では親アイテム(スケルトン)のWorld RotationをMatrix Invertで逆行列を求めています。
Matrix InvertのOutputを、ローカル角度を求めたいアイテムのWorld RotationとMatrix Composeを使用して掛けます。
Matrix Composeはチャンネルにリンクした順で計算します。(マトリクスの計算はかけ算の順番で結果が変わるので注意が必要です)
最終的にマトリクスをMatrix To Euler を使用してXYZの角度に変換します。

一般的にマトリクスからオイラー変換する場合には複数の解があり、Matrix To Euler ノード1つで3軸分の角度をユーザーが望む形でまるっと出力すのは数学的に難しいらしい。「回転順序」を適切に使用して軸ごとに角度を出力するのがいいみたいです。

CG 日記

modoでFBIKで制御されたスケルトン角度でモーフを制御する方法

Measure Angle ノードで角度を取得します。

アニメーションで筋肉の動きを表現したい場合や、肘や膝がゴムホースのように曲がってしまうのを補正したい場合にモーフを使用する事があります。

FBIKのようにマトリクスを使用して動きを制御するチャンネルモディファイヤを使用すると、プロパティのトランスフォームの角度が変化しなくなります。
FBIKでトランスフォームが変化しないのは計算の優先順位によるもので、マトリクスの計算がトランスフォームより優先的に使用さてるためです。

このような場合は測定ノードのひとつ、Measure Angle ノードで角度を取り出します。
スケルトンの角度とモーフの強さを調節するため、Relationship を使用して任意の角度における強さをリマッピングします。

同様の方法で、太ももの角度をスカートのスケルトンに連動させるような使い方もできます。
modoには角度の他にも距離、速度、スピードの測定ノードが用意されているので、様々なリグを作る事ができます。

CG 日記

modoでファイルパスを切り替える方法


アクションごとのシミュレーションや放射照度キャッシュの保存先を変えたり、レンダリング画像の保存先をフレーム数で変更したりしたい場合があります。modoではファイルパスは文字列タイプのチャンネルとして扱われていて、文字列ノードを使用する事でリグを構築することができます。

上記の画像はアセンブリとして再利用できるようにするためロケータに文字列タイプのユーザーチャンネルを追加し、ファイルパスとファイル名を入力用のチャンネルにしていいます。※
StringComposeノードでファイルパスとファイル名を結合し、結合した文字列をStringSwitchノードで切り替えています。

StringComposeはパターンに$[s:1]$[s:2]のように入力することで、「C:\Temp\」と「Cut1.LXI」のような文字列を「C:\Temp\Cut1.LXI」のように結合する事ができます。入力チャンネルには複数のチャンネルを接続することができます。
$[s:1]は文字列チャンネルの1接続目、$[s:2]は文字列チャンネルの2接続目を意味しています。パターンで整数入力する場合は$[i:1]、浮動小数点数入力の場合は$[f:3]のように入力します。詳細はマニュアル参照。

StringSwitchは入力された複数の文字列を、切り替えチャンネルの値で切り替えることができるノードです。例えば切り替えの値が2の場合は、2個目に接続されたチャンネルの文字列を出力します。
StringSwitchの出力を任意の文字列チャンネルに接続して使用しますが、レンダー出力のファイル名チャンネルのように、出力先の文字列行が(Empty)と表示されているようなチャンネルの場合は、あらかじめ仮のファイルパスを設定しておく必要があります。

文字列タイプのチャンネルはプロシージャルモデリングのSelect By Selection SetやSelect By Polygon Tagでも使用されているので、StringSwitchを使うと表現の幅が広がりそうです。

※modoのアセンブリはノードのチャンネルを直接公開すると、アセットロード時に公開チャンネルが消えたりすることがあります。パーティクル関連のノードは直接入力しても値を無視することがあるため、ロケーターのユーザーチャンネルを経由するとバグっぽい動作につまずかずにすむのでお勧めです。