【Unityアセット】Game Creator -⑤Action応用編-
はじめに

「Game Creator」はUnityアセットストアにて購入できる有料アセットです。
3Dゲーム製作に便利なツールで、ビジュアルスクリプティングでコードを書かずにゲームを製作することができます。
今回このブログでご紹介するのはGame Creatorの無印版で、
2021年9月にGame Creator2がリリースされています。
2021年9月時点ではベータ版であり、拡張モジュールとの互換性はまだ無い様なのでご注意ください。
環境
記事内での環境は以下の通りです。
Unity 2020.3.5f1 Personal
Game Creator Version 1.1.13 May 18,2021
Actionの応用について
この記事では、
沢山あるGame CreatorのActionでどんなことができるのか
使用例をご紹介していきたいと思います。
沢山あったり初めて使うアクションは実際どんな作用をするのかは使ってみないと分からなかったり、
実はその際はこっちのパターンの方が〜など出てくると思うので
参考にしていただければと思います。
Messageについて
Simple Messageを使うと、
任意の秒数で画面下にメッセージを表示することができます。

OnStartのトリガーで発動することで、黒い背景に白い文字でメッセージが出ています。
Colorで文字色を変更する事もできます。
表示の際にサウンドを付けたい場合はAudio Clipにアタッチします。
デフォルトでは文字サイズやフォントが初期状態のままなので、例えば日本語を表示したかったりサイズを替えたい場合は、
このアクションで呼び出しているプレハブを編集します。

SimpleMessageプレハブがアセットで用意されているので、
このプレハブを開くとアクションを実行した際に呼び出されるUIを確認出来ます。
プレハブ内でフォントや文字サイズを変更してあげます。
その後、初期の状態ではこのプレハブを呼び出す指定がされていないので、
上部メニューのGame CreatorからPreferencesを開き
Prefab Simple Messageに先ほどのSimpleMessageプレハブを設定します。

フォントと文字サイズを少し大きくする設定にしていたので、
メッセージを変更して再生してみます。↓

無事変更されました。
ゲーム内でナビで表示してあげたり、シンプルでよければ会話に使っても便利です。
Gestureについて
Character編でStateを変更してキャラクターのアニメーションを変更する方法はご紹介しましたが、
シンプルにジェスチャーを1回だけ〜のようなアクションをさせることができるのがGestureです。

On Mouse Downトリガーで発動してあげます。
CharacterでPlayerを選択し、
Clipにグットポーズのアニメーションをアタッチしました。
Maskを設定する事もできますし、スピードなども変更することができます。
クリックするたびにアニメーションを実行してくれています。
Doorの開閉について
3Dでアドベンチャーゲームなど作っていると結構出てくるドアの開閉。
Actionの中にTransform Rotateというオブジェクトを回転させるアクションが用意されているので、
それを応用してやってみます。
まず例として、Cubeでドア代わりのオブジェクトを作ります。
そして空のオブジェクトをつくり、回転の支点(家に取り付けられている部分)に配置します。

配置出来たらドアに見立てているCubeオブジェクトを、空の支点としているオブジェクトの子オブジェクトに設定します。
これで空オブジェクトのY軸を回転させればCubeがドアの様に右側を支点に回転してくれます。
またクリックしたらアクションが実行されるようにして、
Transform Rotateアクションで空オブジェクトをアタッチして、
Y軸をとりあえず100とかにしてみます。
無事ドアの様に回転してくれました。
ちなみに、このままクリックを繰り返すと同じ方向にドアが回転し続けておかしな挙動になってしまいます。
この開くだけで終わりならいいですが、演出でドアを閉じる必要もあるかもしれません。
色々方法あると思いますが、
VariableとConditionを使ってまとめる事もできます。

PreferencesでBool型の変数を作ります。とりあえずdoorOpenとしました。
そしてクリックした時に発動するのをアクションではなくコンディションに設定します。

これで左クリックをするとコンディションが呼び出されるので、
doorOpen変数を参照してあげて、falseならdoorをY軸に100、trueならdoorをY軸に-100してあげればOKですね。

こちらが開いた後の状態のときの設定。
Add ConditionでVariable boolを選択して、door Openを設定、チェックボックスにチェックを付けてtrue状態を検知します。
trueならTransform RotateでY軸が-100、閉じる方向ですね。
実行後に変数をfalseにするアクションを忘れない様にします。

こちらがElseの時、doorが閉じている初期の状態で呼び出されるアクションです。
最初にやった様にTransform RotateでY軸に100、その後にdoorOpen変数をtrueにしてあげます。
これで実行してみます。
ドアの開閉を繰り返したりすることがあれば、こんな感じでVariableとConditionを活用するとヒエラルキーも少しだけスッキリまとめることができます。
もっと複雑なアクションを組んでる場合は有効な小技です。
まとめ
ほんの一部ですがGame Creatorを使ってゲーム製作をしていて、
何度か使った手法のご紹介でした。
ドアの開閉で使った変数を参照する方法は様々なシーンで活用できました。
ちなみに、
よろしければ全てこのGame Creatorでコードを使わずに製作したゲームを
Unity1weekの「ちゅう」のお題で提出していたものがあるので
改めてみると改善点色々ありますが、参考までにみていただけると幸いです笑
こちら↓
「energy soul」
https://unityroom.com/games/energysoul

それでは💤