チュートリアル/Bedrock Edition/エンティティモデルの変更

提供: Minecraft Wiki
移動先: 案内検索
Cleanup.svg
この記事はスタイルガイドの基準を満たす必要があります。 [議論]
この記事を整理してくださる協力者を求めています
Information icon.svg
この項目は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.png

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をコピー&ペーストしても、うまくはいきません。モデルが完全なデータ駆動になるまで、望む結果を引き出すため、多くの実験を重ねていくでしょう!