チュートリアル: トップビューゲームのセットアップ

概要

トップビューゲームのセットアップに関するチュートリアルです。
通常のチュートリアルコースを読了し、基本的な操作を習得していることを前提として解説を行います。

通常のチュートリアルコースでは、サイドビューのゲームを題材に解説を行いましたが、ACTION GAME MAKERではトップビューのゲームも作成可能です。
ただし、サイドビューとは異なる設定がいくつか必要となるため、差異となる点を重点的に解説します。

トップビューとサイドビューの違い

大きな違いは2点です。

  1. 重力が存在しません。
  2. キャラクターのアニメーションが左右2方向のみではなく、上下左右の4方向、もしくは斜めを加えて8方向のアニメーションとなります。

1.はシーンの重力を0にする、2.はキャラクター作成時に手動でアニメーションを各方向に設定することで解決することができます。それでは、早速作成していきましょう。

プロジェクトの作成

  1. ランチャーのサンプルプロジェクトタブを開きます。
  2. 「Topview project base」を読み込みましょう。

:memo:Topview project baseとは?
トップビューゲームで使用するための簡単な設定が行われたテンプレート用のサンプルプロジェクトです。
主な変更点は、以下の2点です。
*サンプルgame_sceneの重力プロパティを「0」と設定しています。
*RPGツクール風のボタン入力をプリセットで設定しています。

重力の設定

プリセットのシーン(game_scene.tscn)の重力は0なので重力の問題は解決です、新しくシーンを作成する場合は手動で設定が必要です。
この場合は、GameSceneノードのプロパティより重力の値を0に変更して設定してください。

キャラクター用ゲームオブジェクトの用意

ゲームオブジェクトの新規作成より「Topview Character Base」を選択して作成しましょう。

:memo:Topview Character Baseとは?
トップビューのキャラとして利用するために簡単なセットアップを行ったゲームオブジェクトです。アニメーションセットにサンプルセットがあること、GameObjectのMotion ModeプロパティがFloatingとなっている以外は2D Sprite Character Baseと相違ありません。

4方向アニメーションの設定

本項では、「上方向」「下方向」「左右方向」の3種類のアニメを持つという前提で設定方法のみを解説します。
チュートリアルで使用した 「アニメーション一括読込(BulkSetAnimation)」 は、左右2方向専用の設定のため使用できません。
そのため、トップビューでは各方向に手動でアニメーションを割り当てる必要があります。

  1. GameObjectノードを選択し、プロパティの「アニメーションセット」を展開します。
  2. デフォルトで設定されているMove_Templateアニメーションがありますがこれは無視してください。「+アニメーションセットを追加」ボタンをクリックします。
  3. 新しいアニメーションが追加されますので、任意の名称を設定し、「>アニメーションと方向」を展開してください。
  4. 「+方向を追加」を選択します。
  5. アニメーション指定、自動でY軸反転のプロパティと方向パッドが表示されます。
  6. まずは下方向のアニメを設定します。「Y軸反転=オフ」「表示方向:down_left_arrow::down_right_arrow:」と設定しましょう。

:memo: 自動でY軸反転(autoflip_y)について
これは、左右で同じアニメーションを使いたい場合のみに使用するプロパティです。有効にすると、「右向きのアニメ」を表示方向に応じて反転します。元が 「左向き」のアニメで設定すると表示が逆になってしまうので注意してください。

  1. 続いて上方向のアニメを設定します。「+方向を追加」で方向を追加し、「Y軸反転=オフ」「表示方向:up_left_arrow::up_right_arrow:」と設定します。
  2. 最後に左右のアニメを設定します。「+方向を追加」で方向を追加し、「Y軸反転=オン」「表示方向← →」と設定しましょう。

    これで4方向アニメーションの設定は以上です。

:memo: TIPS
左右で別々のアニメーションを割り当てる場合は、自動でY軸反転をオフとしたうえで←と→を別のアニメに分けて設定しましょう。
8方向で設定したい場合は、上下で斜めの入力を設定せず、さらに方向を追加して設定していきましょう。

トップビューゲームのセットアップとしては以上です、続いてはテンプレートオブジェクトを使って360度シューター用の設定を解説します。

360度シューター用の設定

ここでは、

  • マウス、あるいはスティックの方向に上半身を向ける。
  • 下半身はキー入力された方向を向く。

というスタイルの360度シューター用の設定を解説します。
0からセットアップするのではなく、テンプレートオブジェクトの「Topview 360 Shooter Player」オブジェクトを使って解説します。

導入

  1. オブジェクト作成より、キャラクターテンプレートにある「Topview 360 Shooter Player」を選択し、「入力デバイスで操作する対象とする」を選択した上で作成します。
  2. MoveAndJumpSettingsを選択し、プロジェクトにあわせたキーの設定をしましょう。
  3. テストプレイを行います。上半身(ピンクの矢印)はマウスや左スティックの方向を向き、下半身(白い矢印)は移動キーを入力した方向を向くはずです。

解説:オブジェクトの設計

このオブジェクトは、本体のゲームオブジェクト「360Shooter」が下半身であり、上半身はゲームオブジェクトの子ノードである「360shooter_head」となっています。

下半身の動き

こちらはシンプルに、8方向の移動アニメーションを設定し、「FaceDirectionSettings(視線の向き)」で移動キーの方向を向くように設定しているのみとなります。


任意のスプライトを用意し、8方向移動用に設定してあるアニメーションを差し替えることでお望みのキャラクターに変更できます。

上半身の動き

こちらは、マウスやコントローラーのスティックの方向に応じてノードを回転させることができる「ChangeAngleSettings」を使い、「360shooter_head」ノードを回転することで実現しています。


「360shooter_head」ノードが回転するため、子ノードであるheadスプライトとtargetノードもそれに合わせて回転するという仕組みになっています。

マウスやスティックの方向に弾を発射するための設定

先述の通り、このゲームオブジェクトの主体は下半身であり、弾設定の「表示方向に発射」を使って指定の方向に飛ばすことはできません。
これを解決するため、「target」オブジェクトを使います。
「target」オブジェクトは、「target」グループが付与されているだけのゲームオブジェクトですが、「360shooter_head」の子ノードとなっており、「上半身の正面少し先」に配置されています。子ノードなので、360shooter_headと共に回転しますから、どの方向を向いても常に「上半身の正面少し先」に配置されることになります。
そのため、弾は「target」グループに向けて飛ぶように設定すれば「マウスやスティックの方向」に発射できるということになります。

また、同様に「接続点(Connector)」を360shooter_headの子ノードとして配置すれば、腕の先や銃口から弾を発射できるようにできます。

「いいね!」 1