ToyStudioのような編集機能を有するソフトの場合、「元に戻す/やり直し」、つまりアンドゥー機能があると、ユーザーはとても便利です。しかしこの機能は、実現するのに多大な労力を要します。例えば、ToyStudioにサウンド機能を付加するには、以下のような関連機能を追加する必要があります。
- サウンド再生機能(DirectX系)
- サウンド属性編集機能(編集系)
- サウンドリスト編集機能(編集系)
- ステップ(ON/OFF)型のアニメーショングラフ追加(数値処理系)
- ステップ型アニメーショングラフの編集機能(編集系)
- サウンド位置設定用にヌル(NULL)オブジェクト追加機能(CG系)
- ヌルオブジェクトの編集機能(編集系)
- アプリケーションGUI(GUI系)
この中で、「編集系」となっている機能はアンドゥー機能が必要になります。結局のところ、全体の工数の80%程度がアンドゥー機能の実装に必要となります。
また、アンドゥーは多重化している場合があります。ToyStudioのようなモデラー/アニメーターの場合、幾何データをアニメーションデータが参照しています。幾何データが削除されると、それを参照しているアニメーションデータも削除され、アンドゥーされると、アニメーションデータも復元されることになります。ボーンがからんでくると、さらに複雑になります。
一般的に、編集ソフトがアンドゥー機能に対応すると、開発工数は5倍以上になると思われます。