D日記

モーションアーティストの技術ブログだよ。日常も書くよ。

MENU

【MaxScript】オブジェクト同士のモーションのコピペ

モーション作業中に、あるオブジェクトのモーションを別のオブジェクトで利用したい時がありますよね(๑´•.̫ • `๑)

カーブエディタからTrackを選択してコピペするのでも良いのですが、
もっと楽に出来るようにしたスクリプトを作りました。

CopipeController.ms

www.youtube.com

コントローラーをコピーする

あるオブジェクトのコントローラーを、別のオブジェクトのコントローラーでも利用するには、コピーしたコントローラーの代入をすればOKです(๑´•.̫ • `๑)

$tgt.controller = copy $src.controller

変換コントローラーを別のオブジェクトにコピーするってことですね。
f:id:ponta565:20170110204053p:plain

コントローラーを共有する

ちなみにこう書くと、コントローラーを共有します。所謂インスタンスってやつです。

$tgt.controller = $src.controller


「1つのコントローラーを複数のオブジェクトで共有している状態」を解除したい場合は、prs()コントローラーの再割り当てで解除できます。
アニメーションは死にません。*1

$tgt.transform.controller = prs()

個別にコピー&インスタンスも可能


回転コントローラーのみコピー(&インスタンス)したりもできます。

$tgt.rotation.controller = $src.rotation.controller

インスタンス状態にあるコントローラーは若干太字になるなり。 f:id:ponta565:20170110204529p:plain

更に個別に可能

X回転のみインスタンスコピー

$tgt.rotation.controller.X_Rotation.controller = $src.rotation.controller.X_Rotation.controller

今日話したいのこんなとこでした(๑´•.̫ • `๑)

*1:prs = position rotation scale