Diary

Tips

modoのカードビューでアイテムセレクター作ってみた

modoのカードビューを使用したアイテムセレクターを作ってみたので公開したいと思います。

リギングされたモデルをアニメーションする場合に、素早くアイテムを選択するためにグラフィカルなアイテム選択ツールが使用されることが多いと思います。3dsMaxだと「bipedsel」が有名でしょうか。

modoにはアイテム選択ツールのようなUIを作るのに便利な機能がいくつか用意されています。今回はmodoに古くからある機能「カードビュー」を使用してみました。カードビューから select.item コマンドを実行してる単純なものです。自分が便利に使いたいだけなのでCBOX専用です。汎用性は高くないですが必要に応じて書き換えてご使用ください。アイテム名を書き換えればACSでも使えると思います。シンプルなカードビューファイルも置いておくので解析に使ってみてください。

CBOX Selector

 

インストール方法

解凍したファイルを「Configs」フォルダにコピーしてください。

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

 

カードビューの使用方法

カードビューの使用方法は「メニュー / レイアウト / パレット / 新規パレット」を実行後に、パレット右上の▼アイコンから「アプリケーション / カードビュー 」を選択します。ギアアイコンまたはタイトルを右クリックで表示するカードビューを選択します。

 

注意点

CBOX用のアイテム選択ツールです。CBOXでデフォルトで設定されるスケルトン名称に準拠しています。「select.item アイテム名 set」のようにアイテム名を使用して選択しているため、シーンにリグが複数ある場合やスケルトン名を変更してる場合はCFG内のアイテム名を書き換える必要があります。

RootItemがないシーンで「ALL」ボタンをクリックするとmodoが落ちます。単体のコマンドでは問題ないのですが、なぜかバッチコマンドを使用すると落ちる。

 

カードビューとは

カードビューは新機能紹介で使用されていたビューポートです。modo 201の頃には搭載されていてmodo 起動時に表示されていました。(modo 10.2からはWebビューに変更されました)

カードはCFGファイルによってカスタマイズ可能で、カードの背景画像の指定や、コマンドを実行可能なクリック領域などを指定することができます。

 

CFGファイル

カードビューはHTMLをテキストエディタで編集するのと同じ感じで作成できます。modoのショーケースのCFGは以下のディレクトリに保存されているので参考になると思います。

C:\Program Files\Foundry\Modo\12.1v1j\extra\scripts\801_Showcase_Kit\configs\showcase_cards.cfg

解析しやすいように単純化したファイルも置いておくのでテンプレートとして使ってください。コマンドはスクリプトなどmodoで実行可能なコマンドは全て実行できるので、モデリング専用のツールパレットなグラフィカルなUIを作成することができます。

CFG解析用サンプルファイル

CFGファイルをテキストエディタで開くと、カードに関する設定が書かれているのがわかると思います。カスタマイズしたい場合は、”Command”の部分を書き換えるところからはじめるといいと思います。

<hash type=”Region” key=”Pelvis”>
<atom type=”Box”>230 346 310 398</atom>
<atom type=”ToolTip”>Pelvis</atom>
<atom type=”Action”>
<atom type=”Command”>select.item Pelvis set</atom>
</atom>

私も手探りで編集してるので正確なことは書けないのですが、編集してて気がついたメモを残しておきます。

  • CFGファイルを変更した場合はMODOを再起動が必要があります。
  • タグの閉じ忘れがあるとカードビューの一覧に表示されなくなります。
  • “Region” はクリック範囲の定義で、その後のKey=は範囲の名前です。
  • “Box”はコマンドを実行するクリック範囲です。矩形の左上と右下の座標(ピクセル数)を指定します。CARD VIEW CREATION TOOLSCard-O-Matic KITを使用するとmodo内でボタンの範囲を設定できて便利です。
  • “ToolTip”はマウスオーバーで表示されるツールチップ用のテキストです。
  • “Command”にはmodoのコマンドを設定します。
  • “Scheme”のkey=はmodo全体で名称が重複しないように設定します。
  • ファイルパスにはresource:、configs:、content:などの短縮パスを設定可能です。リソースフォルダC:\Program Files\Luxology\modo\801_sp2j\resrcresource:

     

    コンフィグフォルダ

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

    configs:

     

    コンテンツフォルダ

    C:\Users\ (ユーザー名) \Documents\Luxology\Content\

    content:

  • openURLでURLをブラウザで開くことができます。openURL “https://www.google.com/”

     

  • “CardName”でカードの切り替えを指定します。
  • “ImagePath”で背景画像を指定します。.png.jpg.tif.psd.tgaなどmodoがロード可能な画像フォーマットが使用可能です。pngで試したところアルファは無視されます。

カードビューを使用するとアイテムセレクターを手軽に作ることができます。ですが注意事項に書いた通り私が公開したものはアイテム名を使用して選択しているので汎用性が低いです。スクリプト書ければ自由度の高いセレクターが作れるんじゃないかと思います。
次回はコマンド範囲を使用したアイテムセレクターについて書いてみたいと思います。

 

参考

modo 202 Card View紹介ビデオ
http://community.thefoundry.co.uk/tv/training/view.aspx?id=76

カードビューの解説

Tips

CARD VIEW CREATION TOOLS

CARD VIEW CREATION TOOLSについて書いてみたいと思います。

CARD VIEW CREATION TOOLSはmodo内でカードビューを作成するためのスクリプトです。modo 201の頃にPerlで書かれたものですが、背景色の設定やカードの切り替えなどカードビューの多くの機能をカバーしています。
modoの仕様が変わってしまったのが原因か、残念ながら701以降はエラーがでてCFGを保存することができません。記事を書くために601を引っ張り出しました。

コマンドの設定にポリゴンの「パートの設定」を使用するため、Card-O-Matic KITに比べてコマンドの編集が少し面倒です。

 

配布元のWebアーカイブ

SenecaさんはDOOMで有名なid Softwareの方で、多くのmodo用スクリプトを公開してましたがサイトが閉鎖されてしまいました。
https://web.archive.org/web/20170504221035/http://www.indigosm.com/modoscripts.htm

再アップURL
https://community.foundry.com/discuss/post/1137398

 

インストール方法

ファイルを解凍して以下のファイルを「Configs」フォルダにコピーします。

  • cardTools.pl
  • cardToolsForm.CFG

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

 

使用方法

とりあえず既存のCFGファイルを開くと理解しやすいです。modo 801のショーケースを読み込むとこんな感じになります。

C:\Program Files\Foundry\Modo\12.2v1j\extra\scripts\801_Showcase_Kit\configs\showcase_cards.cfg

CARD VIEW CREATION TOOLSでは1アイテムが1カードとして扱います。ボタンを作るには、ボタンのクリック範囲になる平面ポリゴンを作成して「ポリゴンのパート」にコマンドを設定します。このときカンマ区切りで「Region名,コマンド」のように入力します。Region名はボタンのクリック範囲に使用するKeyです。詳細はCFGファイルを開いて見ると理解しやすいです。

簡単なCard set Settingの説明です。

  • LOAD CFG : 既存のCFGを読む込むことができます。ボタンのクリック範囲をメッシュとしてロードします。パートにもコマンドが入ってるので、ファイルを解析するに便利です。
  • SAVE CFG :シーンのアイテムを参照してCFG出力します。
  • name : カードの名前
  • username : UIのに表示されるタイトル
  • description : カードの説明
  • transition : カード遷移時のフェードの速度。ミリ秒指定
  • scheme :スキームの名前設定
  • color : 背景色の名前設定
  • COLOR SETS : 使用するスキーム名と背景色の指定

 

 CARD VIEW CREATION TOOLSのコマンド

CARD VIEW CREATION TOOLSが独自に使用するコマンドの記述方についてメモっておきます。

  • カードの切り替え
    CARD VIEW CREATION TOOLSでは1アイテムが1カードとして扱われます。LINK=で切り替え先のカード名を指定します。

    Showcase_Design_Image,LINK=M801_Showcase_Design
    Design_To_Showcase_Home,LINK=M801_Showcase_Homepage

  • URLに飛ばす

    NewIn601Link,openURL “http://www.luxology.tv/help.aspx?name=NewIn601.m4v”

  •  (–CARD–)
    特別なパートです。ディスクリプションやスキーム、カードのインデックス番号が記述されてます。

    (–CARD–),QuickLaunch,Start Card,1,set.cardQTbg
    特殊フラグ, 名前,説明/ディスクリプション,カードインデックス1~4,背景色

古いスクリプトですがカードビューの多くの機能に対応しているので、カードビューの仕組みを調べるのに役立つ気がします。

 

参考

https://web.archive.org/web/20170105055017/http://indigosm.com/modo2/CardTools.mov

Tips

Card-O-Matic KIT for modo

Card-O-Matic KIT for modoのについて書いてみたいと思います。

Card-O-Matic KIT for modoはmodo内でカードビューを作成するためのスクリプトです。Pythonで書かれていてmodo 12でも動作します。
CARD VIEW CREATION TOOLSと同じようにmodo内でポリゴンを使用してボタンのクリック範囲指定と、コマンドを設定することができます。既存のCFGを読み込んで編集することはできませんが、ざっくりとボタン配置してコマンド設定するにはCARD VIEW CREATION TOOLSより使い勝手がいいです。

配布先

残念ながらフィードバックが少なかったためキットの配布が終了してしまいました。

https://www.youtube.com/watch?v=HD5Y_HwEzAo

Youtubeのコメントを見と(ここ数日で公開が停止された?)、メールすれば配布していた最後のバージョンを送ってくれるようです。使いたい場合は問い合わせてみてください。
https://www.marc-albrecht.de/

 

Kitのインストール方法

「cardomatic」フォルダを「Scripts」フォルダにコピーします。

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

 

使用方法

Card-O-Maticはツールパレットもカードビューで作られています。カードビューの表示方法は「メニュー / レイアウト / パレット / 新規パレット」を実行後に、パレット右上の▼アイコンから「アプリケーション / カードビュー 」を選択します。ギアアイコンまたはタイトルを右クリックで表示するカードビューを選択します。

画像を読み込んでクリック範囲とコマンドを設定する流れ。

  1. カードビューに使用する画像を「Configs」フォルダに保存する。
  2. 「Prepare Card」をクリックして画像を読み込む。
  3. 平面ポリを作成。これがクリック範囲になる。
  4. 「Put Box」をクリックすると空のアイテムが生成される。
  5.  3で作成されたアイテムにBOXツールで平面を作成する。
  6. 「コマンド」をクリックして、ダイアログにコマンドを入力する。
    カードビューでボタンをクリックしたとき、ここで入力したコマンドが実行されます。コマンドはアイテムのユーザーチャンネルに追加されているので、直接ユーザーチャンネルを編集しても大丈夫です。
    必要なボタンの数だけ「Put Box」でアイテムを作成してコマンドを入力します。
  7. 「Write CFG」をクリックして「Configs」フォルダに保存する。
    保存時に使用したファイル名がカードビューのタイトルになります。

Card-O-Matic KITは細かな設定はできませんが、手軽にカードビューを作成できて便利だと思います。公開が停止されてしまったのが残念です。

参考資料

Make the alphabet your golf course

アルファベットをゴルフ場にしたゲームのプロモーション映像。スタイリッシュな感じですね。

参考資料

「アニメ×会計」セミナーリポート

「アニメ×会計 〜アニメ制作会社における会計担当者の役割りと会計実務〜」というセミナーの記事が公開されています。なかなか興味深い。
https://cgworld.jp/feature/201812-kaikei1.html
https://cgworld.jp/feature/201812-kaikei2.html

アニメ制作会社による資金調達は難しいため、製作委員会が組成される。

銀行融資とエクイティファイナンス、アニメ制作に向くのはどちらか

アニメ1本の制作にかかる人件費・時間などを数字で把握する

人件費がメインのアニメ業界で重要なのは「管理会計」

デジタル化によりムダを省き、働く人の報酬体系を変えたい

会計処理と税務処理でちがう、利益に対するスタンス

参考資料

Bilby

DreamWorksの短編映画です。ストーリー、アニメーションや質感がすばらしい。アスペクト比 2.35:1で制作された最初のフィルムらしい。

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 ユーザ コミュニティから報告されたものです。お客様が直面している問題の詳細については、リリース ノートを参照してください。ご協力いただき、ありがとうございました。

参考資料

First Christmas

ストーリーもいいですが、フェルト人形のような質感が綺麗でかわいい。