2018年12月

参考資料

「revisions リヴィジョンズ」メイキング

TVアニメ「revisions リヴィジョンズ」のメイキング記事が公開されています。
https://cgworld.jp/feature/201812-cgw245-rvsns.html

続きを読む

Tips

modoのコマンド

modoのコマンドについて書いてみたいと思います。コマンドはmodoの根幹のシステムで、マクロやリギングなど様々な用途で便利に使える仕組みになっています。

 

コマンド

modoではツール切り替え、アイテム選択、ファイルの保存など、ユーザー操作のほとんどが「コマンド」として管理・実行されています。コマンドを実行するときは同時に「引数」がセットになっていて、コマンドの動作を決定しています。コマンドの仕組みがわかるとUIのカスタマイズや、マクロやスクリプトの作成で役立ちます。

コマンドと引数はコマンドUIを縦に広げて確認できます。

コマンドと引数の例です。たとえば、移動ツールをアクティブにすると、以下のコマンドが実行されます。

「tool.set」がコマンドで、それ以降の「TransformMove on」が引数です。

引数がない場合は、引数を入力するダイアログが表示されます。コマンに「tool.set」だけ入力してEnterした場合、以下のようにどのツールを実行するか選択するためのダイアログが表示されます。

 

コマンド一覧

modoで実行可能なコマンドはコマンドタブに一覧として表示されます。

コマンドを検索することもできます。

iアイコン をクリックしてコマンドの説明を表示することもできます。

 

ショートカットキーの割り当て

履歴タブでは実行したコマンドにショートカットキーを設定することができます。コマンドの履歴で右クリックメニューから「コマンドにキーを割りあて」を実行すると、キーの割り当てダイアログが表示されます。


割り当てたいキーを押してOKすると、コマンドにショートカットキーが設定されます。

「コマンドにキーを割りあて」は後述のマクロやスクリプトなど、modoで実行されるコマンド全てにキーを設定することができます。

 

マクロ

モデリングやアニメーション作業で、決められたいくつかの操作を繰り返したいときがあります。そんなときmodoは操作を「マクロ」として保存して、同じ操作を繰り返し実行することができて便利です。

例えば選択したポリゴンに決まった量のベベルを実行したいときに使用します。下の画像のでは選択したポリゴンに「放射状」に整列した後、チューブ状に「ベベル」を実行するマクロの作成手順です。

作成したマクロは「Scripts」フォルダに保存すると、コマンに「@マクロ名.LXM」を入力していつでも実行することができます。

C:\Users\ (ユーザー名) \AppData\Roaming\Luxology\Scripts

マクロファイルはテキストエディタで開くことができます。今回作成したベベルマクロを開くと、以下のように「コマンド」と「引数」が処理順で記載されていることがわかります。

#LXMacro#
tool.set xfrm.radialAlign on
#Command Block Begin: ツール有効化
tool.setAttr xfrm.radialAlign centerX 0.0
tool.setAttr xfrm.radialAlign centerY 0.5
tool.setAttr xfrm.radialAlign centerZ 0.0
tool.setAttr xfrm.radialAlign radius 0.3018
tool.setAttr xfrm.radialAlign angle 0.0
tool.setAttr xfrm.radialAlign radHandleX -0.7071
tool.setAttr xfrm.radialAlign radHandleY 0.0
tool.setAttr xfrm.radialAlign radHandleZ -0.7071
#Command Block End: ツール有効化
#Command Block Begin: ツールの修正
tool.setAttr xfrm.radialAlign angle 0.0
tool.setAttr xfrm.radialAlign smooth 50
#Command Block End: ツールの修正
tool.doApply
tool.set poly.bevel on
tool.noChange
#Command Block Begin: ツールの修正
tool.setAttr poly.bevel inset 0.0
tool.setAttr poly.bevel shift 0.285
#Command Block End: ツールの修正
tool.doApply
tool.set poly.bevel off 0
tool.clearTask snap
tool.set *.bevel on
tool.noChange
#Command Block Begin: ツールの修正
tool.setAttr poly.bevel inset 0.109
tool.setAttr poly.bevel shift 0.0
#Command Block End: ツールの修正
tool.doApply
tool.set poly.bevel off 0
tool.clearTask snap
tool.set *.bevel on
tool.noChange
#Command Block Begin: ツールの修正
tool.setAttr poly.bevel inset 0.0
tool.setAttr poly.bevel shift -0.315
#Command Block End: ツールの修正
tool.doApply
tool.set poly.bevel off 0
tool.clearTask snap

「ペイント選択」のようにユーザー入力必要な操作はマクロに記録ることができないので注意が必要です。modoのコマンドを組み合わせると「レンダリング完了後に音声ファイルを再生する」ようなこともできるようになります。

 

マクロ内の値を実行時に変更

マクロ内の一部の値を実行時に変えたいときがあると思います。そんな時はコマンドのマクロ名の後ろに追加パラメータを指定すると、マクロファイル内の %1 %2 %3 … の部分を値に置き換えて実行することができます。

たとえば私の場合は、ループスライスの「位置」を決め打ちにしたカスタムのボタンを使用しています。スライス位置ごとに複数のマクロファイルを用意してもいいのですが、この追加パラメータを指定する方法であればファイルの数が少なくて済みます。

 

バッチコマンド

バッチコマンドは複数のコマンドを順番に実行することができます。複数のコマンドを実行したい場合、以前はマクロかスクリプトを使用する必要がありました。modo 801以降はバッチコマンドを使用して連続してコマンドを実行することができるようになりました。

バッチコマンド記述は以下の通りです。1つめの{}はラベル用の物で、2つめ以降のコマンドが実行されます。コマンドは最大20個実行できます。

cmds.batch {Temp} {item.duplicate false all:true} {item.setType locator locator}

このコマンドはアイテムと同位置にロケータを作成するものです。アイテム選択してコマンド実行すると、選択アイテムを複製してアイテムタイプをロケータに変更します。

 

コマンドとフォーム

modoのUIにはボタンがいくつも並んでいます。ボタン、プルダウンリスト、チェックボックスなどですが、これらのUI要素をmodoでは「フォーム」と呼んでいます。フォームにはコマンドが設定されていて、ボタンをクリックするとコマンドが実行される仕組みになっています。

下の画像はmodoの左側に表示される「移動ツール」のフォームを表示したものです。「フォーム編集」ではボタンラベル、ツールチップ、アイコンなどを編集することができるのがわかると思います。

フォームは「フォーム編集」を使用することで自由に表示方法を編集することができます。modo標準のフォームを編集したり、お気に入りのコマンドを集めたカスタマイズしたツールパレット作成にも使用できます。

 

ワークベンチ

modo 12.2ではより直感的にフォームを編集する機能として「ワークベンチ」が追加されました。

ちなみにZBrushのようにUIのボタンをドラッグアンドドロップで編集する「フォーム編集モード」もあります。

 

 アセンブリ ユーティリティとコマンド範囲

コマンドが使用されるのはUIだけではありません。ロケータのアセンブリタブのユーティリティや、コマンド範囲からもコマンドを実行することができます。

これらの機能は主にリギングでの使用を目的とているため、▼のプリセットボタンにはトランスフォームツールを起動するコマンドが並んでしますが、マクロやスクリプトなど任意のコマンドを登録して使用することができます。

 

まとめ

modoはほとんどのコマンドを確認できるので、UIを自由にカスタマイズしたり、スクリプトが書けなくてもマクロを作ることで作業を効率化できるところが素晴らしいです。コマンド範囲のように、ポリゴンにコマンドを貼り付けることができるというのも面白いですね。

コマンドのような仕組みは比較的一般的なようです。たとえばPhotoshopの「アクション」もコマンドのような仕組です。LightWave、3dsMax、Mayaも同様でツールを実行したときにコマンドを発行して、ユーザーがスクリプトやマクロを作りやすくする仕組みがあります。
しかしLightWaveや3dsMaxなんかは発行されるコマンドが限られているため、マクロやスクリプトを作成しようとするとパラメータにどうアクセスすればいいかわかりにくいという話をよく見ます。Mayaがカスタマイズしやすいと評価されるのは、より細かくコマンドを確認できることや、UIがMELなどスクリプトベースで作られているため動作を解析できるところにあるようです。

私はまったくスクリプトを書くことはできませんが、Pythonの知識があればmodoのコマンドを組み合わせて自動化や効率化するのは難しくないんじゃないかと思います。

 

参考


 

Tips

modoのプロシージャルモデリングでスライスアニメ

modoのプロシージャルモデリングで、ロゴマークなんかがスライスアニメの作り方について書いてみます。

サンプルファイル(12.2)

スケマティックとメッシュオペレーション リストです。

処理はアニメーションを見た通りです。ロゴのモデルを Merge Mesh で読み込み、複数のSliceノードで縦にカットします。Sliceのオプションででは「分割」「断面を埋める」をONにして、カットした部分のポリゴンを生成しています。
Axis Sliceに「分割」「断面を埋める」のオプションがあれば1ノードで済むのですが、オプションがないのでちょっと処理がスマートじゃないです。スライス幅を調整しやすいように演算ノードを使ってスライスの「開始 X」「終了 X」を制御しています。

スライドするアニメーションはmodo 12.2で追加された Jitter ノードを使用します。「リジッド移動」をONにて「範囲 Y」にキーを設定することでスライドさせています。スライドインする範囲を指定するために Boolean も使用してみました。回転のアニメーションはTransform Deformerを使用しています。

 

ちなみにブーリアンでも同じことができます。キューブを配置してブーリアンした方がノードの数を少なくできたかもしれません。

今回はプロシージャルモデリングの再編集可能な状態でアニメーションを作ると、どんな感じになるかのテストでした。詳細はサンプルファイルを見ていただくとわかりますが、プロシージャルモデリングを使用すると再編集のメリットはありますが細かなノードが増えてしまいます。

ロゴはパスの細かさや厚みを再編集できる状態が便利ですが、エッジベベルで面取りしたりアニメーション作業では通常のメッシュアイテムになってる方が作業しやすいように思います。

Maxの「ポリゴン編集モディファイヤ」のようにダイレクトモデリングツールの編集をスタックできるようになれば、だいぶ使いやすくなる気がします。将来のバージョンに期待したいですね。

 

参考

CG News

3ds Max 2019.3 リリース

3ds Max 2019.3 がリリースされました。
https://area.autodesk.com/blogs/the-3ds-max-blog/3ds-max-20193-updates/?fbclid=IwAR2uT71MdTaukNk9r9W3OU3CI11hVvBfZRx3d2JjXbcjmpAGO4-ca9SW3iM

インタラクティブな ActiveShade ビューポート

ActiveShade が新たに強化されて、同じビューポート内で対話処理とレンダリングを同時に行えるようになりました。ActiveShade ビューポート モードではレンダリング ワークフローが拡張されるため、ワークフローを作成しながら、最終的な調整結果を確認することができます。

Revit バージョンの互換性

3ds Max 2018 と Revit Interoperability for 3ds Max がインストールされている場合は、Revit 2018 ファイルを読み込むときに、ファイルをアップグレードしなくてもよくなりました。

Alembic と Maya の相互運用性

Autodesk Maya との相互運用性の改善とともに、Alembic のサポートも継続しています。Maya のカスタム アトリビュートのグループ化により、変換とシェイプのアトリビュートがサポートされるようになりました。また、頂点カラー セットが Maya の読み込み/書き出しと互換性を維持するようになりました。

OSL マップ

OSL ソース エディタの改善点には、ブラケットのハイライト表示、構文のハイライト表示、ドッキング機能の強化などが含まれます。ノードのプロパティや Bump マップ サポートの強化などの OSL 機能をサポートするように、ビューポートも強化されました。

Revit の読み込み

Autodesk Revit ファイルの読み込みが以前よりも 2 倍高速になり(データセットに応じて異なる)、(FBX/RVT を介して) Revit から読み込まれたライトの動作およびレンダリングが正しく行われるようになり、読み込みダイアログのわかりやすと使いやすさが向上しました。

全般的な改善

100 を超える既存の問題が修正されました。その多くは最初に 3ds Max ユーザ コミュニティから報告されたものです。お客様が直面している問題の詳細については、リリース ノートを参照してください。ご協力いただき、ありがとうございました。

Tips

modoのAxis Sliceでスライスしたエッジを選択する方法

modoのプロシージャルモデリングで、編集したコンポーネントの選択方法を見かけたの書いておきます。

サンプルファイル

プロシージャルな等高線の作り方」でAxis Sliceでスライスしたエッジを選択する方法がないと書きましたが、Assign Selection Setで現在の全てのエッジで選択セットを作成し、Edges to Curves の Select By Selection Set で[反転]をONにすると、新規に生成されたエッジのみ選択できるようです。これは編集後のコンポーネントを直接選択するオプションが無い場合に、他の機能でも使える考え方かも知れません。

Assign Selection Setは発想しだいで便利に使えるんだね。勉強になった!

参考資料

空撮映像が作れる「Google Earth Studio」

Google Earthの3D画像や衛星写真を、映像製作に活用できるツール「Google Earth Studio」が公開されたみたい。フォームに必要事項を記入して申請、承認されると使用できる。
https://earth.google.com/studio/docs/making-animations/rendering/

位置のキーフレームアニメーションの他に、特定のビルをターゲットにして回転や、太陽の位置も編集出来るみたい。レンダリングは画像シーケンスで、Zipにまとめられた物をダウンロード。

CG News

VueとPlantFactoryがレンタル専用に

景観作成ソフトのVueと、樹木作成ソフトPlantFactoryがライセンスがレンタル専用に変更になったようです。https://info.e-onsoftware.com/blog/e-on-software-takes-users-to-cloud-nine-with-new-releases

ライセンスは月額または年間で、使用できる製品のエディションによってクリエーター、プロフェッショナル、エンタープライズの3種類。

 

 

参考資料

機械学習を使用してマット生成「Rotobot」

機械学習を使用してマットを作成するOpenFX プラグイン「Rotobot」の記事。品質はまだまだみたいだけど、こういう方向の機械学習の使い方は好き。

https://www.fxguide.com/quicktakes/rotobot-bringing-machine-learning-to-roto/

Rotobotは人や車などのオブジェクトの「セマンティック」クラスに属するピクセルのインスタンスを分離することができます。これは反復畳み込みニューラルネットワーク(CNN)を使用してイメージを分析することによって、81カテゴリを分離することができます。これらのカテゴリごとに最大100個のインスタンスを一度に分離することができます。これはVFXにとって便利です。素早く汚いホールドアウトマットを生成するための素早いツールがあることを意味します。

 

 

 

このプログラムは超高速で粗いものからより洗練されたものまで、さまざまな品質レベルで設計されています。Rotobotによって達成されるロトの品質は、フレーム間でちらつく傾向があるので時間的に安定していません。これはフレームごとのソリューションを生成するので、編集可能なスプラインがなくなるため修正や作業を続けることができません。Kognatは結果の忠実度をはるかに高い基準に高めるよう努めています。

似た技術だとAdobeのFASTMASKがあるけど、Adobeのは対象の数が限定されてそう。こういう作業的な物はAIに頑張って欲しいですね。

CG News

NVIDIA PhysX オープンソース化

物理シミュレーションエンジンのNVIDIA PhysXがBSD-3ライセンスでオープンソース化されたようです。以前からフリーでソースコードにアクセスできたと思うけど、オープンソースとは言ってなかったみたいですね。流体エンジンのその後が気になります。
https://blogs.nvidia.com/blog/2018/12/03/physx-high-fidelity-open-source/

無料、オープンソース、GPUアクセラレーション

PhysXはGPUアクセラレーションを活用し、大きな仮想環境を処理できる唯一のフリーでオープンソースの物理ソリューションです。今日、シンプルなBSD-3ライセンスの下でオープンソースとして利用可能です。

PhysXはいくつかの重大な課題を解決します。

  • AIでは研究者は合成データ(現実世界の人工表現)を必要とし、データを必要とするニューラルネットワークを訓練する必要があります。
  • ロボット工学では、研究者は実際のロボットのように機能する環境でロボットの心を鍛える必要があります。
  • 自走車の場合、PhysXは実世界の状況を再現するシミュレータで数百万マイルの走行を可能にします。
  • ゲーム開発では、缶詰のアニメーションは有機的に見えず、洗練されたレベルでの制作に時間がかかります。
  • 高性能コンピューティングでは、忠実度の高いより強力なマシン上で物理シミュレーションが実行されています。

PhysX SDKは、スケーラブルで安定した正確なシミュレーションにより、これらの課題に対応します。

PhysX SDKはスマートフォンからハイエンドのマルチコアCPUやGPUまで幅広いデバイスをサポートするスケーラブルなマルチプラットフォームのゲームフィジックスソリューションです。完全なソースコードはGitHubで見つけることができます。