フラッピーバード風ゲームの作り方

Unityで2Dフラッピーバード風ゲームを作る方法その9:プレイヤーのマテリアルを変更しよう

2025年7月23日

かとこう

ども!カトサンラボのかとこうです。

Unityで2Dアクションゲームを作っていると、
プレイヤーがトゲや壁にくっついて
動けなくなる状態になることがあります。

この原因は摩擦力(フリクション)が
働いているからです。

今回はこの現象を改善するために、
プレイヤー用のマテリアルを作成し、
摩擦力を0にする設定方法を解説します!

▼ 動画での解説はこちら(1時間20分25分くらいから)

▶︎ 今回の作業内容

プレイヤーのマテリアルを変更しようの作業まとめ
スポンサーリンク

1. 新しいマテリアルを作成しよう

まずは、プレイヤー専用の「Physics Material 2D」を作成します。

完成図

新しいマテリアルが作成された画像

Physics Material 2Dの作成手順

  1. Projectウィンドウで「Assets」を表示する
  2. プロジェクトウインドウの 「+」ボタン をクリック
  3. メニューから 2D > Physics Material 2D を選択する

これで新しいマテリアルが作成されます。

2. マテリアルに名前をつけて保存しよう

作成されたマテリアルは初期状態で

「New Physics Material 2D」

という名前になっています。

わかりやすくするために名前を

「PlayerPhysicsMaterial2D」

に変更しました。

完成図

新しいマテリアルの名前を変更した画像

3. 摩擦力を「0」に設定しよう

次に、作成したマテリアルの
摩擦力(Friction)を0に設定しましょう。

完成図

Friction(摩擦)を0にした画像

摩擦力を0にする手順

  • 作成したマテリアルをクリックしてインスペクターを表示する
  • 「Friction」の値を 0 に設定する
  • 「Bounciness(跳ね返り)」はそのままでOK

これでプレイヤーにつける

くっつき防止用

のマテリアルが完成しました。

4. プレイヤーにマテリアルを設定しよう

次に、このマテリアルをプレイヤーに設定します。

完成図

プレイヤーのコライダーにマテリアルを設定した画像

プレイヤーへのマテリアル設定手順

  1. Hierarchyウィンドウで プレイヤーオブジェクト を選択する
  2. インスペクターの Box Collider 2D を探す
  3. 「Material」の欄に、先ほど作ったマテリアルをドラッグ&ドロップする

これで、摩擦力0のマテリアルが
プレイヤーに適用されました。

5. テストプレイで確認しよう

シーンビュー上部の「▶(プレイボタン)」を
クリックしてテストプレイをしましょう。

シーンビューの上にあるプレイボタンをクリックした画像
  • トゲにぶつかったあとジャンプしてみる
  • 以前は何回かジャンプしないと離れなかったのが、
     今は一回のジャンプでスムーズに離れるはずです

▶︎ これで「くっつく」問題は解消されました!

まとめ

今回は、プレイヤーがトゲや壁に
くっつく現象を解消する方法として、

  • Physics Material 2D を作成する
  • 摩擦力(Friction)を 0 に設定する
  • プレイヤーに設定する

という手順を行いました。

この設定は、壁ジャンプや
天井にくっつく問題の予防にもなります。

Unityで物理的な挙動を扱う際には、
マテリアルの設定は非常に重要なんですね。

という事で、今回の内容は以上となります。

ここまで読んでいただきありがとうございました!

次回予告:ゲームオーバー処理の実装へ

次のセクションでは、障害物のトゲにプレイヤーが
当たるとゲームオーバーになる処理を実装していきます。

お楽しみに!

▼ 次の記事はこちらから

Unityで2Dフラッピーバード風ゲームを作る方法その10:ゲームオーバーの処理を作成しよう

補足(初心者向け)

Unityでは、物理マテリアルと
見た目のマテリアルがあり、
それぞれ別物です。

今回扱った Physics Material 2D は
「物理挙動の制御用」のマテリアルとなっています。

-フラッピーバード風ゲームの作り方