Unityゲームの作り方メモコインプッシャー

【Unity3D】コインプッシャーゲームの作り方④~押し出しバーのアニメーション設定方法

Unity

1.はじめに

この記事では、Unityを使ってコインプッシャーゲームの押し出しバーにアニメーションを設定し、実際に動く仕組みを作る方法を解説します。Unity初心者の方でも安心して進められるよう、丁寧にステップを追って説明していきますのでご安心ください!

バーの動きをプログラミングするのではなく、アニメーションツールを活用することで、視覚的に動きを作成します。また、バーの上に乗ったコインがバーと一緒に動くようにする設定方法も解説します。



2.バーのアニメーションを作成する

コインプッシャーゲームの肝となる「押し出しバー」に、アニメーションを設定してみましょう。このセクションでは、Unityのアニメーションウィンドウを使って、バーの動きを作成する方法を詳しく説明します。


1. 空のゲームオブジェクトを作成する

まず、バーのアニメーションを管理するために空のゲームオブジェクトを作成します。

  1. ヒエラルキーウィンドウで右クリックし、メニューから「Create Empty」を選択します。
  2. 作成した空のオブジェクトの名前を「BarAnimation」に変更します。
  3. Inspectorウィンドウで「Transform」の位置がリセットされていることを確認してください。
    • ポジション (Position): (0, 0, 0)
    • ローテーション (Rotation): (0, 0, 0)
    • スケール (Scale): (1, 1, 1)

2. ヒエラルキーを整理する

次に、既存の「Bar」オブジェクトを「BarAnimation」の子オブジェクトに設定します。

  1. ヒエラルキーウィンドウで「Bar」オブジェクトをドラッグして、「BarAnimation」の上にドロップします。
  2. これで「Bar」オブジェクトが「BarAnimation」の子オブジェクトになり、アニメーション設定がスムーズに行えます。

3. アニメーションウィンドウを開く

アニメーションの作成を始めるため、アニメーションウィンドウを開きます。

  1. Unityの上部メニューから「Window」→「Animation」→「Animation」を選択します。
  2. 画面下部にアニメーションウィンドウが表示されます。
  3. BarAnimation」オブジェクトを選択した状態で、アニメーションウィンドウ内の「Create」ボタンをクリックします。
  4. アニメーションのファイル名を「BarMove」と名付け、適当なフォルダに保存します。

これでアニメーションを設定する準備が整いました。次のセクションでは、バーの動き(前後に移動する動き)をタイムライン上に設定していきます。



3. アニメーションの動きを設定する

押し出しバーの動きは、コインを前に押し出して元の位置に戻る動作を繰り返します。このセクションでは、その動きをアニメーションで設定する方法を解説します。


① アニメーションウィンドウを開く

  1. ヒエラルキーウィンドウで「BarAnimation」オブジェクトを選択します。
  2. Unity上部メニューの「Window」→「Animation」→「Animation」をクリックします。
  3. アニメーションウィンドウが表示されるので、「Create」ボタンを押して新しいアニメーションを作成します。ファイル名は「BarMovement」など、わかりやすい名前にしましょう。

② アニメーションの記録を開始する

  1. アニメーションウィンドウ内の赤い録画ボタンをクリックします。
  2. タイムラインの最初(0秒)にカーソルを移動させ、以下の設定を行います。
    • TransformのPosition(0, 0, -2.5) に設定します。

③ バーを前に動かす動きを設定する

  1. タイムラインを2.5秒の位置に移動します。
  2. PositionのZ軸の値を -5 に変更します。
  3. タイムラインのキーフレームが自動的に設定されます。

④ 元の位置に戻る動きを設定する

  1. タイムラインを5秒の位置に移動します。
  2. Position(0, 0, -2.5) に戻します。
  3. これでバーが元の位置に戻る動きが記録されます。

⑤ アニメーションを保存して確認する

  1. 赤い録画ボタンを再度クリックして、記録を停止します。
  2. アニメーションウィンドウの再生ボタンを押して、バーの動きを確認しましょう。

ポイント

  • タイムライン上のキー(小さな菱形のアイコン)は、各フレームの位置情報を表します。間違えた場合は、該当のキーを選択して削除できます。
  • バーの動きが滑らかでない場合は、アニメーションカーブ(Animation Curve)を調整してみてください。

これで、バーがコインを押し出す基本的なアニメーションが完成しました!次のステップでは、バーの動きにコインを連動させる方法を紹介します。



4. バーの上に乗ったコインが一緒に動くようにする

コインプッシャーゲームでは、バーの上に乗ったコインが自然にバーと一緒に動くことで、ゲームのリアルさが増します。このセクションでは、コインをバーと連動させる簡単な方法を解説します。


1. コインにタグを設定する

まずはコインがバーと連動するための準備として、コインにタグを設定します。

  1. コインのプレファブを開く
    プロジェクトウィンドウでコインのプレファブをダブルクリックして編集画面を開きます。
  2. タグを作成する
    • Inspector画面で「Tag」を探し、ドロップダウンを開いて「Add Tag」を選択します。
    • 「+」ボタンを押して新しいタグを作成し、名前を「Coin」にします。
  3. タグを適用する
    作成した「Coin」タグをコインのプレファブに設定します。

2. スクリプトを作成する

次に、コインがバーと一緒に動くようにスクリプトを作成します。

  1. スクリプトの作成
    プロジェクトウィンドウで右クリックし、「Create」→「C# Script」を選択します。「MoveManager」と名前を付けましょう。
  2. スクリプトの編集
    作成したスクリプトをダブルクリックで開き、以下のコードを入力します:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MoveManager : MonoBehaviour
{
    private void OnTriggerEnter(Collider collider)
    {
        // コインがトリガーに触れたとき、バーの子オブジェクトに設定
        if (collider.gameObject.tag == "Coin")
        {
            collider.gameObject.transform.parent = this.transform;
        }
    }

    private void OnTriggerExit(Collider collider)
    {
        // コインがトリガーから離れたとき、親子関係を解除
        if (collider.gameObject.tag == "Coin")
        {
            collider.gameObject.transform.parent = null;
        }
    }
}
  1. スクリプトを保存
    入力が終わったら、スクリプトを保存します。

3. トリガー用のオブジェクトを作成する

最後に、コインを検知するためのトリガーを設定します。

  1. トリガーオブジェクトの作成
    • ヒエラルキーウィンドウで「Bar」オブジェクトを複製します。
    • 新しいオブジェクトの名前を「BarTrigger」に変更し、「BarAnimation」の子オブジェクトに配置します。
  2. サイズと位置の調整
    • Scale(1, 1, 1) にリセットしてスケールの影響を防ぎます。
    • Positionを (0, 1.2, -2.5) に設定してバーの上に配置します。
    • コライダーのサイズを (10, 1, 5) に設定し、バーより少し大きくなるようにします。
  3. トリガーの有効化
    • Colliderの「Is Trigger」にチェックを入れます。
    • 「Mesh Renderer」コンポーネントを削除して見えない状態にします。
  4. スクリプトのアタッチ
    「BarTrigger」オブジェクトに「MoveManager」スクリプトをアタッチします。

これで、バーの上に乗ったコインがバーと一緒に動くようになりました。
次のセクションでは、作成した設定を実際にテストし、正しく動作しているか確認してみましょう!



5. テストプレイ

これまで設定したアニメーションやスクリプトが正しく動作しているか、テストプレイを行いましょう。以下の手順で確認していきます。


1. ゲームを再生してバーの動きを確認する

  1. Unityのエディター上部にある再生ボタン(▶)をクリックして、ゲームを再生します。
  2. バーが設定したアニメーション通りに「前進してコインを押し出し、元の位置に戻る」動きをしているか確認してください。
    • アニメーションの動きがスムーズでない場合は、アニメーションウィンドウでタイムラインのキーを再調整してください。

2. コインの動きを確認する

  1. バーの上にコインを配置します。
    • ヒエラルキーウィンドウで「Coin」プレファブをドラッグしてバーの上に置きます。
    • コインの位置がバーの動きと連動するか確認してください。
  2. 再生中にコインがバーと一緒に動くかどうかを確認します。
    • コインがバーに追随して動かない場合、以下の項目を確認してください:
      • コインに「Coin」タグが設定されているか
      • 「BarTrigger」オブジェクトに「MoveManager」スクリプトがアタッチされているか
      • 「BarTrigger」のコライダーが「Is Trigger」にチェックされているか

3. バグや調整ポイントをチェック

  • コインが動かない場合
    コインのタグやスクリプトを確認してください。また、バーのコライダーやトリガー設定が正しい位置にあるか確認します。
  • アニメーションの動きがおかしい場合
    アニメーションウィンドウでバーの位置データ(Position)が正確に設定されているか再確認しましょう。
  • コインがバーから落ちない場合
    コインの物理挙動(Rigidbody)が正しく設定されているか確認します。「Use Gravity」にチェックが入っていることを確認してください。

4. ゲームの改良アイデア

テストプレイを行いながら、以下のような改良点を考えるのもおすすめです。

  • バーの動きに速度やリズムをつけてゲームの難易度を調整する。
  • コインの動きをよりリアルにするため、コリジョンや摩擦の設定を調整する。
  • ゲーム内のフィードバック(音やエフェクト)を追加して、プレイヤーの体験を向上させる。



よくある質問(FAQ)

Q
アニメーションが再生されません。どうすればよいですか?
A

アニメーションが再生されない場合は、以下のポイントを確認してください:

  • Animator コンポーネントが正しく設定されているか確認してください。「BarAnimation」オブジェクトにAnimatorがアタッチされている必要があります。
  • アニメーションファイルが正しくAnimatorに割り当てられているかを確認してください。Animatorウィンドウで「Controller」にアニメーションファイルが設定されているか確認しましょう。
  • 再生ボタンを押した際に、アニメーションが停止している場合は「Loop Time」がオフになっている可能性があります。Animationウィンドウで「Loop Time」をオンにしてください。
Q
コインがバーと連動して動きません。どうすればいいですか?
A

この問題は以下の原因が考えられます:

  • コインのタグ設定を確認してください。コインプレハブに「Coin」というタグが正しく設定されているか確認してください。
  • コライダーの設定を確認してください。バーにアタッチしたトリガー用オブジェクトのコライダーに「Is Trigger」のチェックが入っていることを確認してください。
  • スクリプトの設定を確認してください。「MoveManager」スクリプトがトリガー用オブジェクトに正しくアタッチされているか、スクリプト内にエラーがないか確認してください。
Q
スクリプトが動作しません。どうしたらよいですか?
A

スクリプトが動作しない場合は、以下をチェックしてください:

  • スクリプト内でエラーが発生していないかを確認してください。Unityのコンソールウィンドウにエラーメッセージが表示されている場合、その内容を修正してください。
  • オブジェクトの親子関係が正しく設定されているか確認してください。「BarAnimation」オブジェクトが「BarTrigger」の親として設定されているかを見直してください。
  • トリガーイベントが発生しているか確認するため、オブジェクト同士が接触しているか確認してください。必要に応じてトリガー用オブジェクトの位置やサイズを調整してください。

おすすめのアセット

「6in1 Monetization Mini Games Bundle」は、6種類のミニゲームを1つのパッケージにまとめたUnityアセットです。これにより、ゲームに報酬システムを導入して収益化を手軽に行うことができます。このバンドルには、スロットマシン、ラッキーホイール、クローゲームなど、ユーザーのエンゲージメントを高め、報酬やアイテムを提供できるゲームが含まれています。