宙に浮くプレイヤー画像

アクションゲームを作る時に、足が着地してないのにシッポが引っ掛かって、
上の図のようにプレイヤーが空中に浮くことはないですか?

これでは不自然なので、きちんと足で地面に着地するようにしたいですよね。

今回は、そんな問題を解決するヒットボックスの説明をしますね。

ヒットボックスとはなにか?

当たり判定の時にプレイヤーのコスチュームのままだと、上の図のようにシッポで身体を支えたり、
下図のように炎が少し翼にあたっただけでもあたり判定となってしまいます。

グリフォンの翼に炎が当たってる図

このような不自然な状態を避けるために、当たり判定のために四角形のコスチュームを準備します。
この当たり判定用のコスチュームをヒットボックスと呼んでいます。

グリフォンのヒットボックスの例

グリフォンの大きさに近いボックスだったり、シッポや翼を失くしたコスチュームでも良いです。

2通りあるヒットボックスの作り方

どのような条件で当たり判定をするかによって、ヒットボックスの作り方が2つあります。

ヒットボックスはプレイする時に画面上に表示されないようにするので、
使用するプレイヤーと全く別の形をしていても大丈夫です。

1.ヒットボックス自体(オブジェクト)に触れたことで判定をする場合

作成したコスチュームを当たり判定に使うので、判定に都合の良い形であればどんな形状でも良いです。
先ほど紹介したシッポや翼のないグリフォンもありです。

オブジェクト判定のヒットボックスの図

コスチュームの形(オブジェクト)そのものが、地面に触れることを当たり判定の条件にしています。

オブジェクト判定のスクリプトの例

2.ヒットボックスの色に触れたことで判定をする場合

スプライトの部位にいろいろな色を付けたコスチュームをヒットボックスとして使います。

色での当たり判定用のヒットボックス

それぞれの色が地面(紫色)の色に触れることを当たり判定の条件にしています。

色判定のスクリプトの例

ヒットボックスの使い方

具体的にヒットボックスをどのように使うかの説明をしますね。

ヒットボックスの使い方にも、ダミーのスプライトとして使う方法とプレイヤーのコスチュームとして使う方法と2通りあります。

ダミーのスプライトとしてヒットボックスを使う時

ヒットボックスを別のスプライトとして、プレイヤーの動きをするスクリプトを作成します。

このヒットボックスは画面上では見えないようにして、プレイヤーとなるCatのスプライトは”ヒットボックスに行く”とすれば、
Catはヒットボックスの動き通りに動き、当たり判定にも同様に反応します。

ダミーのヒットボックスを使う画面

 

<Catのスクリプト>

Catのスクリプト

 

<ダミーヒットボックスのスクリプト>

ダミーヒットボックスのスクリプト

ここで大事なポイントは、ダミーのヒットボックスが画面に表示されないようにするために、
”幽霊の効果を100にする”のブロックをつかうことです。

スクラッチのサイトでみる

生徒さんB生徒さんB

色判定のヒットボックスを使う時も同じですか?

色判定のヒットボックスの絵

そら先生そら先生

色判定のヒットボックスは隠すにしてください。スプライトが隠れていても色の当たり判定は有効ですからね。

詳しく知りたい方は↓↓↓

プレイヤーのコスチュームとしてヒットボックスを使用する場合

先ほどはヒットボックスを別のスプライトとしましたが、今度はプレイヤーのコスチュームの一つとして
ヒットボックスを使う方法をご紹介します。

ヒットボックスをコスチュームの一つにした例の画面画像

ねこのプレイヤーは左側、ねこ2のプライヤーは右側のコスチュームを持っています。
どちらもコスチューム3がヒットボックスになっています。

ヒットボックスをひとつのコスチュームとした画像

 

<オブジェクトでの当たり判定のプレイヤーねこ1のスクリプト>

オブジェクトの当たり判定プレイヤーのスクリプト画像

ヒットボックスが見えない理由

”ずっと” のブロックの中に複数のコスチュームをいれても、画面に表示されるのは一番下のコスチュームだけになります。

”〇回くりかえす” や ”〇秒待つ” が間に入らない限り、他のコスチュームは見えません。

*定義ブロックでアニメーションもスクリプトを作成したのですが、動きが悪かったのでメッセージにしています。

 

<色での当たり判定のプレイヤーねこ2のスクリプト>

 

”アニメーションを送る” のブロックが一番下にある理由

コスチュームは一番下のブロックが優先されるようで、”重力落下” や ”左右移動” のメッセージが下になると、コスチュームがコスチューム1に固定されてしまってアニメーションが動かない。

試しにメッセージを送る順番を変えて動きがどのように変わるか確認してみてください。

スクラッチの公式サイトを見てみる

ジャンプや横移動のプログラムは簡単なものを使用しているので、プレイする時に地面にめり込んだりすることがあるかもしれません。
今回はヒットボックスについての説明をするために、他の部分(ジャンプなど)のプログラムを簡単にしています。