シニアアニメーターのMartin氏(@TuxedoPato)が作成・配布してくださっている、ワールド空間上で、オブジェクトのトランスフォームの位置をロックするスクリプトLockWorldTransformのご紹介です。
オブジェクトが別のオブジェクトの下で子になっている場合での、子の動きをワールド空間上で固定してくれる素敵スクリプトです。
このように親の回転の影響だって受けません!
- Mayaアニメーター
コンテンツ
今回のツイート
New script that locks objects' transformations in world space! Can lock the current frame and step forward or set over a selected time range
Ex: object is parented under another object (like feet under master ctrl) and you want to keep the object's transformation for some frames pic.twitter.com/AZqozVXVT3
— Martin (@TuxedoPato) December 5, 2020
DL
Googleドライブで直接.pyファイルが配布されています。
Download here if you want it https://t.co/CJbyli2PG0
As usual, please let me know if there are any issues with the script and I will do my best to fix them.
— Martin (@TuxedoPato) December 5, 2020
Googleドライブをひらいて右上のダウンロードでlockWorldTransform.pyファイルをDLします
Mayaスクリプトの入れ方の基本
スクリプトを実行するための基本なのですが、実はこの方法、私の環境では上手く動きませんでした(謎
スクリプトの入れる場所
英語:C:\Users\(ユーザー名)\Documents\maya\(Mayaバージョン)\scripts
日本語:C:\Users\(ユーザー名)\Documents\maya\(Mayaバージョン)\ja_JP\scripts
.melまたは.pyの拡張子のついたファイルを入れます。
MELの起動の仕方
- Mayaを再起動し
- 下の入力フィールドのMELと書かれている所をクリックしPythonに変更
- ファイル名を入力して実行します。
lockWorldTransform
シェルフに登録(入力した↑をドラッグ&中ボタンを押してシェルフまでドロップ)しておくと便利です。
スクリプトエディターから登録する
とはいえ、ビューポートにスクリプトを直接ドラッグ(※一時的に使用する際の実行方法)した所、ちゃんと実行されたのでスクリプトエディタから登録する方法に切り替えました。
- Windows>General Editors>Script Editorでスクリプトエディタを起動します
- File>OpenScriptでlockWorldTransform.pyを開きます。
- スクリプトの実行ボタン①をおし、実行されるのを確認されたらスクリプトを全選択(CTRL+A)②をし、中ボタンでドラッグしてシェルフに登録③します
使い方
- ワールドロックしたいオブジェクトを選択し、ワールドに固定しておきたい範囲をタイムスライダーから選択します
- 後はスクリプトを実行するだけ。
先述通りカスタムシェルフに登録しましたのでボタン一つで実行されます - 子が選択範囲の間ワールドに固定されました
さわってみた特徴(間違っていたらすみません
選択した範囲の先頭Fをワールドに固定するようなので、最初のFに固定したい位置を決める必要があります。
ありがたく使わせて頂きましょう!
選択範囲をフルベイクしてしまうので使う際には要注意ですが、親子関係がついたオブジェクトの子を親の影響をつけずに動かしたい場合には便利ですね!
スクリプトを公開して下さっている方には感謝感謝です
アニメーション関連書籍
■『アニメーターズ・サバイバルキット』はアニメーターなら持っておきたい一冊
■ポーズ作りに
体の可動域や体格による違いなどの解説もあるので、知識として一読しておきたい一冊
関連記事レビュー
■廃盤になってしまったようなので高額な転売に注意
■アニメーションには直接関係ありませんが、画作りに一読しておきたい一冊