Minecraft Wiki
Advertisement
Brush
この記事はスタイルガイドの基準を満たす必要があります。 [議論]
この項目を整理してくださる協力者を求めています。
Information icon
この項目はBedrock Edition限定の要素です。 

このチュートリアルでは、公式にサポートされたAdd-onについての詳細を解説します。

概要[]

この記事は、上級者向けの記事となっています。ある程度JSONデータ形式に精通している必要があります。そうでないなら、チュートリアル/Bedrock_Edition/ビヘイビアーパックの作成をよく読んでおくことをお勧めします。

この記事では以下の内容を記述します。

  • Minecraftモデル形式の概要
  • エンティティのモデルの変更方法

所要時間[]

30分ほどで終えられる内容となっています。

必要なもの[]

以下のツールが必要となります。

テキストエディタ[]

種類は問いませんが、プログラミング用の IDE をお勧めします。Notepad++ は無料で、多くのプログラミング言語の構文ハイライト機能を備えています。 ここからダウンロードできます。 複数のファイルを効率的に管理する目的においては、Visual Studio Code を使用することもお勧めです。

入門[]

この記事では、例として、クリーパーに頭を3つの頭を持たせます。 クリーパーのモデルを変更し始める前に、モデルを構成するコードを確認した方が良いです。

Minecraftモデル形式[]

Minecraftのモデルは全てmobs.jsonに定められていて、Vanilla Resource pack/models/mobsに存在します。 mobs.jsonは、以下の異なる要素によって構成されます。

エンティティテンプレートコード[]

"geometry.エンティティの名前":

     "texturewidth": x,
     "textureheight": y,
     "bones": [
   {
     "name": "パーツの名前",
     "pivot": [ x, y, z ],
     "cubes": [
       {
         "origin": [ x, y, z ],
         "size": [ x, y, z ],
         "uv": [ x, y, z ],
        }
      ]
    }
  ]                                         
}

注意[]

   このコードは、mobs.jsonがどのような構成になっているか例示するもので、実際に使用しても有効ではありません。
geometry.entity モデルが属するエンティティの名前
texturewidth 1ピクセル単位でのテクスチャの幅
textureheight 1ピクセル単位でのテクスチャの高さ
bones モデルの骨格を形成するパーツで、BonesはGeometry.entityの影響を受けます。この表にまとめられたデータがコンマで区切られている事に注意。
name パーツの名前
pivot モデルのパーツの中心点の位置。例えば、クリーパーの頭が回転するとき、Pivotの場所を中心として回っています。
rotation パーツのグループ全体の回転の仕方の座標を設定できます。使用するとき、Minecraftがいくつかの設定した回転の方法を上書きしてしまう事に注意。
mirror trueかfalseかを設定でき、trueの場合、グループのuvのx座標を揃えられます。
cubes Geometryに対応したパーツの設定。
origins パーツの位置の中心を定義します。この中心の位置は、エンティティモデルの左下の前の頂点になります。

[]

クリーパーの"body" パーツでいうと、赤い丸のつけられた所の頂点がoriginsの位置。 CMEMPicture 7

size パーツの大きさを1ピクセル単位で変更でき、16×16×16の大きさだと、1ブロックと同じ大きさになります。
uv テクスチャ内のパーツの位置を変更できます。

この数値は、最初にx座標(水平)、次にy座標(垂直)を設定します。注意したいのは、この位置は、テクスチャリングした際にテクスチャの左上になる部分を指定する必要がある事です。

[]

赤く色のつけられたピクセルは、クリーパーの"body"パーツで指定する必要のあるピクセル。("uv": [ 16, 16 ])テクスチャリングする際、点線で囲まれた部分が"body"パーツに使用されます。314×158

mirror trueかfalseかを設定でき、trueの場合、パーツのuvのx座標を揃えられます。
inflate パーツの大きさを指定された数展開し変更します。また、負の数にすることもできます。この項目はuvマッピングには影響を与えません。

パーツとアニメーション[]

パーツはモデルをMinecraft上で動かすために使用され、人体と同じように考えると、骨格があり、それを筋肉で動かすと、肉もそれについてきます。3Dアニメーションでも、骨格があり、それをアニメーションで動かすと、それに伴い骨格に当てられたgeometryもついてきます。

重要な事[]

モデルはまだ完全にデータによるものではありません。モデルの変更は可能ですが、エンティティに必要なパーツや、エンティティのアニメーションなど、データによる変更ができないものもあります。つまり、クモに村人の動きをさせようとgeometryをコピー&ペーストしても、うまくはいきません。モデルが完全なデータ駆動になるまで、望む結果を引き出すため、多くの実験を重ねていくでしょう!

Advertisement