Unityと吉里吉里でSLGとかRPGを作るブログ

ゲームをやるにあたって、アンドゥ機能は結構重要なインターフェースだと思う。
特にPCゲームの場合、ウィンドウ等を閉じるにしても、「閉じるボタン」までマウスを移動するのはしんどいですよね。
コンシューマのゲームでも、ボタンの1つがアンドゥ機能に設定されてるのが普通になっています。

そこで今回は、右クリックアンドゥ機能について説明したいと思います。
今回も、説明と同時にダウンロードできるサンプルを付ける予定です。

■右クリックアンドゥという機能

そもそも、右クリックアンドゥってなんぞやという処ですが、簡単に言えば、右クリックを実行すると1つ前の動作がキャンセルされる機能です。
しかし、言うは易しで、この機能は以外に奥深いです。
まず、説明の為に、アイテムウィンドウと、キャラクターウィンドウしか無いゲームを想像して見て下さい。
この間抜けなゲームでも以下の用な機能を実装する必要があります。

1.実行した順番を覚えておく必要がある
まず、1番ですが、アンドゥの基本的な機能として、アイテムウィンドウキャラクターウィンドウと開いていったら、アンドゥは逆に、キャラクターウィンドウ→アイテムウィンドウと閉じていかなければなりません。

2.キャンセルする機能毎に、内容が違う
アンドゥにもいろいろあります、開いたウィンドウを閉じる、選択したアイテムをキャンセルすると言った様に、キャンセルする内容によって振る舞いが大きく変わります。

3.特定の条件で、アンドゥを無効にする必要がある
色々なパターンがありますが、アイテムAを使用するとキャラクターの会話イベントが発生するとしましょう。
そのイベント中に、右クリックで後ろのウィンドウがアンドゥするのはおかしいですよね?

4.特定の条件で、アンドゥ機能を無かった事にする必要がある
キャラクターウィンドウアイテムウィンドウの順で開き、アイテムウィンドウは、ウィンドウ本体についている「閉じるボタン」で閉じたとします。
その場合、次の右クリックアンドゥはキャラクターウィンドウを閉じる訳です。つまり、特定の動作で覚えていたアンドゥの順番は変わると言う訳です。


■右クリックアンドゥの仕様

ここで紹介する仕様は、姫百合に実装されているものです。
右クリックアンドゥ解説

●IDの発行と格納
アンドゥを行いたいアクション毎に、IDを発行し配列に格納します。
アンドゥする時は、格納した順番と逆に実行していけば、1番の問題は解決します。
IDは各実行内容で一意とします。

●特定のIDを削除
特定のIDを削除する機能を入れる事で、4番を解決します。

●アンドゥの内容は、発行元に持たせる
Aウィンドウの実行内容なら、Aウィンドウにアンドゥの機能を持たせます。
これにより、2番を解決します。

さて、3番はどうしたと言う話になると思いますが、3番はそもそも右クリックアンドゥを実行しない時を作る事で対応します。
例えば、吉里吉里の標準機能では、右クリックはメッセージウィンドウのONOFFです。
姫百合では、イベントシーンで右クリックすると、この機能が実行されます。
イベントシーンでは、右クリックアンドゥは実行されない作りな訳です。

■総括

次回は、サンプルとその解説を行います。
やっぱり、動くのがある方が良いですからね。





◆つぶつぶ主人公HP◆
スポンサーサイト
2012.10.10 / Top↑
Secret

TrackBackURL
→http://nekodamasi.blog79.fc2.com/tb.php/73-9e86bc1d