よく特定の文字列をざっくりとしたパターンでフィルタリングしたい時に正規表現を使うかと思いますが、よく似た動作をする matchコマンドと gmatchコマンドでは正規表現の使い方にちょっとした違いがあるようです。
よく特定の文字列をざっくりとしたパターンでフィルタリングしたい時に正規表現を使うかと思いますが、よく似た動作をする matchコマンドと gmatchコマンドでは正規表現の使い方にちょっとした違いがあるようです。
maya2020より
タイム スライダ ブックマーク という機能が追加されました。
似た機能としては、ゲームエクスポータのアニメーションクリップタブでしょうかね。しかしクリップの範囲を確認するには、わざわざレンジスライダの範囲を切換える必要があったりするので、タイムスライダ上にバーが表示されて視覚的に確認できるのは、とても嬉しい機能だったりします。
mayaはプラグインを使って機能を追加することがあります。
バージョンアップでの新機能の中にも、新機能専用のノードやアトリビュートがプラグインによって作成されて実装されているものもあります。
以前紹介した MELの多言語対応 で使用していたのは、uiResコマンドと displayStringが羅列された .res.melファイルだったのですが、ふと、mayaのUIで日本語訳を調べるために .res.melファイルを検索してみたのですが、全くと言って良いほどヒットしなくなっていました。
どうやら最近は、uiResコマンドや .res.melファイルではなく、setPluginResourceコマンドと .pres.melファイルを使用するように変わっているようです。
Mayaの操作を教える場合、実行するコマンドがメニューのどこに在るのかを調べたい場面に遭遇することが、たまにあります。
Maya2020の
Helpメニューの中には Find Menu(メニューの検索)というメニューの場所を探すツールが有りましたが、Maya2022からは機能強化により
Search(検索)というツールへ置き換わってしまいました。
Mayaを使っていると現在開いているシーンの名称を使用したいときが、たまにあります。
例えば、こんなような場面
Game Exporterを使って FBXを出力するとき、出力ファイル名にシーン名を使いたいときなどです。
2022年の4月も終わるころ、GitHubにバンダイナムコ研究所よりモーションキャプチャのデータが公開されたようです。※ニュースリリース
そのキャプチャデータのファイル形式が今では珍しい(?)BVH形式を採用していました。
10年くらい昔、Perfumeのダンスモーションが配布された頃には色んなツールへのインポートスクリプトの記事が見られましたが、今回はどうでしょうかね、BVHは古い規格なのでそんなに需要もなさそうですし、当時のものを使う感じになるんでしょうか。
スプラインIKでスパン数を指定して作成し、MELで扱い易いようクラスターのリストを作成するようなスクリプトを作成しました。
参考:spineIkを設定する
そしたら、今度はクラスタを拘束するコントローラの作成です。
splineIkを操作するためには、普通のIKのようにIKハンドルを移動させたりするのではなく、splineIk のNURBSカーブの Control Vertex を移動させて操作します。
ただ、Control Vertex を選択したりするのは難があるため、クラスターで拘束してコントローラー代わりにします。
こちらの方が操作しやすいですね。
最近
splineIkをいくつも作っていて、このクラスターを作るのがとても面倒くさく感じました。
リグコントローラを選択するためのツールとして「ピッカー」というものが有るようです。
「シノプティックビュー」とか「セレクター」とか、いろいろ呼び方が有るようで、どれが一般的な呼び方なんでしょうかね?
でも、HumanIkの「キャラクタ
リプリゼンテーション」は意味不明すぎます・・・。
mayaで自作のリグを組むと、たいていピッカーも自作しないといけないので、リグを組んだら何となく流れで作成してしまいます。
「カプセル型のコントローラを作成してみる」で作ったようなリグの場合、複数の制御用コントローラがあるわけなのですが、アニメーションさせるとなると、関連したコントローラ全部にキーフレームを設定するときなどでかなり面倒に思うはずです。
キーフレームの設定を忘れるノードも出そうなので、できれば1つのノードで集中管理したい。
そんなことを実現してくれる機能が addAttrコマンドに存在します。
最終的には、こんな感じのノードグラフになります。
むかし、MELの保存先を調べるとか書いたのですが、スクリプトごとに記述しているため、なんか冗長なんですよねぇ。
なので、もう少し簡略化できないかと書き換えてみることにしました。
uiConfigurationScriptNode を作らせなくするためには、Preferences の UI Elements から、Panel Configurations の項目を編集しなければいけません。※参照
このノードを作成させなくするために、スクリプトで対処しようとしてグローバル変数なんかをいじったりもしていましたが、もっと簡単に回避する方法があったようです。
リグの組み方は色々あると思うんですが、どういった作り方をしていたとしても、基本的にはリグコントローラからバインドしているジョイントへは、コンストレイントを使ってアニメーションを転送するというのが簡単で広く知れ渡っているという感じでしょうか。
ただ、scaleConstraint だけは上手くスケールを拘束できないようで、worldMatrix から decomposeMatrixを使ってアトリビュートを接続することがあったりします。
pickWalk と聞いてピンと来ない人も居るかもしれませんが、mayaのDAG階層は「矢印キー」で選択を変更することができるようになっています。
プレビューウィンドウだけで作業が完結するようなモデラーさんには馴染みはないかもしれませんが、アウトライナを使うような古いアニメーターさんなんかは知っている人が居るかもしれません。
FBXファイルの出力に便利な Game Exporter ですが、当然、FBXExport コマンドを使用しています。 Model Export なら問題ありませんが、Animation Clips を出力するとなると問題が出てきます。こちらを参照。
タイムレンジを設定できたり、複数クリップを1ファイルに保存するとか、自前で用意するのは中々大変なので有効活用したいところです。
なにより、シーンファイルに FBXの出力設定を保存できるのでヒューマンエラーが格段に減らせられるのは魅力的です。