第二回はこちら(前回から1年ほど空いてしまってすみません)。

コーディングなしでポイントアンドクリックゲームを作れる、Adventure CreatorというAssetを使って、ゲーム作りを勉強中です。


今回は動画の43分くらい~最後までの手順をまとめています。
完全に自分の備忘録用なので、キャプチャなどは載せていません。
動画をみながら進めると、よりわかると思います。




オープニングのカットシーン

最初の部分を作る。
Scene ManagerのScene CutscenesのところにあるOn startでCreateする。

インタラクションのアクションリストが作られる。
最初の部分で、画面外から歩いてきて、こちらを向くまでを作る。

アクションリストでObject, Teleportを選択。Teleport toに、Scene ManagerでMarker2Dから新しいマーカーを作ってセットする。

次にCharacter, Move to pointで、Is Playerにチェックを入れて、最初の立つ場所になっているマーカーをセット。
ここに道はないのでPath findのチェックを外して、Wait until finishにチェック。

次につなぐアクションでCharacter, Face Directionをセット。Wait until finishにチェック。


Game-wide settings

プレイヤーがダブルクリックで走るが、runのアニメーションがないので走れなくする。

Scene ManagerのSettingsのCutscene settingsでActionList on start gameをCreate。

ActionとしてPlayer, Constrainを選んで、Walk/runでAlways walkを選ぶ。


NPCをつくる

スプライトをヒエラルキーに放り込む(どの絵でもいい)。

ACのEditor > Character wiardでNPCを設定。ヒエラルキー内のNPCをアタッチする。
Sprites Unityを選択して終了。

ルートに入っているCircle Collider(Playerが入れないエリアになる)とスプライトに入っているBox Collider(クリックできるエリアになる)のサイズ調整。

Playerと同じようにBirdIdle, BirdTalkなどのアニメーション名をルートのStandard 2d animationで設定。Multple directionのチェックを外す。

新規Animator Controllerを作ってアタッチ。アニメーションを放り込む(どれがデフォルトでもOK)。


NPCと会話

Bird Spriteをクリック。HotSpotでUse Intaractionを新規追加。

Talk to, Walk to markerを選択し、上にあるwalk-to markerを新規作成して設置。

InteractionをCreate。アクションリストでDialogue Start Conversationを選択。

Scene ManagerでConversationを新規追加。Add new dialogue optionsを追加。


会話の選択肢を作っていく。
Override options?にチェックを入れると、各選択肢から分岐が伸ばせるようになる。

会話のアクションをつなげていき、選択肢によっては最初に戻す(最初のアクションに足を伸ばす)。

最初の会話をしない限り、ある選択肢を出さないためには、Conversationの出したくない選択肢のIs enabled?を外しておき、アクションリストの中の最初の会話アクションの後に、Dialogue, Toggle optionを追加して、Conversationを追加し、あとから話せるようになる選択肢を選んでONにする。


インベントリにアイテムを追加

アイテムのスプライトをヒエラルキーに追加して、それを選択した状態でScene ManagerのHotSpot2Dを追加。

このときPosition over selected itemをチェックしておくと、自動でその周りを囲むようなメッシュが出来上がる。ヒエラルキーでホットスポットの下にスプライトを入れ込む(一緒に動かせるようになる)。


Use Interactionをこれまでのように追加し、マーカーを設定してそこまで歩いていくようにする(前回の記事の「Hotspotの追加(インタラクションの追加)」参照)。


かがんだアニメーションを再生するようにしたいが、かがんだタイミングで拾った虫が消えるようにしたい。

そのため、追加したアクションリストでAction List, Run in parallelを選択。
同時に動かしたい数をof outputsで設定(今回は2個)。

まず一つ目。Character, AnimationでIs Playerにチェック。

Clip名はBrainTakeGroundで、Add direction suffixにチェックを入れておけば、自動で向きが固定されるので、DRのサフィックスをつけなくていい。
Wait until finishにチェック。


二つ目。Engine Waitで0.3という数値(Brainがかがむ秒数)を入れて、次のアクションとして、Object, Teleportを追加。

ObjectにWorm Hotspotを設定し、画面外のマーカーをteleport toに指定。

さらにInventory, Add or Removeアクションを追加。しかし、この状態ではまだアイテムがないので選べない。


そこで、Inventory ItemをScene ManagerのInventory managerから作る。
Create new itemをクリック。

名前を入れると、上記のアクションリストが自動で追加される。MethodでAddを選択し、Main Itemでアイテムのスプライトを選択しておく。


インベントリのアイテムを使う

Inventory Manager内のアイテムにUseとExamineがある。
ExamineをCreateする。

アクションリストが追加されるので、Dialogue, Play Speechでセリフを入れられる。

インベントリのアイテムは基本、シングルクリックで使うようになっている。

Setting ManagerのInventory Settingsの中でSingle/Multipleを切り替え可能。

Multipleにすると、HotspotみたいにUse, Talk toなどを指定できるようになる。
今回はSingleにしておく。


BirdのSpriteのinventry Interactionを新規追加。

Walk to Ma.rker, Face to Movingを選択し、新しいインタラクションをCreate。

先ほど作った、虫を拾い上げる一連の動きのアクションリストを全選択して右クリックでコピー。いま作ったアクションリストにペースト。
ここではsuffixのDRをつけとく。

teleportはいらないので消して、InventoryのアクションはAddでなくRemoveにする。

鳥とのDialogueを追加して終わり。


Inventory Settingsの中のDrag and drop Inventory interface?をチェックしておくと、インベントリのアイテムをD&Dで操作できるようになる。


もし、虫を鳥でなく木に対して使っても意味がない。
その場合の設定をしておく。

Inventory Manager内のGlobal Unhandled eventsでUse on HotspotをCreate。

アクションリストを開き、Dialogue, Play speechでプレイヤーが「使えない」などのセリフを言うようにする。


ロジックの追加

鳥との会話で、虫を見つけていない限り、おなかが空いたと言わせ続けたいなどのロジックを変更する。

Variable Managersを開く。
Globalはいつでもどこからでも呼べて、Localはそのシーン限り。
Localを使っていくほうが取り回しがききやすい。


Create new local variablesをして名前つける。TypeはBoolean(True/Falseの二択)で、最初はFalseにしておく。

鳥のアクションリストで、虫を食べておいしいといった後の部分に、Variable, Setというアクションを最後の部分に追加する。SourseはLocalで先ほどのVariableをセットし、StatmentをTrueにする。


プレイヤーと鳥の会話の間に、右クリックしてInsert newでVariable, Checkのアクションを追加する。SourseはLocalで、先ほどのえさを食べたか判定をVariablesに設定。

If condition is met(虫を食べた):おなかがいっぱいというダイアログを新規追加してつなぐ。Action RunningでSkipを選んで、一番初めにスキップさせる。 

If condition is not met(虫を食べていない):おなかが空いている文言につなぐ


UIのカスタマイズ

Menu Managerを開いて、Menusの中のSubtitlesメニューを開くとプロパティが開く。

SourceにACやUnityなどあるが、ACを選んでおくと、Gameウィンドウで常に会話が表示された状態になるからおすすめ。

発話者の名前表示を消すには、下のエレメントでDeleteしたらOK。


SubsLineLabelを設定。
Size of MenuをAutomaticにし、PositionをManualからAbove the characterにする。

すると、丸いアイコンが出てくる。そのあたりがキャラの頭の位置になるので、そこに合わせてダイアログボックスの位置をずらす。

Textの背景色をBackground Textureで、Noneにして、テキストのアウトラインをText effectでつける。位置を選ぶ。文字サイズもFontのText sizeから拡大できる。

文字の流れるスピードが速すぎる場合、Speech ManagerでScroll Speach text?のチェックを外し、Minimum diplay timeを伸ばす。

Use Character Text color?をチェックすると、それぞれプレイヤーやNPCの中にDialogue settingが追加され、そこで色を選べるようになる。


セーブ・ロード

File > Build Settings > Add Open Scenesを追加しておく。

虫を捕まえずにセーブし、そのあと虫を捕まえてセーブして、一つ目のセーブデータを開くと、虫が消えてしまう。これは二回目のセーブで虫が画面外にテレポートした状態になっているから。

Worm hotspotでAdd Componentする。
AC > Save system > Remember Transformを追加すれば場所を保存してくれる。


でもこれを一つずつやっていくのは煩雑なので、Settings ManagerのSave Game settings内、Auto-add save components to GameobjectsをクリックしてOK。

これでまとめて一気につけてくれる。これは不可逆の設定なので、一回保存しておくことをおすすめする。


キャラクターの影

影のスプライトをヒエラルキーにD&DしてPlayer Spriteの配下に入れ込む。

Player SpriteでOffset original Order?にチェックを入れ、プレイヤーのオーダーを0、影のオーダーを-1にしてApply。

そうすれば、いろいろなところを歩き回っても影がついてくる。


おしまい!