Metasequoia BBS

| 新規投稿 | 通常表示 | ツリー表示 |
状態
タグ
キーワード
[9163] MQObjectPluginでボーンのウェイト操作のみを実施するとアンドゥが生成されない / synqark
対応済み [質問,プラグイン] 返信
いつもお世話になっております。

タイトルの通りになりますが、選択中のオブジェクトの頂点に対してボーンのウェイトを調整する(SetVertexWeightをする)だけの
MQObjectPluginを継承したプラグインを作ったのですが、
プラグイン実行後、正常に完了してもアンドゥ履歴が更新されず、そのままアンドゥを実行した場合、プラグイン処理の1つ前の動作まで巻き戻ってしまいます。

ちなみに、上記の処理の後に、「適当なオブジェクトを複製する処理を」後処理として追加したらアンドゥ履歴が更新されることを確認していますが、
さらに「適当に生成したオブジェクトを削除する処理」を加えてしまうとまたアンドゥ履歴が更新されなくなるるようです。

こちら、何か対応方法などございますでしょうか?
2021-10-10 19:37
[9165] Re: MQObjectPluginでボーンのウェイト操作のみを実施するとアンドゥが生成されない / 管理者
Command型のプラグインにはアンドゥ更新用のUpdateUndo()があるのですが、他のタイプのものにはこちらがないので(これまで必要になることがなかったので用意していませんでした)、明示的にアンドゥを更新することができません。

オブジェクトの追加・削除ではなく、例えば頂点座標やオブジェクトの属性などをセットすればアンドゥも更新されないでしょうか?
2021-10-11 18:54
[9166] Re: MQObjectPluginでボーンのウェイト操作のみを実施するとアンドゥが生成されない / synqark
>オブジェクトの追加・削除ではなく、例えば頂点座標やオブジェクトの属性などをセットすればアンドゥも更新されないでしょうか?

SetVisible(GetVisible())したら履歴が生成されました!
ひとまずこれで良さそうです。
ご確認いただきありがとうございました。
2021-10-11 22:35
[9167] Re: MQObjectPluginでボーンのウェイト操作のみを実施するとアンドゥが生成されない / 管理者
ひとまず解決されたとのことで良かったですが、対処療法的な手段ではなくもっとスマートな方法として、UpdateUndoをどのタイプのプラグインでも利用できるよう検討します。
2021-10-12 10:45