12
9

More than 3 years have passed since last update.

Unity Asset GameCreator 概要編

Posted at

はじめに

この記事はUnityの有料アセット「GameCreator」について紹介する記事です。
GameCreatorはUnityのAssetStoreにて65ドル(2019年10月)で購入することができます。
※一応公式フォーラムで記事を書いていいかどうか相談してみた結果OKでした。(コアな部分のソースコードなどは無理ですが)

GameCreatorのアセットのリンクはこちら

GameCreatorの概要

GameCreatorは何かということですが、簡潔にまとめると

  • ビジュアルスクリプティング&UnityEditorの拡張アセット
  • UnityのInspectorに命令処理を追加していき、上から順番に処理が実行される
  • 基本ロジックはActions, Triggers, Conditionsの3つからなり、これらを組み合わせてゲームを構築していく
    • ActionsはGameObjectなどに動作を与える
    • Triggersは動作などのイベントを発火する
    • Conditionsは条件分岐などの制御処理を行う
  • 上記以外にプレイヤーを操作するためのPlayer、変数の管理などをするVariables, カメラ操作を制御するCamera Motor などが内包されている
  • 自前のActions,Triggers,Conditionsを追加可能(エンジニア向け)
  • 追加の拡張モジュールがいくつか販売されており、これらを追加して様々なゲーム機能を追加できる

より詳しい内容について知りたい方は下記の公式ドキュメント(英語)があります
https://docs.gamecreator.io/game-creator/game-creator

デモ

  • 公式からWebGLサンプルが公開されているので、こちらを最初に触ってみるのがよいかなと思います。
    • https://demos.gamecreator.io/
    • デモページの上部に、Inventory,Dialog,Quests,Stats,Behaviorがありますが、これらは追加販売の拡張モジュールのデモになります。これらはGameCreatorのみのアセットには付随していません。またこれらはGame Creatorを購入して追加しないと動きません。ご注意下さい。

image.png

実際に使ってみる

実際にUnity上でどう作っていくのかをお見せしていきます。
簡単な例として、「プレイヤーがドアを開ける」サンプルを作ります。

  • WASDで操作可能なプレイヤー
  • ドアに近づくとメッセージが出る
  • Eキーを押すとキャラクターがアクションを行いドアが開く
  • ドアが開いている最中に別視点のカメラに切り替える

環境

  • Unityのバージョン
    • 2018.4.8f
  • GameCreatorのバージョン
    • 1.0.4

GameCreatorのインストール

UnityAssetStoreでGameCreatorを購入し、プロジェクトにインポートします。
無題2.png
インストールが完了すると、Unityのエディタメニュー部分にGame Creatorが追加されます。
ちなみにメニューの内容は下記の通りです。
無題4.png

メニュー名 説明
Check for Update 最新バージョンの確認とアップデート
Reinstall Game Creator GameCreatorの再インストール
Module Manager 拡張モジュールの管理
Preference GameCreatorや拡張モジュールの設定
Tools ドキュメントやツールバー表示

Playerをシーンに配置する

まずは操作できるプレイヤーをシーンに配置してみます。
Unityの上部メニューのGameObject または HierarchyのCreateなどから[GameCreator]->[Characters]->[Player]を選択します。
すると、シーン上にPlayerオブジェクトが配置されます。
無題1.png

このままUnityEditorで再生するとそのまま落下していくので、適当な土台をプレイヤーの下に配置しておきます。
この状態で実行するとプレイヤーを動かせます。
[WASD]または[↑→↓←]で移動、[スペース]でジャンプできます。
無題2.png

Camera Motorを追加する

このままだとカメラ(Main Camera)がプレイヤーに追従しないので、追従するようにしたいと思います。
GameCreatorでは、Camera Motorでこれを実現します。

Unityの上部メニューのGameObject または HierarchyのCreateなどから[GameCreator]->[Other]->[Camera Motor]を選択します。
この状態で実行するとマウスの動きとPlayerの動きに合わせてカメラが移動します。
無題1.png

CameraMotorのオブジェクトのInspectorからChangeを選択すると幾つかリストが出てきます。FollowCameraにして実行してみてください。先ほどの実行結果と異なり、カメラがマウスの動きに反応しなくなり、Playerの動きに追従するようになります。
無題2.png
※Camera Motorにはいくつかパラメータや機能がありますがここでは詳しく説明をしません。別の機会に取り上げたいと思います。

Triggersを追加する

プレイヤーが動くようになったところで、イベントを発火するためのTriggerをシーンに配置してみましょう。
[GameCreator]->[Triggers]を選択してください。
Unityのシーンに次のようなTriggerゲームオブジェクトが追加されます。
無題2.png
デフォルトのトリガーはOnStartになっています。これはシーンが開始されたときに実行されるTriggerになっています。これをChangeTriggersを押して、OnPlayerEnterKeyと入力して選択して下さい。OnPlayerEnterKeyはプレイヤーがコライダーに入っているかつ指定したキーが入力されたときにActionを実行するトリガーになります。また、ここではKeyCodeを「E」にしています。
無題2.png
Triggersの設定は以上です。ちなみにこの段階で実行してももちろん何も起こりません。何を行うかはActionsに定義します。
※ちなみにOnPlayerEnterKeyなどコライダーに入ってからActionなどを実行するTriggersは、必ずCollider系のコンポーネントとIsTriggerの有効が必要です。

Actionsを追加する

Actionsはゲームオブジェクトなどに動作を与える処理になります。アクションの追加の仕方は数種類あります。
ここでは、前項「Triggersを追加する」で追加したTriggerのInspectorから、Actionアイコンが表示されているところを押します。
無題2.png
そうすると、Triggerゲームオブジェクトの下にActionsという名前の子ゲームオブジェクトが追加されます。
image.png
追加されたActionsを見ると、次のようになっていると思います。ここにアクションを追加していきます。
image.png

メッセージログを出してみる

味気ないですが、UnityのDebug.Logと同じようにコンソールに文字列を出すアクションを追加してみます。
ActionsのAdd ActionからDebug Messageと入力し、Debug Messageアクションを追加してみてください。次のようになると思います。
image.png

ログがちゃんと出るのか確認してみます。以下の画像ではtriggerゲームオブジェクトの位置がわかりやすいように、Triggerの下にPrimitiveなCubeオブジェクト(BoxColliderなし)を追加して位置を調整してます。
TriggerのSphereColliderに入っている状態でEキーを押すと、コンソールにMessageの内容がログに出ます。
image.png

いろいろなアクションを追加してみる

さすがにログだけを出すのはつまらないので、いくつかアクションを追加してみます。

Add Actionを選択して、Transform Moveと入力してアクションを追加してみてください。新しいアクションがDebug Messageアクションの下に追加されたと思います。
image.png
Transform Moveアクションはゲームオブジェクトを移動するアクションです。Durationのパラメータを設定することでイーズイン・アウトのようなアニメーションつきで移動してくれたりします。

適当な位置に、Cubeオブジェクトを配置して、ドアとするゲームオブジェクトをシーンに追加しておきます。(ここではDoorというゲームオブジェクトで配置しました)
image.png
次に、追加したActionsゲームオブジェクトを選択して、先ほど追加したTransform Moveアクションで、このDoorを上部に移動するようにしたいと思います。今、アクションの名前がMove Playerという名前で表示されていると思いますが、これを以下のように変更してみてください。

項目名 設定値
Target GameObject, Door
MoveTo Transform, Door, Offset(0,10,0)
Rotate false

image.png

この状態で実行してみます。TriggerのSphereColliderに入っている状態でEキーを押すと、Doorが上のほうにスーっという感じで移動していきます。

ちなみに、実行中にAdd Actionの右端のボタンが押せる状態になっており、このボタンを押すとTriggerに入らなくてもActionを実行することができます。
image.png

さらに色々アクションを追加してみます。各Actionの詳細な説明は今回は行いませんが、他のActionが知りたい方は公式のドキュメントをご覧下さい。

Action名 説明
Play Sound 音を鳴らす
Change Property playerまたはcharacterの設定値を変更する(例えばジャンプ禁止にする)
Change Camera Cameraを別のCameraに切り替える

例として、今回作る「ドアを開ける」Actionsは次の通りです。

  • [Change Property]:プレイヤーを操作不可の状態にする
  • [Change Camera]:カメラを別の位置にあるカメラ(FixedCamera)に切り替える
  • [Transform Move]:ドアを開ける
  • [Play Sound]:音を鳴らす
  • [Change Camera]:カメラを最初に使っていたメインカメラのほうに切り替える(切り替えるときに1.7秒でスムーズに戻す)
  • [Change Property]:プレイヤーを操作可能状態に戻す

image.png

Conditionsについて

Conditionsは条件分岐で、If ~ Else と同じ意味です。今回は詳しく扱いませんがとりあえず触れておきたいと思います。
Conditionsを追加するには、[GameCreator]->[Conditions]を選択してください。
image.png
Conditionsには条件にマッチすると、Thenに指定したActionが実行されていきます。Add Clauseボタンを押すと、Conditionsの内容を変更できるようになります。また、条件にマッチしなかった場合はElseに指定したActionが実行されます
image.png

プレイヤーの3Dモデルを変更したい

今は白い人の3Dモデルですが、別の3Dモデルに変更することもできます。ちなみに、Game Creatorのアニメーションシステムを利用するには、インポートしたアニメーションがHumanoidである必要があります。

UnityのHierarchyのPlayerゲームオブジェクトから Character Annimatorのコンポーネントに、Drop Your 3D Modelという部分があるので、そこに適用したい3Dモデルをドロップします。
image.png

UnityChanの3Dモデルを使ってみます。Unity Asset StoreからUnityChanの3Dモデルをプロジェクトにインポートしてモデルをドラッグ&ドロップしてください。プレイヤーがUnityChanの3Dモデルに替わったと思います。ジャンプなどのアニメーションも一応適用されてます。
image.png
※環境によっては、UnityChanのパッケージをインポートすると、[using System.Security.Policy]でコンパイルエラーが出ると思います。AutoBlink.csのusing System.Security.Policy部分をコメントアウトしてください。

アニメーションステートを変更したい

3Dモデルは変わりましたが、実行してみると待機状態や走ったときのアニメーションがデフォルトのアニメーションになっていて、これを変更したいと思います。(画像からだとわかりずらいですが…)
image.png
GameCreatorの場合、専用のアニメーションステートというものを作ってプレイヤーに反映することでアニメーションが変更できます。

Unityの下のプロジェクトフォルダから、[Create]->[Game Creator]->[Characters]->[Locomotion State]を選択してください。
こんな感じのアイコンのアセットができると思います。
image.png
StateUnityChanという名前にしておきます。
作成したアニメーションステートを、PlayerのCharacter Animationに設定します。
image.png
作ったアニメーションステートを見ると、長いリストが表示されていると思います。
image.png
Character@idleをUnityChanのアニメーションである「WAIT00」、Character@runFowardを同じくUnityChanのアニメーションの「RUN00_F」に設定します。
image.png
実行するとアニメーションがいい感じに適用されてます。
image.png

まとめ

Game CreatorはUnityの有料アセットになります。Visual Scriptingでロジックを組み込むことが可能です。Triggers/Actions/Conditionsを組み合わせて様々な処理を追加していくことが出来ます。今回は触れませんでしたが、これら3つの基本ロジックは自分で作ることも可能です。次回があればこの3つの機能について深堀りしていきたいと思います。

12
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
9