Unityアセット「Game Creator」の魅力や機能を紹介します。圧倒的に短時間で簡単に処理を実装できる初心者ライクなツールアセットです。
Game Creatorとは
Game Creatorはビジュアルスクリプティングとキャラクターコントローラーやカメラコントローラーなどのゲームツールが組み合わさったアセットです。3Dゲームの開発ができます。
難しい計算やロジックをすることなく扱える命令群を厳選して用意しておりノンコーディングで開発ができるため、コードを書けなかったりロジックが苦手な方がUnityでゲーム開発をするのにも最適です。言わば、何でもできるUnityから、機能を制限する代わりに直感的且つ素早い操作性を担保したアセットです。
Unity Asset Storeの以下のページで販売しています。
日本ではよく利用されているゲームエンジン、RPGツクールやSRPG Studio、ティラノビルダーに近いぐらいに直感的になります。そのため、ゲーム開発初心者やデザイナーが簡単に3Dゲームを開発することができます。また、機能の追加は容易なため、プログラマーもInspectorから手軽に扱えるビジュアルスクリプティングはそれ単体で役立ちます。プロトタイプ製作には非常に便利です。
デザイナイー・Unity初心者には特にお勧めできるアセットです。
チュートリアルで実際にどのように扱うか確認したい場合は以下のページに記載しています。
Game Creatorの利点と欠点
以下、詳しい説明に入る前に、簡単にGame Creatorの利点と欠点を書きたいと思います。
- 手軽にキャラやカメラや変数を作成し、手軽なビジュアルスクリプティング。
- Unityの命令群を整理し、使い勝手の良いもののみに厳選。機能そのものは少なめだけど、既存機能だけでもゲーム開発に耐えうる便利さ。(この選別が本当に上手。)
- 初心者が躓きやすいゲーム製作序盤の面倒や箇所をGame Creator側で行い、開発者は意識せずに利用可能。
- ビジュアルスクリプティングを拡張すれば、Unityだと作り込まないと実現不可能なツクールのような一連のRPG的な処理も簡単に実現できる。
- 公式・非公式のアドオンがアセットストアから販売しており、豊富な機能が拡張可能。
- ソースコードが超綺麗(ここまでシンプルで美しいコードは久しぶりに見ました)。特にUnity初心者は各種命令をどのように実装しているか見るだけで勉強になります。c#初心者は各デザインパターンを無意識に学べます。
- プログラマが機能を追加し、アルバイトが最終的処理の実装を行うような分業が可能。
- 機能を厳選しているので、足りない機能の拡張が前提。拡張は容易だけど、それでもデザイナでは限界や妥協がでてくる。
- 公式・非公式アドオンを買いまくっていると以外とお金がかかる
- 他アセットとの連携も拡張は容易だけど、デザイナでは限界や妥協がでてくる。
- 売りの一つであるビジュアルスクリプティング部分が現在β版扱いのGraphViewで将来はUnityで簡単に実装できそう。
- テンプレートは2Dに対応していない。(ビジュアルスクリプティングで自分で拡張することは可能。)
- 複雑な分岐や深いロジットになるとバグが追いにくい。
ビジュアルスクリプティング
ビジュアルスクリプティングはBolt、Play Makerなどいくつかありますが、それらとの一番の違いはノードエディタを利用しません。Inspectorでリストを増やすように縦一直線に直接命令を増やします。各命令群はそれぞれで詳細なプロパティ項目を編集可能。RPGツクールのイベントエディタ、ウディタのコモンエディタ、ティラノビルダーの編集画面と同様の感覚で操作できます。
Game Creatorのビジュアルスクリプティングは、Trigger、Condition、Actionの3つのコンポーネントで成り立っています。Triggerは発火条件、Conditionは分岐条件(IFみたいなもの)、Actionは実際の挙動群を示します。
次のように、どんどん直線上に命令を配置していくようなInspectorです。
例えば、宝箱を開ける処理を実装しようとすると、普通はプレイヤーが宝箱の●m以内の位置にいて且つユーザーが決定ボタンを押した時に宝箱を開ける処理をしてアイテムを入手したり効果音を流したりキャラクターに喜びのアニメーションをさせたりします。
この時、Game CreatorではTriggerでは、「宝箱から●m以内」を実装します。「ゲームオブジェクトから●m以内にplayerがいたら」という命令が用意してあり、Inspector上でゲームオブジェクトに宝箱を指定して●mに適切な値を入れると発火条件の完成です。
さらにConditionで、●ボタンを押した時を設定します。(発火は条件を1つしか入力できないため)
最後にActionで、宝箱のアニメーションを再生、効果音を再生、キャラクターが喜ぶアニメーションを再生などの命令群を入れます。それぞれ命令群があるので、簡単に実装できます。
Action、Condition、TriggerはそれぞれPrefab化が可能なため、宝箱を開ける処理の凡用化、UIの開閉の凡用化なども容易です。デザイナがコードを触ることなく、●●の条件と●●の条件を満たしたらなどの複雑な分岐もPrefab化することで再利用が可能です。
本当にこれが全てで、この繰り返しでゲームの肉付けを行っていきます。
ちなみにプログラマによる拡張も簡単です。
このビジュアルスクリプティングの良いところは各命令部で詳細なInspector画面を作れるところです。
私は、Game Creatorの他の機能や命令は使わずとも、このビジュアルスクリプティング部は今でも独自に拡張を続けて愛用しています。最近、UnityにGraphViewのプレビュー版ができ、これで同じことができそうなため、将来的に有用かどうかは現時点で判断できませんが。
また、3Dモデルアセットを購入してすぐに動かしてみたい場合など、ちょっとした事にも愛用しています。Game Creatorそのものもファイル数がそこまで大きくないのでPackage Managerからすぐインストールできる上、Hierarchyでキャラクターコントローラーを出して、そこに3Dモデルをドラッグするだけで動くようになります。
キャラクター・カメラの操作や変数管理と保存処理
Game Creatorの強力な機能のもう一つがビジュアルスクリプティングと結びつき、且つ初期設定も超簡単なキャラクターコントローラー、カメラ操作、変数管理です。
例えばキャラクターコントローラーは、Hirerarchyの右クリックでPlayer、及びCharacterが作れます。Characterコンポーネントにはモデルをドラッグする場所があるので自作やアセットストアから入手したHumaroidモデルをドラッグすれば、オリジナルモデルの完成です。Playerならプレイモードですぐに走ったりジャンプが可能です。
Actionでこのキャラは簡単に動かしたり特定のアニメーションをさせたりできます。Game Creatorデフォルトのキャラアニメーションもいくつか用意されていますが、こちらも容易に自作やアセットストアのAnimation Clipを追加可能です。
また、カメラもChinemashineの機能を超絞って扱いやすくしたかのようなカメラ制御機能があります。
これも使い方は簡単でHierarchyに置くだけ。いくつかのカメラモードがあるので(FPS視点やADV視点、固定など)好きなカメラモードと微設定を行う程度でゲーム開始時に自動的にカメラが切り替わります。複数のカメラ置くことで、Actionでカメラを切り替えることも可能。
変数については、専用の変数エディタがあります。ここで設定した変数はActionで自由自在に管理が可能で、Triggerの条件などにも利用できます。さらに、変数はセーブで保存できるかを選ぶチェック項目があり、Actionでセーブを実行すると勝手に保存するようになります。
また、面白い機能としては、パーティーの1人目、2人目のように共通のステータス項目を持つようなゲームオブジェクトに対して共通の変数を扱うような機能もあります(残念ながらセーブには不対応ですが)。
セーブ・ロードは上記変数の他、Player、Characterのその場の位置を保存する機能も含みます。
これらをゲーム中で管理するためのActionやTrigger、Conditionの命令群も揃っているため、ゲーム開発者は一切のコードを書くことなく、機能を利用可能です。
デザイナやコードを書けない方が利用するには
全くコードを書けないデザイナーがGame Creatorを利用することを前提に、Game Creatorが便利か不便かですが、実際便利です。
私は3Dゲームをコードを一切書かずに開発ができるゲームエンジンは他に知りません。
ただし、その範囲はプログラマと比べて、予め用意されている命令群のみの制限があります。
例えば、Game Creatorは入力制御にInput.GetAxisに該当する命令がありません。つまりInputManagerで設定したキー制御を使えず、単一キーしか発行できません。
そのため、Game Creatorで「あるボタンが押された時」を実装しようと思うと、キーボードの●が押された時をTriggerにし、Conditionでさらにマウスの左ボタンが押された時、ゲームパッドの●が押された時のような処理を作ります。
Game Creatorでも実装できるけど、美しくありません。そのため、私がまず初めにした事はGetAxisに対応するTriggerの自作でした。その他、ボタン関係は全てGetAxisが使えないため自作・修正していきました。自作は超簡単なので工数もかからず問題ありません。
Actionはそれらから別のAction,Trigger,Conditionを呼び出せます。そのため、GetAxisを利用しなくとも、上記TriggerやConditionを共通で利用できるように作成してPrefab化おけば再利用可能なため、デザイナはこれらの方法で実現するでしょう。このような創意工夫が必要となります。
ただ、Game Creatorで拡張無しでできない事は公式、又は他人が作成したアドオンを導入することで解決することも多いです。言わば、RPGツクールとプラグイン、ウディタとコモンイベントのような関係とそれが実現できるコミュニティ環境(英語)が出来上がっています。Unityアセットストアで購入できる有料アドオンアセットもありますが、Game Creator公式ページでダウンロードできる無料のアセット(スクリプト?)も多数あります。
例えば公式では以下のようなアドオンが発売しています(リンクはUnity Asset Storeへ移動)。
- Dialogue:ビジュアルノベルのような会話の作成。会話中にキャラクターやカメラも操作できるため、映画のようなシーンも作成可能。
- Melee:近接攻撃アクションが手軽に利用可能にあります。
- Shooter:FPSやトップダウンシューターのような銃撃が手軽に可能になります。
- Quest:クエストシステムを導入します。
- Stats:RPGなどで利用するキャラクターのステータスを管理するシステムを導入します。
もう1点、Unity初心者が利用するにしても、Unityの基本機能は理解している必要があります。Unityエディタの使い方、ColliderとRidibodyの概念、Audio Mixerの使い方、GameObjectとコンポーネントなど。コードを書く必要はありませんが、それらの概念を理解していないとGame Creatorは使いこなすことができません。
そのため、本当のUnity初心者は、初心者向きのUnityのチュートリアルを一通り試してから購入を検討することをお勧めします。概念だけ知ればよいので、複雑なコードは流し読みで問題ありません。
まとめ
Unityをすでに自在に使いこなしている開発者に大手を振るって勧めれるアセットではありませんが、Unity初心者、アーティスト、アーティストと組むプログラマーなどにはお勧めしたいアセットです。特に、Unityでプログラミングに苦手意識を覚えるならノンプログラミング且つ複雑なロジックも少ない最適な開発法の一つです。
また、個人的にはPlay MakerやBoltよりもビジュアルスクリプティングにスピード感と分かりやすさがある点も気に入っています。