チュートリアル: ツクールモードでジャンプアクションをツクろう!

はじめに

このチュートリアルは、ごくシンプルなジャンプアクションを0からツクることを通してアクションゲームツクールでのゲーム制作の基本を学ぶチュートリアルです。

アクツク起動時に表示される「画面説明チュートリアル」を終えた前提で説明を行いますので、まだの方やスキップしてしまった方はランチャーのチュートリアルボタンより「画面説明チュートリアル」をやってみてください。

今回制作するゲームは、ジャンプで敵を踏みつけて倒し、5体の敵を倒したらクリア、というシンプルなものを目指してツクっていきます。

では早速始めていきましょう。

Part1:制作の準備をしよう!

Part1-1: エディターを調整しよう!

まずは、エディターをあなた好みにカスタマイズしましょう。

  1. アクションゲームツクールを起動してください。

  2. ランチャーが立ち上がるので、右上にある「セットアップ」ボタンをクリックします。

  3. セットアップ用のウィンドウが立ち上がりますので、フォントサイズと表示スケール(UIの大きさ)を設定しましょう、表示スケールはAutoだと画面サイズにあわせてちょうどいいサイズにしてくれます。設定したら次へを押します。

  4. 続いてテーマカラーを設定できます。ダークテーマがお好きな方はデフォルト/ダーク/ミッドナイト、ライトテーマがお好きな方はライト/クリーム/ミントから選ぶとよいでしょう。好きなカラーを選んだら「完了」を押して準備完了です。

Part1-2: 新しくプロジェクトをツクろう!

それでは、新しいプロジェクトを用意します。

  1. ランチャー画面の左上にある「+新規作成」ボタンをクリックします。

  2. 「新規プロジェクトを作成」ウィンドウが現れるので、プロジェクト名を変更します。(ここではジャンプアクションチュートリアルとしますが、好きな名前で大丈夫です。)今回作成するのはジャンプアクションで、素材は公式のものを使うため他の設定はそのままで大丈夫です。「作成」ボタンを押しましょう。

  3. 少しの読み込み画面の後、エディターが起動すれば成功です。これでプロジェクトが作成できました。

Part2: マップをツクろう!

Part2-1: まずはタイルを読み込もう!

さて、起動時に表示されている画面はマップビューです、このままマップを作ってしまいましょう。何もクリックしていなければ、マップレイヤーで「ベース」というものが選択されていて、下には何やらパレットというものが表示されているはずです。

この「ベース」はTileMapLayerという、タイルを描くためのノードであり、パレットは描くためのタイルを表示するスペースですが、まだ何もタイルが登録されていない状態ですので追加していきましょう。

  1. 下部パネルのタイル設定ボタンをクリックします。

  2. 「タイルパレット設定」というウィンドウが開きます、ここでタイルの画像などを設定するのですが今は画像がありません、右上の「公式素材をインポート」ボタンをクリックしてください。

  3. 素材リストが表示され、タイルが展開されている状態になっているはずです。オートタイル(ベース)の左にある>をクリックして展開してください。

  4. リストが展開され色々な画像が表示されますが、AT_B_001_soil_00.pngの左の□をクリックして✓をつけ、「インポート」ボタンを押しましょう。

  5. 続けて読み込んだ素材をタイルとして登録するか?というウィンドウがでるので、「OK」を押します。

  6. この画像はオートタイル用の画像で、自動で色々な設定がされますので、そのまま「取り込み」ボタンを押しましょう。

    間違えてキャンセルしてしまったときは・・・

    「タイル設定」ウィンドウの「画像一覧から追加」よりタイル追加をやりなおすことができます。

    image

  7. これでオートタイルが登録されましたので、「タイル設定」を閉じます。

  8. 閉じたパレットにもオートタイルが追加されているはずです。

Part2-2: タイルを塗ろう!

早速塗っていきましょう。パレットでは「ペン」ツールが選択され、タイルの画像も選択されているはずなので、そのまま上の画面で塗っていきます。

  1. 上の画面にマウスカーソルを動かすと、格子状のエリアが表示されます。クリックすると、その場所にタイルが置かれるはずです。

  2. ドラッグすれば、ペンのようにタイルを塗っていくことができます。このタイルはオートタイルなので、塗られ方によって自動で形がかわっていきます。間違えて塗った場合は右クリックで消すこともできます。

  3. 紫色の四角がカメラの範囲なので、その中にある程度の大きさを持つ島を作ってください。

    うまく塗れないときは・・・

    マップレイヤーで「ベース」が正しく選択されているか、パレットのツールで「ペン」がきちんと選択されているか。誤って「消しゴム」を有効化していないかチェックしてください。

    image

    また、上部のプレビュー画面用のツールバーが正しく:up_left_arrow:(選択モード)になっているか確認をしてください、移動モードや回転モード、手のひらモードでは塗れません。

  4. 塗り終えたら、右上の:play_button:ボタン(プロジェクトを実行)を押してください、テストプレイが立ち上がり、あなたの作成した島が表示されるはずです。

    うまく表示されないときは・・・

    紫色の四角形(カメラの範囲)内にきちんと島が描かれているか確認しましょう。

これでマップをツクることができました、次はプレイヤーを作っていきます。

Part3: オブジェクトをツクろう!

Part3-1: 「素材管理」で公式素材を用意しよう!

Part3ではプレイヤー用のオブジェクトを用意しますが、まず画像がありません。

「素材管理」で公式素材をゲームに取り込みましょう。

  1. 上部のビュー切り替えバーで、素材管理ビューに切り替えます。

    image

  2. 「公式素材をインポート」をクリックします。

  3. サイドビュー用テンプレート画像を展開し、player_meika.pngを選択して「インポート」しましょう。これは、サイドビューアクションのプレイヤー用に用意されたテンプレート画像になります。

  4. 念の為、ちゃんと読み込まれたかチェックしましょう、「フォルダ」を「画像」に切り替えるとplayer_meika.pngがあるはずです。もしなかったら取り込み直しましょう。

Part3-2: プレイヤーのオブジェクトをツクろう!

続いては実際にプレイヤーを作っていきます。

  1. 「オブジェクト」ビューに切り替えます。

  2. 左側のドックにある、「+新規作成」ボタンを押しましょう。

  3. 「新しいオブジェクトを作成」というウィンドウが立ち上がるので、オブジェクト名に「プレイヤー」と名付けます。他はデフォルトの設定のままで良いですが、もし違っていたら下の画像のように設定して「作成」を押しましょう。

  4. デフォルトの移動入力を自動設定しますか?というウィンドウがでるので、「はい」を押してください。これでコントローラーやキーボードで操作するためのキーが自動で設定されます。

    もし、間違えて「いいえ」を押してしまったときは

    プレイヤーのノードリストの必須要素にある「移動とジャンプ」を選択します。

    右側のインスペクタードックを確認し、入力キーの設定で左方向への移動をleft、右方向への移動をrightとしてください。

  5. これでプレイヤーのオブジェクトが作成できました。

Part3-3: プレイヤーにアニメを設定しよう

続いて、先程取り込んだ画像を使ってアニメを作っていきます。

  1. プレビュー上部にあるタブを「スプライトアニメ」に切り替えてください。

  2. 画面中央にボタンが現れるので、下の「テンプレートから読み込み」ボタンを押し、「サイドビュー用」を選択します。

    間違えて「スプライトアニメを使う」を押してしまった時は・・・

    画面右上に「テンプレートから読み込み」ボタンがあるのでこちらを使ってください。

  3. 「サイドビュー・テンプレートから読み込み」というウィンドウが開きます。これは、特定の形式で作られた画像を一括で読み込んでアニメーション化するためのウィンドウです。

  4. 早速画像を取り込みましょう、右上の「画像一覧から…」ボタンをクリックします。

  5. プロジェクト内にある画像が一覧で表示されるので、先ほど取り込んだplayer_meikaを選択して「決定」を押します。

  6. 画像が読み込まれます、右側に出ているのが読み込まれるアニメのプレビューで、1.待機~6.射撃までが自動で読み込まれます。左側に見えているのが壁判定(水色の四角形)当たり判定(青色の四角形)攻撃判定(赤色の四角形)なのですが、画像とあっていません、ここは手動で調整が必要です。

    射撃以降の余っているコマはなに?

    このテンプレートは19種類のアニメを持つパルクールアクション用テンプレートです。テンプレート欄を切り替えることで19種類のアニメを自動読み込み・設定することができますが、チュートリアルでは使用しないので、そのうち6種類だけを使う最小テンプレートを使います。

  7. 壁判定(水色四角形)を調整します。壁判定は、タイルや他のオブジェクトとの衝突を検知するエリアになります。
    水色の四角形の四隅の□を動かして、キャラクターに合わせましょう、大体適当で大丈夫ですが、足元だけはきれいに合わせて置かないと地面から浮いたり埋まったりするので注意しましょう。

  8. 当たり判定(濃い青色の四角形)を調整します。当たり判定は、敵の攻撃判定に当たる範囲です、壁判定より一回り大きくなるように設定しましょう。

  9. 最後に攻撃判定を調整します。今回はジャンプアクションなので、足元にだけ攻撃判定がでるようにしましょう。
    ここで一つ重要なポイントです、ジャンプアクションでは、ジャンプ中や落下中は攻撃ができますが、他の動きでは攻撃ができないのが普通です・・・なので、有効の✓を外し、攻撃判定(無効)となるようにしておきましょう。

  10. 設定できたら取り込みボタンを押して完成です、6種類のアニメーションセットが自動で作成されました。

  11. 試しに好きなアニメを選択して:play_button:再生/停止ボタンを押してみましょう、アニメが再生されます。

Part3-4: ジャンプ/落下中だけ攻撃を有効にできるようにしよう。

先の取り込みで攻撃判定を無効にしてしまったため、このままでは攻撃できません、「判定アニメ」で調整をしましょう。

先の取り込みで無効化を忘れたり、判定の位置を間違えてしまったときは・・・
  1. 一度プレビュータブに戻ります。

    image

  2. 「壁判定」「当たり判定」「攻撃判定」があるので変更したいものを選びます。

  3. 取り込みと同じように判定を調整できます。(無効化は、右側のインスペクターにあります。)

  4. これはプレビューしているだけなので、判定アニメに反映します。「判定アニメ」タブに切り替えます。

  5. アニメーションセットでアニメを選択します。

  6. 右上にある「初期キー同期」ボタンを押せばプレビューでの編集内容が反映されます。これを各アニメに設定しましょう。

  1. 「判定アニメ」タブを選択して切り替えます。

  2. アニメの見た目がかわり、判定が表示されるようになりました。この画面では、下部に表示されている「フレーム」ごとに、それぞれの判定の位置やサイズがどうなっているか、を変更することができるようになっています。

  3. アニメーションセット欄で「jump」を選択します。先の取り込みで正しく設定できていれば、足元の攻撃判定は赤色ではなく透明(無効状態)になっているはずです。

  4. 要素(一部表示)欄で攻撃判定を選択します。

  5. 下のjump(3フレーム)欄で1フレーム目が選択されていることを確認します。ジャンプ開始時の判定の内容を変えることになります。

  6. 右のインスペクタードックにある、「無効」プロパティのチェックを外しましょう。

  7. これで、ジャンプでは足元の攻撃判定が赤く、有効になりました。左上の:play_button:では判定の動きとアニメをあわせてプレビューできます。

  8. 続いて、アニメーションセットで「air」を選びます。airは落下状態に使うアニメーションなのでこちらも攻撃を有効にする必要があります。4~7の手順を繰り返し、1フレーム目の攻撃判定を有効にしましょう。

  9. これで、ジャンプ中と落下中だけ、攻撃判定が有効になるようにできました。

  10. 最後にデータを保存しておきます。タブをプレビューに戻し「保存」ボタンを押します。(Ctrl+Sのショートカットでも保存できます)

  11. 左のオブジェクトドックのプレイヤー画像にサムネイルがついたら保存完了です。

Part3でオブジェクトの準備が完了したので、次はヴィジュアルスクリプトでプログラムを作っていきます。

Part4: ヴィジュアルスクリプトでプレイヤーのプログラムをツクろう!

Part4-1: プレイヤーをマップに配置しよう!

これからヴィジュアルスクリプトをツクっていきますが、まずその前にプレイヤーをマップに配置しておきましょう。

  1. 「マップ」ビューに切り替えます。

  2. 左側のドックの上部のタブを「オブジェクト(色付き立方体のアイコン)」に切り替えます。

  3. 先ほど作成した「プレイヤー」があるはずなので、プレビュー画面の、紫色の枠の中(カメラの範囲内)にドラッグ&ドロップしましょう。

  4. 「配置レイヤーの確認」というウィンドウが出るのでベースレイヤーに移動しましょう。

  5. ベースレイヤーの下に「プレイヤー」があり、キャラクターの画像が紫色の枠内に出ていればOKです、ずれていれば、ドラッグ&ドロップで移動しましょう。

  6. 右上のテストプレイボタンを押してみてください、タイルとキャラクターの画像がうつるはずです。ただ、プログラムがないため全く動きませんのでツクっていきましょう。

Part4-2: プレイヤーのヴィジュアルスクリプトをツクろう!

  1. 「オブジェクト」ビューに戻り、右上の「ヴィジュアルスクリプトを編集」ボタンを押します。

  2. 「このオブジェクトにはヴィジュアルスクリプトがありません」と出るので、「ヴィジュアルスクリプトを作成」ボタンを押しましょう。

  3. ヴィジュアルスクリプトの画面に切り替わります。四角い箱を「ステート」といい、それぞれが今プレイヤーが歩いているのか、ジャンプしているのか、等の状態を示しています。この「ステート」同士を「リンク」と呼ばれるものでつなぐことでヴィジュアルスクリプトはつくられていきます。

  4. 「ステート001」を「待機」用のステートにしましょう。まず名前を変更します。右側のインスペクターで、ステートの設定内にあるタイトルを「待機」にします。

  5. 続いて、待機用のアニメーションを割り当てます、インスペクターを上にスクロールして割り当てるアニメーションにあるアニメーションカテゴリで「idle」を選択します。

  6. 「プロジェクトを実行」でテストプレイをしてみましょう、キャラクターが動くようになり、左に行くときは自動で反転するようになりました。しかし、待機モーションしかないので滑るような移動です。次は歩きステートをツクってみましょう。

Part4-3: 「歩き」ステートをツクってリンクしよう!

  1. テストプレイを閉じ、ヴィジュアルスクリプトの「待機」ステートの近くで右クリックをして「ステートを追加」しましょう。

  2. この前とは別の「ステート001」ができるので、同じようにタイトルを「移動」にしてアニメーションにmoveを設定しましょう。

  3. これで「移動」ステートができましたが、「待機」から何が起きれば「移動」になるのか、という条件を設定しなくてはなりません。「リンク」を使って設定していきましょう。

  4. 「待機」を右クリックして「リンクを追加」します。

  5. 「待機」から線がでるので、線の先を「移動」に合わせてクリックしましょう。

  6. これで、リンクができたので条件を設定します。左右の入力がある間は移動になる・・・という設定が良さそうです。

    image

  7. 「以下の入力がされた」をチェックすると、入力操作リストというのが現れるので、「+入力を追加」ボタンをクリックします。

  8. 「入力条件の設定」ウィンドウが開くので、左列で「4方向の任意のキー」を選び、右列で左方向入力キーを「left」右方向入力キーを「Right」として「追加」ボタンを押します。

  9. これで、「4方向のキーのleftかrightが押されている間」は待機から移動に遷移する、と設定できました。次は、逆のリンク、移動から待機を作ります。

  10. 移動を右クリックして、「リンクを追加」し、待機に向かってリンクをつなぎます。

  11. 移動から待機に切り替わるのは移動入力が途絶えたとき・・・なので、インスペクターで「何も入力されなかった」をオンにします。これで、入力がなくなったら移動から待機に遷移します。

  12. 右上の:play_button:かF5キーでテストプレイしてみましょう、左右の入力をするとキャラクターが動き、離せばとまるはずです。

Part4-4: 「ジャンプ」と「落下」ステートをツクろう!

続いては、ジャンプアクションの華、ジャンプと落下を作っていきます。

待機か移動から、ジャンプ用のキー入力があればジャンプ、ジャンプが頂点に達したら落下に反転、着地したら待機に戻る・・・という流れが良さそうです。

  1. 任意の場所で右クリックして「ステートを追加」し、名前を「ジャンプ」にしてアニメーションカテゴリで「jump」を割り当てましょう。

  2. ジャンプの動きは、「アクション設定」で行うことができます、アクション設定の「ジャンプ動作を行う」をオンにしましょう。これでジャンプができました。

  3. 「待機」を右クリックしてリンクを作り、「ジャンプ」につなぎます。

  4. 再び、以下の入力がなされたをオンにして、「+入力を追加」を押します。

  5. 左列で入力に使う操作キーを選択し、入力キーを「A」、入力の条件を「押された瞬間」にして「追加」します。これで、Aを押された瞬間だけジャンプするようになります。

  6. 移動中もジャンプをしたいので、移動からジャンプも作ります。今回は条件が同じなのでコピーしてつくりましょう。追加した「待機」→「ジャンプ」のリンクを右クリックして「コピー」を選びます(Ctrl+Cのショートカットでもコピーできます)。

  7. 移動を選択して右クリックし、「リンクをペースト」(もしくはCtrl+V)します。リンクを追加と同じラインが出るのでジャンプにつなぎます。

  8. これで、移動中からもAに押された瞬間ジャンプになるようになりました。

  9. 次は落下ステートを作ります。ジャンプの横あたりに新しいステートを作り、名前を「落下」アニメーションカテゴリで「air」を選択しましょう。これはただ落下するだけなのでアクション設定はいりません。

  10. 「ジャンプ」から「落下」にリンクをつなぎます。今回は入力ではなく、「ジャンプが頂点に達したとき」という条件になります、こういった条件は「その他の条件設定」を使います。「+その他条件の追加」ボタンをクリックしてください。

  11. 沢山の条件が並んでいますが、左列の「オブジェクト操作」の中にある「ジャンプが頂点に達した」を選択して「追加」を押します。(右列は今回は触りません)

  12. これで、入力とは関係なくジャンプが頂点に達したら「ジャンプ」から「落下」に移るようになりました。

  13. 最後に落下から待機への遷移を作ります。落下から待機にリンクをつなぎます。今回も、地面に着地したとき・・・と入力条件ではないのでその他の条件を使います。「+その他の条件の追加」をしましょう。

  14. 着地というのは、タイルや敵などに下方向で衝突したとき、と言い換えることができますので、左列はオブジェクト操作内にある「衝突可能なものと接触」を選択してください。
    右列ではこのオブジェクトから接触した方向として「下」を選択しましょう。これで、「下方向」でなにかに衝突すれば待機に遷移するようになります。

  15. テストプレイをしてみましょう、うまく設定できていれば、キーボードならZ、コントローラーならA(任天堂配列ならB)を押せばジャンプし、地面に着地すれば待機に戻るはずです。

    うまくいかないときのチェックリスト

    ・そもそもジャンプしない。

    ジャンプステートの「ジャンプ動作を行う」をチェックしてください。

    ・ジャンプするがジャンプモーションのまま動かなくなる。

    ジャンプ→落下のリンクが正しく「ジャンプが頂点になった」になっているかチェックしてください。

    ・着地できない。

    落下→待機のリンクが正しく「衝突可能なものと接触」「下方向」になっているかチェックしてください。

Part5: 敵をツクろう!

さて、アニメーションではせっかく敵を攻撃できるようにしたのに肝心の敵がいません、作成して攻撃を試してみましょう。

Part5-1: テンプレートから敵を読み込もう

0から作ると大変なので、今回はテンプレートを使って省略します。

  1. 左のオブジェクトリストで「+新規オブジェクト」をクリックします。
  2. オブジェクト名に「エネミー」と入れ、オブジェクトグループをEnemy、コリジョンの役割を標準エネミーと設定し、歩く敵(サイドビュー)を選択し、「作成」ボタンを押します。
  3. カニのような敵が読み込まれます。これは、テンプレートの説明にもあった通り、左右に動き、hpが0になったら消えるというシンプルな敵オブジェクトです。上部の保存ボタンかCtrl+Sショートカットキーで保存しましょう。

Part5-2: エネミーのテンプレートを調整しよう!

このままでも敵として動作はしますが、ジャンプで踏みつけた際にプレイヤーまでダメージが入ってしまいます。敵が消えるまで少し時間があり、敵の攻撃範囲にプレイヤーが入ってしまうからです。
踏みつけたらプレイヤーを跳ね上げてダメージが入らないように調整する必要があります。

  1. まずは攻撃判定が大きすぎるので調整します。左のリストで攻撃判定(AttackCollision)を選択し赤いプレビュー画面の赤い攻撃判定の大きさを下方向に縮めて半分くらいにしましょう。これで、踏みつけ攻撃と同時にプレイヤーにダメージがはいることが避けられるはずです。

  2. 続いて、跳ね上げを作ります。ヴィジュアルスクリプトを編集ボタンを押します。

  3. WalkとDeadのステートがありますので、近くに新しく「ステートを追加」しましょう。

  4. タイトルをダメージとます。アニメーションは割り当てるものがないので、「遷移前のアニメーションを維持」にチェックしましょう。これで遷移前のアニメがそのまま継続するようになります。

  5. プレイヤーを跳ね上げる処理を作ります、「+実行アクションの追加」をクリックします。

  6. オブジェクト操作>オブジェクトの速度を設定を選択し、
    「Y速度の操作」を設定
    「ベロシティ」をy:-300
    「移動対象の種類」を最後に接触したオブジェクト と設定しましょう。
    これで、最後に攻撃判定や壁判定が接触したオブジェクトを上方向に秒間300pxの勢いで跳ね上げる、という動作になります。

  7. リンクを繋いでいきます。walkステートを右クリックして「リンクを追加」し、ダメージステートにつなぎましょう。

  8. 「+その他条件の追加」をクリックします。

  9. オブジェクト操作>オブジェクトの攻撃判定に接触を選択し、
    接触方向:上
    種類:オブジェクトグループ
    対象となるオブジェクトグループ:プレイヤー と設定します。
    これで、上から踏みつけられたときにダメージステートに遷移するようになりました。

  10. 最後に、Walk→Deadのリンクを貼り直します。選択して右クリックして、「切り取り」を選びましょう。(Ctrl+Xのショートカットも使えます。)

  11. リンクが切り取られるので、「ダメージ」ステートを選択して右クリックし、「リンクをペースト」をクリックします。

  12. リンク作成時と同じような線がでるので、ダメージからdeadにつなぎます。これで、「hpが0になった」時にダメージからdeadに遷移するようになりました。

Part5-3: ステージにエネミーを配置しよう!

ステージにエネミーを配置します。

  1. 「マップ」ビューに移動します。

  2. 左のシーン一覧ドックのタブを「オブジェクト(青とオレンジの立方体のアイコン)」に切り替えます。

  3. 「エネミー」をステージ内の好きなところにドラッグ&ドロップします。その際、レイヤーは「ベースレイヤー」に配置しましょう。

  4. 画像のようにベースレイヤーの下にエネミーがあれば大丈夫です。

Part5-4: デバッグ表示を有効化してテストプレイしよう!

このままテストプレイをすることもできますが、正しく設定できているかをチェックするためにもコリジョンのデバッグ表示を有効化してからテストしましょう。

  1. 左上のメニューから、デバッグメニューを開き、「コリジョン形状を表示」のチェックボックスを有効にしましょう。

  2. 右上の「:play_button:」かF5キーを押します。テストプレイを開始すると、以下の画像のように、壁判定、攻撃判定、当たり判定などが可視化された状態でテストプレイが始まります。

  3. 正しく設定できていれば、プレイヤーがジャンプで敵を踏みつけると、プレイヤーは少し跳ね上げられつつ、敵は倒れるはずです。

うまくいかないときのチェック項目

・ふみつけても跳ね上げられない

まずは、ジャンプ中にプレイヤーの足元に赤い攻撃ボックスが表示されているか見ましょう。されていない場合はPart3-4: ジャンプ/落下中だけ攻撃を有効にできるようにしよう。をチェックしてください。 チュートリアル: ツクールモードでジャンプアクションをツクろう! - Moonling の #2

表示されているのに跳ね上げられない場合は、ヴィジュアルスクリプトがうまく設定できていません、Walk→ダメージへのリンクの設定が正しいか、ダメージステートの中身の設定が正しいか再チェックしましょう。

・ふみつけたら跳ね上げられるが、敵が倒れない

ダメージ→Deadのリンクの設定が正しいかチェックしましょう。正しくは、「HPが0になった」の条件が設定されているはずです。

Part6: ステージを拡張しよう!

さて、これでプレイヤーと敵ができましたが、ステージがこの1画面だけでは手狭です。
ステージを拡張していきましょう。

Part6-1: カメラがプレイヤーを追いかけるようにしよう!

まず、カメラがプレイヤーに追従するようにすることでより広い範囲を動けるようにします。

  1. オブジェクトビューに戻り、オブジェクト一覧のプレイヤーをダブルクリックで開き、
    プレビューを選択してください。
  2. 「+設定を追加」ボタンをクリックしてください。これはオブジェクトに機能を持ったノードを追加するためのボタンです。
  3. 設定を追加というウィンドウが出るので、ターゲットと方向にある「カメラターゲット」を選択して追加しましょう。このノードは説明の通り、カメラの追従対象を設定するためのノードです。
  4. 自動でカメラターゲットノードが選択された状態で追加されます。右側のインスペクターウィンドウの「ターゲットID」に「Player」と入力してください。※Pは大文字です
  5. オブジェクトの設定は完了したので、マップ側の設定をします、マップビューに切り替えて、マップレイヤーにある「初期カメラ」ノードを選択してください。
  6. 選択したら右側のインスペクターを見てください。「ターゲットID」というものの中に「Player」と記載があるはずです。もしなければ記載を書き換えて「Player」としてください。これで、「Player」というターゲットIDが書かれた「カメラターゲット」ノードを持つオブジェクトをカメラが追従する、という設定になりました。
  7. 右上の[:play_button:]かF5ショートカットキーでテストプレイをしてみましょう。カメラの中心がプレイヤーになっているはずです。
うまくいかないときは

プレイヤーにカメラターゲットノードがあり、正しくターゲットIDとして「Player」と記載されているか。
初期カメラノードのターゲットIDが「Player」になっているか。
を確認してください。

  1. ジャンプアクションでプレイヤーがど真ん中だと見える範囲が狭いので調整しましょう。「初期カメラ」ノードのインスペクターを見てください。「オフセット」という項目があるのでy:-20と入力します。これで、カメラの中心がターゲットから20ピクセル上になります。
  2. 再度右上の[:play_button:]かF5ショートカットキーでテストプレイをしてみましょう。カメラがプレイヤーより少し上になり、見えやすくなったはずです。

Part6-2: ステージを広げよう!

タイルを塗ってマップを広げてみましょう。

  1. ベースレイヤーを選択します。
  2. そのままプレビュー画面にタイルを塗っていきましょう。足場や新しい浮島などをつくっていきます。
  3. 配置できたらテストプレイを行います、それぞれの足場にジャンプが届くかチェックしていきましょう。足場から落下してしまったときは、[F5]キーを押せば再スタートすることができます。なお、タイルの削除は右クリックのドラッグで行えます。
  4. 敵を追加しましょう。マップ一覧ドックのタブを「オブジェクト」に切り替えます。
  5. 今回のゲームのクリア条件はエネミーを5体倒すことでした、1体はすでに配置しているので、エネミーを4体追加してみましょう。オブジェクト一覧ドックのエネミーをドラッグ&ドロップで配置していきます。ベースレイヤーの下にエネミー5まで配置できれば完成です。
  6. 念の為、テストプレイをして正常に動くかはチェックしておきましょう。

6.ステージも広くなり、操作キャラの移動速度を調整したくなる場合は
「オブジェクト」ビューからプレイヤーをダブルクリック、
「移動とジャンプ」を選択します

画面右で
image
移動とジャンプの設定項目が並んでいますので下へスクロールし
[左右の移動量]や[ジャンプの初速]などを調整しましょう

Part6-3: 背景を設定してみよう!

背景が灰色では物寂しいので、背景をつけていきましょう。

  1. まずは画像を取り込みます、「素材管理」ビューに移動して「公式素材をインポート」ボタンをおしましょう。
  2. 「背景」というセットがあるのでチェックをいれてインポートします。
  3. 読み込めたら「マップ」ビューに戻り、左上のマップ一覧ドックを「画像」に切り替えます。B_001_plain_01,02,03等の画像が増えているはずです、これが先程取り込んだ背景用画像です。
  4. マップレイヤーで、「遠景」レイヤーの子にある「スプライト2D」を選択してください。スプライト2Dは画像を表示するためのノードなのですが、何も表示されていません。インスペクターを確認すると、テクスチャという項目が空になっています。テクスチャとは表示用の画像のことで、画像が指定されていませんよ、という意味です。画像を指定しましょう。テクスチャ<空>の右側にあるフォルダアイコン(クイックロード)をクリックしてください。
  5. テクスチャー用の画像を選ぶウィンドウがでるので、設定します、今回は遠景用の画像なので、B_001_plain…となっている、青空の画像を選択しましょう。
  6. テクスチャ項目が青空の画像になり、プレビュー画面に青空が現れました。
もし選択する画像を間違えたら

テクスチャ項目に現れたグルグル矢印のボタンを押せばテクスチャを<空>に戻すことができます。


また、Ctrl+Zのショートカットキーで1つ前の状態に戻ることもできます。

  1. 続いて、中景を設定します。中景の子にあるスプライト2Dを選択し、インスペクターのテクスチャ項目でクイックロードします。中景はちょっと遠い画像なので遠くの山の画像にします、名前が途中で切れていてややこしいですが、B_001_plain…となっている山の画像を選択しましょう。

    ※右下のボタンでリスト表示↔グリッド表示を切り替える事でも確認が可能です。


8. 最後に近景を設定します。同じ手順で、近景は近くの画像なので草原にしましょう、B_001_plain…となっている草原の画像を選択しましょう。

9. さて、画像が設定できましたが草原の位置が高すぎてせっかくの山地や青空を隠してしまっています、オフセットで画像を動かして調整しましょう。

10. 近景のスプライト2Dのインスペクターを見てください「オフセット」の項目があるので展開し、オフセットをy=360にします、これで草原が下に下がりました。

11. 山地は見えるようになりましたが、青空の雲が隠れています、青空の位置をあげましょう。遠景のスプライト2Dのオフセットをy=マイナス360に設定しましょう。

12. いい感じになったのでテストプレイをしてみましょう・・・すると・・・背景が途切れて灰色が見えてしまっています。次は背景がループをするようにします。

なぜ、エディター上はきれいに重なっているのにズレているの?

アクションゲームツクールのマップでは、デフォルトで背景のノードに「視差背景(Parallax)」の機能をつけています。カメラの動きに応じて背景の動く速度を変えることで、立体的な背景を見せる機能です。
移動やジャンプをすれば、手前のレイヤーである近景は早く動き、奥のレイヤーである遠景は遅く動くことで立体的に動いていることがわかるはずです。
この視差を実現するためにカメラの位置によって自動で背景がずれて表示されます。

  1. 今度は、スプライト2Dではなく「遠景」レイヤー自体を選択します。

  2. インスペクターを見てください、「繰り返し」という項目があるので展開をすると、「繰り返しのサイズ」「繰り返し回数」があるので、それぞれx=720、回数5回と設定しましょう。これで、幅720(=設定したB_001_plain…画像の横幅サイズ)で常に同じ5枚の画像が展開されるようになります。

繰り返し回数について

繰り返し回数は、一度にゲーム内部で表示をする回数、というだけなのでこの設定回数にかかわらず、画像は無限にリピートで表示されます。

  1. 「中景」レイヤー、「近景レイヤー」でも同じく「繰り返しのサイズ」「繰り返し回数」があるので、それぞれx=720、回数5回と設定しましょう。隙間無く背景が表示されるようになるはずです。

16.登録した各スプライト2Dのサムネイルをクリックする事で


画像のサイズが表示されます
自作素材などのサイズを確認する際に利用できます。

Part7: 「やられ」をツクろう!

ここまででだいぶゲームらしくはなりましたが、まだクリアもなければ、やられもなくゲームとしては不十分ですので、仕上げていきます。

Part7-1: ダメージを受けた際の「やられ」をツクろう!

敵にあたってしまったときや、ステージから落下してしまったときに自動でゲームをやりなおすようにしましょう。まずは敵にあたってしまったときからです。

  1. 「オブジェクト」ビューに移動し、プレイヤーの「ヴィジュアルスクリプトを編集」ボタンを押します。
  2. さて、プレイヤーのhpは初期値として1を設定しています、なので、「やられ」への遷移条件としては「hpが0になった」が利用できます。しかし、「やられ」への遷移は、移動、ジャンプ、待機、落下、どのステートからも発生する可能性があるものです。こういったときには、「AnyState」が利用できます。「Any(すべての)State(ステート)」の名前の通り、ここからリンクを繋げば、どのステートであっても、条件を満たせば遷移するようになります。
  3. 「AnyState」の横に新しいステートを追加し、「やられ」と名付け、「+実行アクションを追加」します。
  4. ゲーム設定にある、「ゲームをリセット」を選んで追加しましょう。
  5. 続けて、「AnyState」を右クリックしてリンクを追加し、やられステートにつなぎます。
  6. 「+その他条件の追加」ボタンをクリックして、「変数」にある「HPが0になった」を追加しましょう。
  7. これで、どのステートであっても、「HPが0になった」ら、やられに遷移してゲームがリセットされるようになるはずです、「:play_button:」かF5キーでテストプレイをして、敵にぶつかってみましょう。
うまくいかないときは

・リセットされない。
AnyStateからやられのリンクと、やられのステートの実行アクションに間違いがないかもう一度チェックしてみましょう。
・敵を踏みつけてもリセットされてしまう。
敵の攻撃範囲が大きすぎる可能性があります、Part5-2をみて調整しましょう。
チュートリアル: ツクールモードでジャンプアクションをツクろう! - #4

Part7-2: 落下での「やられ」をツクろう!

こちらは少し複雑ですが、「カメラの移動範囲を制限」し、プレイヤーが「カメラの範囲外になったとき」に「やられ」に遷移する、ということで実現できます。まずはカメラを設定します。

  1. 「マップ」ビューにもどり、マップレイヤーで「初期カメラ」を選択してください。
  2. インスペクターで、制限値を展開し、「下」の値を300に変更します。すると、プレビュー画面上に黄緑色の横線が表示されるはずです、これがカメラが移動できる範囲になります。もし、黄緑色の線より下にあなたのつくった足場があるのであれば、「下」の値を500,1000と大きくして調整してください。
  3. [:play_button:]かF5でテストプレイをしてみてください、カメラは左右や上にはこれまで通り追従しますが、落下すると追従しないはずです。
  4. 確認できたら再び「オブジェクト」ビューに戻り、プレイヤーの「ヴィジュアルスクリプトを編集」ボタンを押します。
  5. 「AnyState」→「やられ」のリンクをクリックしてください。
  6. 遷移条件は、複数設定することができます、元々設定していた「HPが0になった」、もしくは「カメラの範囲外になった」 で遷移するようにしましょう、「+その他の条件を追加」をクリックします。
  7. その他にある、「カメラの範囲外になった」を選択し、データタイプ:自分自身、前の条件との論理条件:ORと設定して追加します。
  8. これで、「自身のHPが0になった」OR「自身がカメラの範囲外になった」で「やられ状態となりゲームがリセット」されるようになったはずです、テストプレイをして、足場から落ちてみましょう。うまく設定できていれば、落下したらリセットされるはずです。

    [OR]アイコンをクリックする事で[AND]と切り替えが可能です。
    image
うまくいかないときは

落下してもカメラがずっと追従する:マップの初期カメラの下制限値が正しく設定できているか見直しましょう。
落下してもリセットされないし、敵にあたってもリセットされなくなった:論理条件が「OR(もしくは)」に正しく設定されているかチェックしましょう、「AND(かつ)」だと、HPが0の状態で落下した場合のみリセットされるようになってしまいます。

Part8: 「クリア」をツクろう!

クリアの条件は、冒頭で5匹の敵を倒すこと、と設定しましたがどのように実現するのでしょうか。それは「変数」というものを使います。
「敵の数」という変数を作成し、初期値を0とします、その後、エネミーがやられる度に、その値を1ずつ増やしていきます。5匹倒すと、値は5になるはずなので変数「敵の数」が「5」になったら「クリア」になると設定すればよさそうです。

Part8-1: 「プロジェクト変数」「敵の数」をツクろう!

  1. ヴィジュアルスクリプト画面の上部にある「変数・スイッチを設定」ボタンをクリックします。
  2. 新しいウィンドウが開くので、タブを「プロジェクト変数」に切り替えます。変数には各オブジェクトがそれぞれ持つ「変数」(HPや攻撃力など)とプロジェクトが共通で持つ「プロジェクト変数」の2種類があります。今回の「敵の数」は、オブジェクトが持つ変数よりはプロジェクト変数の方が適切でしょう。
  3. ウィンドウ左下にある「+追加」ボタンを押します。
  4. 「プロジェクト変数001」というのが出現するので、右上の入力欄で「敵の数」と名前を変えましょう。*ここで「変数001」と表示された際はタブが違っていますので、「プロジェクト変数」に変えましょう。
  5. タブがプロジェクト変数であること、名前が「敵の数」になったことを確認したら設定完了を押します。

Part8-2: 「敵の数」をゲーム画面で確認できるようにUIをツクろう!

プロジェクト変数「敵の数」ですが、このままではゲーム内で知る手段が一切ありません、ゲーム画面で確認できるUIをつくりましょう。
UIの作成は、各マップにある「UI」レイヤーで行います。このレイヤーに配置されたものは、カメラの位置によらず、画面内の同じ位置に常に表示され続けます。

  1. 「マップ」ビューに切り替え、マップレイヤーの「UI」の横にある+ボタンを押します。
  2. 何を追加するのか選択するメニューが出るので、「ラベル」を選択しましょう。
  3. ラベルのインスペクターのテキスト欄に、まずは
    敵の数:
    と記述します。
  4. 続けて、テキスト欄の上にある「値を差し込む」ボタンを押しましょう。値を差し込むというウィンドウがでるので、名前欄にある「プレイ人数」のリストを開き、「敵の数」に変えましょう。
  5. 設定して、以下の画像のようになっていれば「挿入」ボタンを押します。
  6. これで、敵の数が表示されるようになりましたが文字サイズが小さいので大きくします。テキスト欄の下にある「ラベル設定」の「<空>」をクリックして、「LabelSettings」を追加します。
  7. 「<空>」が「LabelSettings」になるのでもう一度選択して展開します。
  8. フォントを展開し、サイズを64 pxにしましょう、これで確認しやすいサイズになりました。
  9. テストプレイを行います、画面の左上に「敵の数:0」と表示されていれば成功です。「project.敵の数」などが表示されていたら挿入時に誤りがあるので、もう一度値を挿入し直しましょう。

    ※ポイント
    UIで使用している画面は水色の枠になります(カメラサイズの影響を受けてません

Part8-3:「エネミー」が倒されたら「敵の数」を増やすようにしよう。

敵の数は表示できるようになりましたが、数値を変化させる手段がありません。
「エネミー」が倒されたときに、プロジェクト変数「敵の数」を1増やすようにしよう。

  1. オブジェクトビューに戻り、エネミーをダブルクリックで開きます。
  2. 「ヴィジュアルスクリプトを編集」ボタンを押します
  3. 「エネミー」のやられ処理をしている「dead」ステートを選択します。既に4つのアクションが設定されていますが、1つ追加しましょう。「+実行アクションの追加」ボタンを押します。
  4. スイッチ/変数にある、「プロパティを変更」を選択します。このアクションは、様々な数値を変更することができるアクションです。右欄でまずは対象を設定します、
    対象オブジェクトの種類: プロジェクトデータベース
    データベースの種類: プロジェクトの変数
    レコード名: 敵の数
    と設定します。これで、対象を敵の数とできました。
  5. 続けて、敵の数の値をどう変更するのかという指定をします。演算子、代入元を展開し、
    計算式:+=
    定数値: 1.0
    と入力して「追加」しましょう。
  6. さて、これで[dead]ステートで、プロジェクト変数「敵の数」を+=1するようになりました・・・が、実は現状だと動作しません。なぜでしょうか?
    実行アクションを見てください、複数の実行アクションがある場合、上から順に実行されるのですが、追加した「プロパティを変更(データベース|敵の~~~)」は4にあり、3には「自身を消滅」があります。つまり、敵の数を変更する前に消滅し、処理が中断されてしまいます。並び替えが必要です。
  7. 4「プロパティを変更(データベース|敵の~~~)」に左にある[三]のようなボタンをクリックして、上にドラッグして「プロパティ|disable~~」の次に移動しましょう。1「プロパティを変更(データベース|敵の~~~)」となっていればOKです。
  8. テストプレイをしてみましょう、敵を踏みつけて倒した時に左上の「敵の数」が1になっていれば成功です。
数がかわらないときは

順番が正しく1になっているか、クリックして展開したときに設定が以下と一致しているかチェックしてください。

Part8-4: 「クリア」をツクろう!

さて、これでプロジェクト変数「敵の数」が敵を倒すことで増えていくようになりましたが、5になったとき際に、「クリア」となるようにする必要があります。
今回は、プレイヤーオブジェクトから「CLEAR!」というテキストを表示するようにしましょう。

  1. オブジェクトビューに戻り、オブジェクトをプレイヤーに切り替え(ダブルクリック)、ヴィジュアルスクリプトを編集を開きます。
  2. クリア状態もいつ起きるかわからないので、AnyStateからリンクさせます、AnyStateの近くに新しいステートを作成し、「クリア」と名付けましょう。
  3. 「+実行アクションの追加」し下の方にある、テキストグループの「テキストを表示」を選択します。そして、本文に「CLEAR!」と入力しましょう。
  4. 最上部に「プレビュー」というボタンがあるのでクリックしましょう。「プレビュー」では実際の表示をみながら位置やサイズを調整できます。
  5. フォントサイズが12のままだと小さいので、64に変更しましょう。
    その後、ハンドルを動かして位置を微調整します。大体以下の位置くらいにできれば閉じましょう。
  6. テキストを表示アクションの調整をします。右欄を少し下にスクロールすると、永続化というチェックボックスがあるので、
    永続化:オン
    と設定しましょう。テキストを表示アクションはデフォルトで一定時間表示後消えるという設定になっていますが、永続化をオンにすることで消えなくなります。オンにしたら「追加」を押しましょう。
  7. これで、「テキストを表示」アクションが設定できたので、AnyStateを右クリックして「リンクを追加」し、クリアにつなぎます。
  8. 「+その他条件の追加」をクリックします。変数を条件に遷移させるには、変数グループの「変数・スイッチが変化した」を使います。
    変数タイプ: 変数
    データタイプ: プロジェクトの変数
    と指定しましょう、すると、監視するプロジェクト変数・スイッチという欄が出るので、その右辺にある「設定…」ボタンを押します。
  9. 変数・スイッチの指定というウィンドウが出るので、「敵の数」を選んで「OK」します。これで変数の指定は完了したので、次は条件の計算式を設定します。
  10. 変数演算子: >=
    比較対象定数: 5.0
    と設定します。これで、プロジェクト変数「敵の数」が5以上のとき、という条件を作ることがでたので、「追加」しましょう。
  11. これで準備ができたはずなので、テストプレイを行います。さあ、あとは敵を5匹倒してクリアがでるかチェック・・・は大変なので、デバッグ機能を使いましょう。左上のメニューにある「デバッグ」をクリックして、サブメニューにある「アクツクデバッグモニターを起動」をクリックします。
  12. 以下のような画面がでますが、テストプレイを始めるまで何も表示されていません、早速テストプレイを起動しましょう。
  13. 表示がかわり、プレイヤーやエネミーなどのオブジェクト情報が出るようになりますが、「敵の数」はプロジェクト変数なので、「プロジェクト変数」タブに切り替えましょう。
  14. 下の方にスクロールすると、プロジェクト変数「敵の数」があるので、「値」列の0.0をクリックして、5.0に書き換えましょう
  15. 画面内の敵の数表示が5になり、「CLEAR!」と表示されていればうまく設定できています、「敵を5匹踏んで倒したらクリア」のゲームが作成できました!

※Tips
アクションの再編集は[鉛筆アイコン]で再開できます

うまく動かないときは

・プロジェクト変数「敵の数」は画面内に5と表示されているが、CLEAR!がでない。
まず、アクツクデバッグモニターでタブをオブジェクトに切り替え、オブジェクト「プレイヤー」をクリックして、ステート>本流レイヤーの部分をチェックしてください。これは、現在のプレイヤーのステートを示しています。


・本流レイヤーがクリアになっていたら・・・
遷移は成功しているので、「クリア」ステートの挙動がおかしいようです、チェックしてみましょう。
・本流レイヤーがクリアではなかったら・・・
「クリア」ステートへの遷移がうまくいってないようです、「AnyState」から「クリア」へのリンクをチェックしてみましょう。

Part9: ゲームに「演出」をつけて仕上げよう!

さて、これでゲームのシステムができましたが、音もなく、エフェクトもないため少々地味に感じます。
最後に、音とエフェクトをつけてゲームとして仕上げていきましょう、まずは音からです。

Part9-1: ゲームに「音」をつけよう!

ステージのBGM, ジャンプの音, 敵が踏まれた時の音, クリアの音の4種類があれば良さそうです、早速つけていきましょう、まずは素材の読み込みからです。

  1. 素材管理ビューにいき、「公式素材をインポート」ボタンを押します。
  2. タブを「サウンド」に切り替え、以下の4種類を選択して「インポート」します。
    bgm>Battle_pop1
    se>移動・行動>Jump1
    se>攻撃・武器>Blow1
    se>進行・結果>Stageclear1
  3. 読み込んだ素材をサウンドデータベースに登録しますか?ウィンドウがでるため「はい」を押します。これで素材登録は完了です。
間違えてサウンドデータベースへの登録をせず閉じた時は・・・
  1. メニューバーでデータベースボタンを押します。
  2. データ管理ウィンドウが現れるので、「サウンドデータベース」タブに切り替え、「一括登録」ボタンをおしてください。
  1. 続けて、それぞれの音を設定していきます、まずマップのBGMを設定しましょう、マップビューに切り替えて、マップレイヤー最上段の「マップ設定」を選択してください。

  2. インスペクターのBGMの設定を展開し、
    サウンドデータ: Battle_pop1
    ループ: オン
    と設定しましょう、これでステージにBGMが設定されたので、試しにテストプレイでチェックしておきましょう。

  3. 続いて、プレイヤーにクリア音とジャンプ音を設定します。こちらはヴィジュアルスクリプトのアクションを使うので、オブジェクトビューに切り替えてプレイヤーのヴィジュアルスクリプトを開きましょう。

  4. 「ジャンプ」のステートを選択し、「+実行アクションの追加」します。

  5. 動画/サウンドグループにある「音を再生」を選択し、サウンドデータ:Jump1を選択して「追加」します。

  6. 同様の動作で、「クリア」ステートに「音を再生」サウンドデータ:Stageclear1を選択して「追加」しましょう。追加したらテストプレイで再生されるかテストをしておきましょう。

  7. 最後に敵に音を追加します。オブジェクトビューに戻り、「エネミー」のヴィジュアルスクリプトを開きましょう。

  8. 「dead」ステートを選択し、「+実行アクションの追加」をします。

  9. 「音を再生」サウンドデータ:Blow1で追加しましょう。

  10. 追加できました・・・が、番号は5となっており音の再生が消滅後になるため実行されません、並び替えましょう。

  11. ドラッグで「音を再生」の位置を「データベース|敵の~~」の後ろ、2にしましょう。

Part9-2: 「エフェクト」「パーティクル」の演出で仕上げよう!

さて、これで音の設定ができたので、最後に「エフェクト」「パーティクル」という機能で演出をいれて仕上げましょう。
敵を倒したときのエフェクトと、クリアしたときのパーティクルを設定すれば良い演出になりそうです。

  1. まずはエフェクトとパーティクルを公式素材から取り込みます、素材管理ビューに移動し、「公式素材をインポート」しましょう。

    2.タブを「エフェクト/パーティクル」に切り替え、以下の2素材を選択して「インポート」しましょう。
    エフェクト>E_002_attack_00
    パーティクル>P_011_fire_works
  2. インポートできたら、「オブジェクト」ビューに戻り、「プレイヤー」のヴィジュアルスクリプトを開きましょう。
  3. 「クリア」ステートを開き、「+実行アクションの追加」をします。
  4. パーティクル>パーティクルを表示を選択し、パーティクルオブジェクトパスの「一覧」ボタンをクリックします。
  5. 先ほど追加したfire_worksパーティクルがあるので選択して「決定」します。
  6. 続いて、「プレビュー」ボタンを押しましょう。
  7. 「プレビュー」画面内のオレンジの十字をドラッグでプレイヤーの少し上あたりに動かしましょう。動かす度に花火が発生するので、それを見ながら微調整し、下の画像あたりの位置におけたら「閉じる」をおしましょう。
  8. 「追加」を押して追加できれば完成です。これで、クリア時に花火が出るようになりました。
  9. 続いて、「エネミー」のヴィジュアルスクリプトを開きます。
  10. 「dead」ステートで「+実行アクションの追加」をしましょう。
  11. 今度は、エフェクト>エフェクトを表示を選択し、エフェクトオブジェクトパスを指定の「一覧」ボタンを押します。
  12. E_002_attackを選択して「決定」します。
  13. エフェクトもパーティクル同様「プレビュー」で調整できます、プレビューボタンを押して確認しましょう。どうやら、変更しなくてもちょうど良い位置にみえるのでそのまま閉じて「追加」ましょう。
  14. 「エフェクトを表示」が6番に追加されますが、これまでと同じく消滅の後ろなのでドラッグで並び替えましょう。
  15. 「音を再生」の下の3番になるようにドラッグで並び替えます。

Part9-3: ゲームを通しでプレイしてみよう!

これでゲームとしての一通りの設定ができたはずです、通しでプレイをしてみましょう。

Part10: ゲームをWindows用に出力してみよう!

さて、これで基本的なジャンプアクションゲームができたはずですが、このままではアクツクを持っている人しか遊べません、持っていない人でも遊べるように、Windows形式で出力してみましょう。

  1. 左上のメニューの「プロジェクト」から「エクスポート…」を選択しましょう。

  2. エクスポートウィンドウが開くので、こちらのメニューの「追加…」で「Windows Desktop」を選択します。

  3. 右側のエクスポート先のパス欄の右側にあるファイルアイコンをクリックします。

  4. ファイルを保存ウィンドウが開きます。ここでは、どの場所に、どのような名前で制作したゲームを出力するかを選択することができます。デフォルトで開かれている場所は、このプロジェクト自体のフォルダなので、別のフォルダに変更しましょう。
    例えばマイドキュメントに「ジャンプアクションチュートリアル」フォルダを作るなどがおすすめです。

なぜ、プロジェクトフォルダ内に出力するとダメなのか?

プロジェクトのフォルダ内は、プロジェクト起動時やゲーム起動時に読み込みが行われます。つまり、この中のエクスポートファイルがあると余計な読み込みが発生し、重くなったり、不具合が起きたりする原因となります。
大きな問題となることは少ないですが、念の為避けておいた方がよいでしょう。

  1. 保存先のフォルダを決めれば、その中でファイル名に「ジャンプアクションチュートリアル.exe」と入力して保存しましょう。(.exeまで記載が必要です。)
  2. パスを指定すると、先程までグレーアウトしていた左下のボタン「すべてエクスポート」が選択できるようになるのでクリックしましょう。
  3. エクスポートモードを選ぶウィンドウがでるので、「リリース」を選択します。
  4. 保存バーが少しの間出て自動で閉じれば完成です。保存したフォルダをWindowsで開いてみましょう。ジャンプアクションチュートリアル.exeと.pckの2種類があるはずです。.exeが本体、.pckはデータ集で、2つで一つになっています、もし誰かに配布する際には2つを合わせて送りましょう。
    image
  5. .exeファイルを起動してみましょう、テストプレイで行ったように、ゲームが立ち上がって遊ぶことができます、これであなたのゲームはひとまず完成です!おめでとうございます!

おわりに

チュートリアルはいかがでしたか?
少し難しかったとおもいますが、これであなたはアクションゲームツクールの基本的な操作、
マップの作り方、オブジェクトの作り方、ヴィジュアルスクリプトの作り方を学ぶことができました。

とはいえ、

  • タイトル画面ってどうやってつくるの?
  • よくあるあのギミックはどうやってつくるの?
  • トップビューのゲームはどうやってつくるの?
    といった疑問がまだまだあるでしょう。

これらを解説する発展チュートリアルを用意しているので、そちらもご覧ください。

他のチュートリアルへは目次から!