4

MAXScriptを使用して、MAXScriptを使用してシーンからすべてのアニメーションキーを削除しようとしています。現在、マウスを使用してCTRL + Aを押してすべてのオブジェクトを選択しているため、シーン内のすべてのオブジェクトのキーが表示されます。次に、マウスを使用してアニメーションタイムライン上のすべてのキーを選択し、タイムライン上のすべてのキーを選択してから、それらを削除します。MAXScriptでそれを行うにはどうすればよいですか?

これはMAXScriptのドキュメントで見つかりましたが、使用方法がわかりません。

deleteKeys <controller> [#allKeys | #selection]  

使ってみました

deleteKeys globaltracks #allKeys

しかし、それは何もしなかったようです。

4

5 に答える 5

3

これは、このチャレンジの一環としてCGTalkに投稿した方法です。アニメーション化されたコントローラーのすべてのキーを削除するように変更しました。組み込みのトラックバーカスタムフィルター関数を操作して、すべてのコントローラーを自分で取得する代わりに、すべてのオブジェクトのすべてのコントローラーを自動的に反復します。

(   
fn filterCallbackFunction theAnimatable theParent theSubAnimIndex theGrandParent theNode = 
(       
    if isController theAnimatable do deleteKeys theAnimatable #allKeys
    true
)

with redraw off
(   
    trackbar.filter = #all
    local filtind = maxops.trackbar.registerFilter filterCallbackFunction undefined "." 1 active:on
    disableRefMsgs()
    local sel = getCurrentSelection()
    select objects
    maxops.trackbar.redraw forceRedraw:on
    maxops.trackbar.unregisterfilter filtind        
    select sel
    enableRefMsgs()
    ok
)
)

編集:申し訳ありませんが、またはこれを使用してください:)

deleteKeys objects #allKeys
于 2012-02-20T08:16:56.380 に答える
1
max select all
macros.run "Animation Tools" "DeleteSelectedAnimation"
clearSelection()

または、このコードをツールバーにドラッグしてマクロを作成してください。

于 2012-04-28T11:19:36.417 に答える
1

または、オブジェクトの限られたグループからキーを削除するには、

for o in objects where matchpattern o.name pattern:"*somename*" do deleteKeys o #allKeys

または、キーを削除するオブジェクトを選択して、これを試してください

for o in selection do deletekeys o #allkeys
于 2013-02-13T22:52:22.543 に答える
1

私はこのコマンドを使用してすべてのキーを削除していました:

deletekeys $*.controller #allkeys
于 2013-04-23T11:08:21.953 に答える
0

スクリプトなし:Ctrl-Aを押してから、メインメニュー>アニメーション>選択したアニメーションを削除

于 2012-02-29T14:33:24.207 に答える