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

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になった」の条件が設定されているはずです。