例えばタイトルにあるようにskinOps。(3dsMax2014及び2015で確認)
某所ではskinOpsはAutodeskがインターンに作らせた欠陥コマンドなんて言われてたりしますが(実際問題多い)、今回はそのコマンドをUndoに記録する方法について紹介します。
結論から言うとUndoに記録されるコマンドと一緒に使って、undo on ()で括ってしまえば記録されるようになります。
undo "SetWeight" on
(
theSkin = $.modifiers[#skin]
skinOps.ReplaceVertexWeights theSkin 1 #(1) #(1.0)
)
記録されない。undo "SetWeight" on
(
theSkin = $.modifiers[#skin]
skinOps.bakeSelectedVerts theSkin -- Undo記録用
skinOps.ReplaceVertexWeights theSkin 1 #(1) #(1.0)
)
記録される。う~ん、この欠陥っぷり・・・。
ちなみに今回はUndo記録用にbakeSelectedVertsを使っていますが、これはUndoに記録されるskinOps内のコマンドで最も高速に動作するからだそうです。
今回はbakeSelectedVertsを使いましたが、他にUndoに記録されるコマンドを既に使っているのであれば、わざわざ使う必要はありません。
自分もこの問題でかなり悩まされたので、誰かの参考になればいいなと。