驚異の全部入りAVG制作支援ツール「Adventure Creator」オーバービュー
この記事はUnity アセット真夏のアドベントカレンダー 2017 15日目の記事です。
前日の記事はbaba_sさんの
「Project ビューのフォルダを彩る「Rainbow Folders」紹介」でした。
これはMacのラベル機能を愛用してる人には特に便利ですね!
2017.09.03追記
「Adventure Creator」の英語チュートリアルを翻訳しながら実際にゲームを制作して解説している凄いブログを見つけました!しかもとても丁寧に説明されている!僕のブログの続き読むよりこちら読んだ方がいいですよw
(ブログ主は@corevale_comさんです。AC以外の記事もありますよ!)
はじめに
今回ご紹介する「Adventure Creator(以降AC)」は、名前の通りアドベンチャーゲーム(AVG)の制作を支援するアセットです。
AVGという単語の意味する範囲は広く、日本では「ポートピア連続殺人事件」などの推理ゲームや恋愛アドベンチャー、ノベルゲーム、更にスマホアプリ界隈で現在ブームの脱出ゲームなどもその範疇に含まれるでしょう。
ACはそうした様々なAVGを作れてしまうとにかく機能豊富なアセットで、私も現在制作中のゲームで使用しています。いつかはご紹介したいと思っていたのですが、あまりに機能が多いのでまじめに全部説明していたら1年くらいの長期連載になることは間違いなく、なかなか書けずにいました。
そこで今回は個々の機能の操作を説明するのはやめ、このアセットでどんなことができるのか、という簡単な紹介にとどめます。それでも少々長いですがよろしければお付き合いください!
- 2017.09.03追記
- はじめに
- 3D/2D/2.5DのAVG制作に対応
- AVGのあらゆる要素を制御
- ノンコーディングで各種設定にアクセスできる「マネージャー」
- ゲーム中の多彩な機能実行を可能にする「アクション&アクションリスト」
- カスタマイズにも柔軟に対応
- サードパーティ製アセットとの連携も強力
- 活発なアップデートとユーザーコミュニティ
- Adventure Creatorを学ぶ
- まとめ
3D/2D/2.5DのAVG制作に対応
日本ではAVG=2Dというイメージの人が多いと思いますが、ACは2Dはもちろん3Dや2.5Dにも対応しています。2.5Dという単語の意味は文脈によって変わってきますが、ACでの2.5Dは「背景はイラストや実写写真等の2D、キャラクターは3D」というものです。(下図はAC公式サイトより)
Unity的に一番作りやすいのは多分3Dで、2Dや2.5Dは「キャラクターの平面上の移動を奥行き方向への移動と解釈し、画像の重ね順を制御して疑似的に奥行きを表現する」というプログラマーには楽しく(?)デザイナーは泣きたくなる処理が必須となりますが、ACではその辺が最初から実装されています。
AVGのあらゆる要素を制御
ACはとにかく「全部入り」で、およそAVGを制作するにあたって開発者が制御したいことはほぼ全て網羅されています。以下に主な機能を列挙します。多分これでも漏れが多数ありますw
ノンコーディングで各種設定にアクセスできる「マネージャー」
ACは「ノンコーディング」が売りの1つ*1ということで、各種設定は「マネージャー」画面から調整することができます。
用途に応じて8つのマネージャーが用意されていますが、例えば一番使用頻度の高いScene managerはこんな感じ。
まあこういうのの操作を覚えるのとコードをゴリゴリ書くのとどっちが楽かは微妙なところですがw なお、このマネージャーの設定はアセットファイルに保存されているため、ACをアップデートしても消えることはなく、他のプロジェクトからマネージャーアセットを持ってきて使い回すことも可能です。
ゲーム中の多彩な機能実行を可能にする「アクション&アクションリスト」
こうした様々な機能は、基本ゲーム中の任意のタイミングで実行できなければ意味がありません。
ACでは、そうした各種機能を制御するための「アクション」というスクリプトがあらかじめ豊富に用意されており、更にそれらを数珠繋ぎして「アクションリスト」という一連の流れを組み立てることで、それをゲーム中に実行できます。
実際のプロジェクトで説明してみます。(あくまで紹介ということで詳細な操作は省きます。)
ここでは、「ユニティちゃんを操作して森の中を探検しているとダイヤモンドを見つけたので、クリックしてゲットしたらユニティちゃん大喜び」という安直なシチュエーションを作ってみました。 *2
前準備として、まずアイテム「ダイヤモンド」をACのInventory manager(アイテム管理用のマネージャー)に定義しておきました。結構細かい設定ができますが、ここではアイテム名とゲットしてインベントリ*3に表示された時のグラフィックを設定しただけです。
次にACのメニューから「Hotspot」という黄色いキューブを作り、シーン内のダイヤモンドを包みます(ゲーム実行時には見えません。)。
「Hotspot」はプレイヤーの操作(クリックなど)に応じて、予め登録されたアクションリストを実行します。アクションの起点としてはこの他、ゲーム内のキャラクターがある場所に出入りしたときにアクションを実行する「Trigger」を配置することもできます。
脱出ゲームのように「特定のアイテムをセレクトした状態でクリックすると特別なアクションをする」などもできますが*4、ここでは単純に手ぶらの状態でクリックした時のアクションリストを作成し、Hotspotに設定しておきました。
いよいよ本題のアクションリストですが、こちらは1つのアセットファイルとなっており、その中身の編集は専用のActionList Editorを使って行います。
このようにAcsionList EditorはUE4やUnityのPlaymaker、Arbor2などでおなじみの(といっても遥かに簡素ですが)ビジュアルスクリプティング*5になっています。
上の図では、
- シーン中のダイヤモンドを除去(ゲットしたのに残ってたら変だから)
- 所持アイテムにダイヤモンドを追加
- 現在のユニティちゃん追尾カメラから固定視点カメラに1秒かけて切り替え
- ユニティちゃんにアニメーションさせる
という一連のアクションを作成しました*6。これを実行したのが先の動画です。
ここでは簡単な例で説明しましたが、もちろん条件分岐もできますし、パラメーター(引数)も使用できるので、「ダイヤをゲットする時とルビーをゲットする時は対象アイテムをパラメーターとして与えて同じアクションリストを使い回す」などの使い方が可能です。
驚くべきはアクションの豊富さで、上で使ったもの以外にも総数で100種類以上用意されており、うまく組み合わせればほぼ何でもできる気がします。そのうえ、個々のアクションは1つのクラス、つまり1個のスクリプトなので、ルールに従ってコードを書けば独自のカスタムアクションを作ることもできます。
カスタマイズにも柔軟に対応
ACは確かにコードを書かなくても殆どのことができてしまうのですが、それでも独自の仕様を追加したい局面はあるかと思います。そんな時も基本的なAPIが用意されているので、自作のコードからACの機能にアクセスすることはそこそこ柔軟に可能です。あと私はプログラマーではないので実際どうかよくわかりませんが、個人的な印象としてはACのコード自体が(膨大ではあるものの)比較的平易なので、自分で手を入れて魔改造することもそんなに大変ではない感じです。
サードパーティ製アセットとの連携も強力
アクションの中には、人気のサードパーティ製アセットを制御するものも含まれています。マニュアルにあるのは以下の通りです。
ACにはそれ自体にカットシーン作成やカメラ制御、ビジュアルスクリプティングなどてんこ盛りではあるのですが、より高度な機能を扱いたい場合には他のアセットとの連携は非常に有効です。更に、実は上記にないアセットでも、前述のカスタムアクションを自分で書けば結構制御可能だったりします。*8
活発なアップデートとユーザーコミュニティ
ACは頻繁にアップデートされ機能が追加されます。例えば、先ほどの機能一覧表にチラッと載せましたが、本記事執筆時点で既にUnity2017のTimelineを制御するアクションが追加されていたりします。バグもどんどんつぶされていくので、この種のアセットとしては安定した動作が実現されていると思います。
また、作者のChris Burton氏とユーザーのフォーラム等でのコミュニケーションも活発な印象です。
Adventure Creatorを学ぶ
これだけのアセットですから当然マニュアルがついてくる訳ですが、このマニュアル、ついこの前までトータル180ページの中に図版は1個だけであとは全て英文のテキストのみで説明されているという古文書のようなすさまじい構成でした。
それがなんと先日のバージョン1.58で全面リライトされ、スクショなどの図版を豊富に(ってほどでもないけどそこそこ)取り入れたいわゆる普通のマニュアルになったのですが、図版が入ったせいで総ページ数350ページになってしまいましたwもう下手な技術書より分厚いです。
そんなの読んでられない!という方には(ていうか大抵の人はそうでしょうw)、公式の動画チュートリアルがおすすめです。といってもこちらも英語ですが、実際の操作の様子が見られるのでいきなりマニュアル読むよりは少しはわかりやすいです。何より1本の動画で3時間半とか凄いボリュームなので、頑張って制覇できれば結構わかってきます。
以下、もろもろ参考になりそうなリソースをご紹介します。
- 公式サイト
- 噂のマニュアル
- WebGLによるデモゲーム(2D/3D/物理演算)
- チュートリアル動画
基本設定等は2Dのチュートリアルで解説されているので、3Dゲームを作りたい人も最初は2Dのチュートリアルを観るのが作者のおススメとのこと。
なお、1人称視点ゲーム以外のチュートリアルは古い(Unity4.6)なので若干注意が必要です。(ただACを使う上ではあまり関係ない気がする)
YouTubeで検索すると他にもユーザーがアップした動画が多数ヒットしますが、基本的に公式観るだけで十分(というか力尽きる)と思います。
・2Dゲーム(約1時間半)
・3Dゲーム(約3時間半)
・2.5Dゲーム(約2時間半)
・1人称視点ゲーム(約1時間半)※これは昨年末に追加されたので割と新しい - テキストチュートリアル
こちらもかなりのボリュームですが、マニュアルよりは実践的にゲームを作りながら進める感じです。ただ、内容がアセットの更新に追いついていないのであまり積極的に使うものでもないかも。マニュアルや動画を見ても解決しない時に参照する程度がおすすめ。 - スクリプティングガイド(APIリファレンス)
マニュアルにも載ってるからそっちの方が見やすいかも… - 公式フォーラム
- Unityフォーラム
まとめ
Adventure Creatorはそこそこ値がはりますし、日本語情報が殆どないこともあって学習コストもそれなりに高いです。とはいえ、一度習得してしまえばAVG制作の強力な味方になるアセットだと思います。興味を持たれた方はぜひ上の各リンクを参照してみてください。そのうえでよし買ったれ!と思った方はぜひ当ブログのリンク↓からw(セールになると5000円以下で買える時もあるので狙い目です)
さて、アドベントカレンダー明日の担当は…いないw
現時点で次に入っているのは8/19の青木ととさんです!それではまた!
*1:ACに限りませんが「ノンコーディング」という言葉に釣られるのは少々危険というのが個人的な意見です。なにより「コードを書かなくていい」というのを「コードが読めなくていい」と混同しない方がいいです。むしろ上手く動かない時やバグが出た時は見知らぬ他人様のコードを追わないといけない訳なので、こういうアセットを使う時ほど尚更コードの勉強はしておく必要があると思います。あとぶっちゃけコード書いた方が楽なことも多(ry
*2:これは完全にノンコーディングです。画面中の各UIやユニティちゃんを自動追尾するカメラ、「マウスでポイントするとアイテム名が表示されてアイテムがハイライトされる」等の仕掛けも全てACに組み込まれています。当然気に入らなければカスタマイズできます。
*3:脱出ゲーム等によくあるアイテム一覧メニュー
*4:その他、テキストありの脱出ゲームでよくある「ここでは使えないようだ」「特にかわったようすはない」などの「未定義の箇所でアイテムを使用した場合のアクション」なんてのも設定できます。
*5:図でラインが途中で曲がっているのは「ビジュアルスクリプティングなんだよ~ん」と言いたいだけで全然意味はありません。
*6:実際のゲーム制作では、元に戻るメニューの表示(とそれをクリックしたときの元に戻るアクションリストの実装)、役目が終わったHotspotの無効化など他にも色々必要ですが基本的に全てアクションリストから可能です。
*7:見つからなかったのでUnityのアセットとしては無くなったぽい?
*8:現在私が制作中のアプリでは、このブログでちょくちょく紹介しているFinal IKを制御するカスタムアクションを書いて使っています。