unityでゲーム作りし始めて2年が経過しました。
新作の「浮気がバレたら死」を販売して一区切り。ここでは、unityでのエディター拡張によるゲーム開発環境を紹介したいなと思います。
ゲーム作りを楽にするため、下記の2点に気をつけながらエディター拡張しました。
・フラグ管理をできるだけ避ける
・デバッグしやすくする
フラグ管理をできるだけ避ける
自分はツクール2000、VXAce、MVとツクールでゲームを作った経験がありますが、そのときに変数やスイッチの管理が面倒くさかったのを覚えてます。
名前付けするのはいいんですが、量が多くなると
「それがどこにあるのか」とか、
「もういらないから削除しよう」とか、
「いや、そもそも本当にいらないのか?」とか、
「ここの変数はこの順番にしたほうがわかりやすいから並べ替えよう」とか…。
いや、めんどくさいなっ!w
なので、そういうのをなるべくなくすため、unityではセルフスイッチを作りました。
ツクールでもセルフスイッチはありましたが、あれは同一イベントじゃないと条件に加えられませんよね?
そうではなく、別のイベントの条件に加えらえるようにしました。
条件の表示のところが、魔物襲撃となっています。これは魔物襲撃という名前のイベントが終了したら、このイベントを実行するということ。
ツクールでやろうとしたら、スイッチをこのように作らなくていけませんよね。
そして、魔物襲撃イベントの終了時に、このスイッチを設定すると思います。
これがunityだと「セルフスイッチオン 自動」をチェックするだけ。
チェック後、イベント条件の候補にあがります。
こうすることで、あとから「あのスイッチ、一覧のどこだったかな~」とか「いらなくなったから削除しよう」というフラグ管理の手間がなくなります。
この例の場合、魔物襲撃のゲームオブジェクトを作成することは、魔物襲撃フラグの作成とイコールになり、削除も同じだからです。
フラグはスイッチの他に変数(整数や文字列)があります。変数を使わなくていけないときは仕方なく変数を使ってます。Fungusというアセットがあり、それを改良しました。
改良した点は、ユニークなIDを使って入れ替え可能にしたことです。
変数の入れ替えはツクールではできなかったですが、整理するときに必要のため、実装は必須だと思います。
デバッグしやすくする
ツクールでテストしていたとき、初めからではなく特定のイベントから実行したい、ということが多々ありました。
その場合、開始時に実行される自動イベントにて適当なフラグをオンにすると思います。
そのとき、どのスイッチをオンにするのか、またはオフにするのかの設定が面倒だった覚えがあります。
どうにかしたい、というわけで作ったのがこちらです。
これはシーンに配置されたイベント名のボタンで、例えば、—自動—の下にあるsub〇〇というのは、自動イベントになってます。
リンクより下のボタン群は、繋がっているイベント名を表示しており、上に位置するイベントから順に実行されることを示してます。
例えば、二番目の宴会イベントから実行したいと思ったとき、一つ手前の魔物襲撃のフラグがオンになっていないといけません。
なので、魔物襲撃の横のチェックボックスをオンにし、あとは実行するだけで、宴会イベントから実行されるというわけです。
ツクールだと自動イベントを作り、そこに魔物襲撃のスイッチをオンにするというコマンドを入れなければいけませんが、その手間を省いてます。
このように、ゲーム開発環境の改善は日々継続中です。また区切りが良いところで紹介したいなと思います。
コメント