ユーザーブロマガは2021年10月7日(予定)をもちましてサービスを終了します

自称中級者のMinecraft日記 Eclipseで艦これMOD(仮)に挑戦 ブロックの追加2 リソースの追加
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

自称中級者のMinecraft日記 Eclipseで艦これMOD(仮)に挑戦 ブロックの追加2 リソースの追加

2016-10-28 21:49
    <目 次>
    開発環境の構築編
    最初に書くメインクラスの基本形
    防具の追加1 登録用Armorクラス
    アイテムの追加1 アイテムの登録まで
    クリエイティブタブの追加

    ブロックの追加1 ブロックの登録まで
    ブロックの追加2 リソースの追加
    ブロックの追加3 中をくり抜く当たり判定
    ブロックの追加4 外を削る当たり判定
    ブロックの追加5 向きのあるFacingブロック
    LetterTrayDecoration の移植
    ブロックの追加6 当たり判定に向きをつける
    装飾ブロックを幾つか

    レシピの追加1 作業台を使うクラフト
    MODのリリーステストの準備
    鉱石ブロック1 アイテムをドロップするブロック
    鎮守府MOD の配布はじめました
    ――――――――――――――――――――――――――――――――――――――――
    さて、ブロックのリソース追加では、
    ・blockstates の jsonファイル
    ・アイテムとしてのモデル
    ・ブロックとしてのモデル
    ・ブロックのテクスチャ
    ・ブロックの LocalizedName
    と、5つの要素を用意する必要があります。


    blockstates の jsonファイル

    assets/chinjufumod/blockstates に保存します。
    blockstates に入れる jsonファイル では、モデルとして用いるファイル等を指定します。

    今回の BlockEmptyBox.json では、参照ファイルを指定するだけの簡素なコードですが、


    例えば階段ブロック(画像は、バニラのアカシアの木の階段)では、こうなります。


    アイテムとしてのモデル

    assets/chinjufumod/models/item に保存します。
    block をアイテムとして表示するのは基本形があるため、こちらも読み込むファイルを指定するだけの簡素なコードになります。バニラのオーク木材などの item モデルをコピーペーストして、自作MOD 用に値を書き換えるだけです。


    ただし細かい指定をすることは可能で、下にあるバニラの banner(旗) のモデルのように、
    ・thirdperson_righthand・・・手に持っている時の三人称視点での描画
    ・firstperson_righthand・・・手に持っている時の一人称視点での描画
    ・gui・・・インベントリやチェストの枠内における描画
    を決めることも出来ます。


    ブロックとしてのモデル

    assets/chinjufumod/models/block に保存します。
    こちらは最初から複雑なコードになりました。
    1.8までとは、また少し記述の仕方が異なるので注意しましょう。



    見た目は複雑ですがやっていること自体は簡単で、Minecraft の1ブロックを 16×16×16 の座標で考えて、「どの範囲を埋める四角形を描くか?」で形を指定しています。


    例えば、原点(0,0,0)から(16,16,1)を埋めさせると、このような薄い板になります。

    コードにすると、こんな感じです。
    {
    "parent": "block/block",
    "textures": {
    "particle": "chinjufumod:blocks/box_side",
    "top": "chinjufumod:blocks/box_top",
    "bottom": "chinjufumod:blocks/box_bottom",
    "side": "chinjufumod:blocks/box_side",
    "inside": "chinjufumod:blocks/box_inner"
    },
    "elements": [
    { "from": [ 0, 0, 0 ],
    "to": [ 16, 16, 1 ],
    "faces": {
    "down": { "texture": "#bottom" },
    "up": { "texture": "#top" },
    "north": { "texture": "#side" },
    "south": { "texture": "#side" },
    "west": { "texture": "#side" },
    "east": { "texture": "#side" }
    }
    }
    ]
    }

    こうしたパーツを複数個設定できるため、その組み合わせによって、中身が空っぽの箱も表現できる訳です。

    テクスチャのコピー

    assets/chinjufumod/textures/blocks に保存します。
    テクスチャは、用意しておいた pngファイル をコピーすればOKです。


    ブロックの LocalizedName

    langパッケージにある langファイル に、LocalizedName を書き加えます。


    実行テストをしよう

    実行テストをしてみると、BlockEmptyBox がこのように描画されました。


    当たり判定はフルブロックのままなので中には入れませんが、描画までは成功です。

    (つづく)
    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。