/*
選択したボーンの全フレームの座標変更
pos: セットする座標
使用方法
トラックビュー選択ダイアログが表示されるので
変更したいボーンの"Transform : Position/Rotation/Scale"
を選択してOKボタンを押す
*/
fn SetSelectBonePosAllKey pos =
(
-- ダイアログ表示オプション
dlgOpt = 0
dlgOpt = bit.set dlgOpt 1 true --アニメトラックのみ
-- dlgOpt = bit.set dlgOpt 3 true --選択したノードのみ
-- ダイアログを表示
tvp = trackview.pickTrackDlg options:dlgOpt
if tvp == undefined then return -1 -- 未選択
format "tvp.name %\n" tvp.name -- 選択した項目の名前
if "Transform" != tvp.name then return 1
c0 = tvp.client -- 選択項目の親のMAXWrapper
if c0 != undefined then
(
cname = getClassName c0
format "c0.className %\n" cname
if cname != "Bone" then return 2
)
-- 選択項目のサブアニメを取得
subAni = tvp.anim
if subAni == undefined then return 3
-- サブアニメ数
format "subAni.numSubs %\n" subAni.numSubs
ret = 4
for i = 1 to subAni.numSubs do
(
-- サブアニメの名前
n = getSubAnimName subAni i
format "subAnim name %\n" n
-- Positionのみ変更
if 0 != stricmp n "position" then continue
-- コントローラーの取得
c = subAni[i].Controller
if c == undefined then continue
-- コントローラーからキーの配列を取得
keys = c.keys
-- キーフレーム数
format "key_array count %\n" keys.count
-- 全キーフレームの座標を変更
for j = 1 to keys.count do
(
keys[j].value = pos
)
ret = 0
)
return ret
)
gPos = [0, 0, 0] -- セットする座標
SetSelectBonePosAllKey gPos
2012年1月28日土曜日
MAXScript ルートボーンの移動アニメを変更してみる(2)
あるモデルのルートボーンの移動アニメを無効にしたい
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿