簡単に挨拶

どうもこんにちは、最近は寒くなってきましたね、switchです。
こちらの記事「Minecraft・Mod開発備忘録」では、有名ゲーム、マインクラフトの改造データであるModを作成するに当たって、迷ったことやうまくいかなかったことをメモしていきます。
私は完全初心者ですので、間違いやコピペの部分があると思いますが、暖かい目で読んで痛いただければと思います。
今回はブロックの当たり判定を削る方法を書いておきます。

getBoundingBoxを使う

とりあえず以下のコードをブロックのクラスに追加します。


public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) {
		return new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.0D, 0.0D, 0.0D);
	}

これは当たり判定の処理を行うパブリッククラスです。
return new AxisAlignedBB(この中の数値をいじることによって当たり判定をつけます);
6つ引数がありますよね?それぞれが持つ意味は以下の通りです。また、それぞれ値の最大値は1.0です。

一つ目・・・左からいくつ削るか
二つ目・・・下からいくつ与えるか
三つ目・・・奥からいくつ削るか
四つ目・・・左からいくつ与えるか
五つ目・・・下からいくつ削るか
六つ目・・・奥からいくつ与えるか

例えば、ハーフブロックだと以下のようになります。


AxisAlignedBB(0.0D, 0.5D, 0.0D, 1.0D, 0.0D, 1.0D);

下から0.5だけを与え、左から1.0、奥から1.0の当たり判定を与えることによって、三方向に当たり判定が重なった部分に当たり判定が生じるわけです。
これは三方向から数値の指定の重なった部分に当たり判定を与えていますが、逆に三方向から削る部分を指定してハーフブロックを作ることもできる気がしますね。

終わり

この記事を読んで少しでも貴方のMod開発のお役に立てていたら幸いです。
それでは、よいモッダーライフを!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA