今回はエンティティマテリアルについて掘り下げていきます。

と、言ってもマテリアルは普通に使ってる分にはほとんど知らなくてもいいですしこの記事もそこまで掘り下げはしないのでご了承を。

マテリアルファイルとは

マテリアルファイルは使用するモデル等にシェーダの設定をするというのが目的です。

モデルごとに違う=材質が違うって事でマテリアルなんでしょうね。

エンティティではentity.materialとして扱うことになります。

エンティティマテリアルを利用してる人は1行そこらで終わっていると思いますが、あれはすでに定義された設定を利用指定しているので1行で済んでいるわけです。

つまりやろうと思えば独自のシェーダ設定もできるわけです。(もはやシェーダの範囲のなので触れませんが)

マテリアルの指定方法

記述方法は"(マテリアル名)": {(設定)}。ただこの状態で使う人はあまりいないと思うので、"(マテリアル名):(親マテリアル)": {}

マテリアル名はリソースパックのエンティティjsonで参照できる値です。親マテリアルはこのマテリアルに設定を継承するマテリアルです。

textmob_1,textmob_2,textmob_3はすべてマテリアルの設定方法が異なりますが、結果はすべて同じ(entity_alphatestの設定を引き継いだマテリアルの設定)です。

定義済みマテリアル一覧

Minecraft側ですでに定義済みのマテリアルを示します。この一覧はentity.materialのみの内容になっているのでそこらへんはご了承を

1.16.x時点での物なのでバージョンによってはなかったりするものがあるかもしれません。

上のほうにあるのが、上記の説明で出てきた(親マテリアル)に当たるもの。下の方にあるのはすでに定義されているバニラのエンティティです。

なんかいっぱいありますが特にこだわりがない場合。entityentity_alphatestを選択するのが無難でしょう。

反則技

この記事の本筋からはズレてしまうんですが、entity.materialを使用せずにリソースパックのエンティティjsonに上記の定義済みマテリアルを直接指定する方法です。

ちゃんと動くし問題はないんですがあまりお勧めはしません

"materials": { "default": "entity_alphatest" }

ちょっとさっぱりしすぎな気がしますが、マテリアルってほぼシェーダなので私の書ける範囲はこのぐらいしかないんですよね。

とは言いつつアドオン作成者に取っては十分な内容だと思います。

次は何書こうかな?

それではまた~

質問や修正箇所がありましたらTwitterまでお願いします。