記事一覧

    スポンサーサイト

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    【Snapshot】3Dリソースパックについて

    分かった事をとりあえず書いて纏めは後にします。?や予想と書かれてる部分に関しては、個人の憶測なので間違ってる可能性があります。

    調査をするにあたり「デフォルトに限りなく近い何かテクスチャ」作者さんのどどど素人さんからアドバイスを頂きました、ホントに助かりました。ありがとうございました!


    3DリソースパックのDLは以下から
    3D Models resource pack : Minecraft

    スナップショットの導入は、スナップショットをDLしてきてversionフォルダにスナップショット用のフォルダを作成後そこにDLしてきたjarファイルをぶちこむ。プロファイルで関連づけて起動すれば遊べる。

    ※一応スナップショットの中にも3Dテクスチャを表現するファイルは存在しますが、本棚などのファイルは存在しません。


    検証画像
    stone_20140408010017be2.png

    自作、ご自由にお使いください。


    フォルダ構成


    Resource Pack.zip
    ├ pack.mcmeta
    ├ pack.png(任意)
    └ assets
      └ minecraft
        └ models
          └ block
            ├ 各.json どのテクスチャで3Dを適用させるか宣言する
            └ meshes
              └ 各.json どうやってテクスチャに反映させるかを記述したファイル


    ※jar以下も同様の構成になると思われる。

    block配下:3Dを適用するブロックを宣言するファイル。
    meshes配下:実際の3Dモデリングを実現するファイル。


    block配下の記述方法


    記述例

    "__comment": "コメント(任意 なくても適用される)",
    "variants": { "normal or 適用させるブロック名": { "model": "cube など" } }

    例えばstone.jsonならこのような記述

    {
      "variants": {
        "stone":      { "model": "cube" },
        "granite":     { "model": "cube" },
        "granite_smooth": { "model": "cube" },
        "diorite":     { "model": "cube" },
        "diorite_smooth": { "model": "cube" },
        "andesite":    { "model": "cube" },
        "andesite_smooth": { "model": "cube" }
      }
    }

    Variantsにブロック名が来ており、metadataが割り振られている場合は、上記のように記述することが可能となる。
    ※metadataが割り振られていない場合の適用方法については調査中。

    ブロックIDが廃止される理由に、この記述が関係している?


    modelの種類
    rail_flat rail_raised_ne rail_raised_sw rail_raised_ne rail_raised_sw anvil beacon bed_foot bed_head cube brewing_stand_empty brewing_stand_bottles_1 brewing_stand_bottles_2 brewing_stand_bottles_3 brewing_stand_bottles_12 brewing_stand_bottles_13 brewing_stand_bottles_23 brewing_stand_bottles_123 cross cactus etc...



    meshes配下の記述方法



    "__comment": "コメント(任意 なくても適用される)"
    "useAmbientOcclusion": 調査中 レールで出てくる
    "inventoryRender3D": 調査中 レールで出てくる

    "randomOffsetX": X軸上で設置場所をランダムにする
    "randomOffsetZ": Y軸上で設置場所をランダムにする


    3d20140409184857.png

    "randomOffsetX(Y)"の記述ありとなしの比較


    "elements": 一番いじる場所。テクスチャの形状を決定する。

    elements内に記述するもの

    "type": "cube" "plane" 基本的にはcubeはブロック状のもの。だがドアやトラップドアもCube。planeはそれ以外?


    "from": 開始位置 Facing:Northの状態で左下奥
    "to": 終了位置 Facing:Northの状態で右上手前

    3d20140406205115.jpg3d20140407192048.png

    画像見てもらえると分かると思いますが、Facing:Northの状態で、左奥下がfromの起点で3Dテクスチャの開始位置、右上手前がtoの起点で3Dテクスチャの終了位置。

    2枚目のようにfrom {0 0 0} to {8 8 8}のように中央まで表示する、といったようにすれば小さく表示することも可能だが、あくまでテクスチャの見た目がそうなるだけで、当たり判定は元々の大きさと変わらない。


    "shade": テクスチャの明度の決定。おそらくテクスチャが重なる部分の調整。6面が平面になっている場合には変化が見られなかった。
    3d20140409020812.png

    図はかまどの3Dテクスチャのshadeを0-1にした際の比較画像。0で真っ暗 1で元々のテクスチャ 1以上は特に変化なし。


    3d20140409023921.png

    暗くするだけでなく、このように元々のテクスチャの明度が暗くなってしまう際に、元々のテクスチャの明度を表現するためにも用いられる。



    "faceData": {"down":{} "up":{} "north":{} "south":{} "west":{} "east":{} }
    6面に対しての設定。downは下、upは上。

    "uv": テクスチャの使用範囲を決定する。
    3d20140408001800.png
    down uv : [0, 0, 1, 1]
    up uv : [0, 0, 16, 16]
    north uv : [0, 0, 3, 6]
    south uv : [0, 0, 6, 8]
    west uv : [0, 0, 10, 4]
    east uv : [0, 0, 5, 12]

    3d20140408002531.png
    down uv : [0, 0, 1, 1]
    up uv : [3, 6, 16, 16] ←上との違いは赤文字
    north uv : [0, 0, 3, 6]
    south uv : [0, 0, 6, 8]
    west uv : [0, 0, 10, 4]
    east uv : [0, 0, 5, 12]


    "textureFacing": "down":下 "up":上 "north":北 "south":南 "west":西 "east":東
    かぼちゃやTNTなど、6面でテクスチャが異なるブロック等に用いられる設定。
    6面全て同じテクスチャを使用する場合は記述は不要となる。

    3d20140409022324.png

    TNTの側面を指定する記述のtextureFacingを全てupにした際の結果。

    TNT上部に表示されてる画像が側面にも適用されるようになる。

    "cull": 不明 アリウム等色んな箇所で使われているが、削除してもどこに変化があるのか不明。


    Q1:テクスチャはどうすればいい?jsonファイルで指定するの?

    A1:jar配下、あるいはリソースパックのblocks配下のテクスチャを参照し、そのテクスチャを用いて3D表示する場所をjsonファイルで指定している?これが本命。

    石ブロックなら、.jar\assets\minecraft\textures\blocks\stone.pngを参照

    3d20140406180500.png


    Q2:今までと異なって4面分のテクスチャが1枚に纏められているものがあるが、これらはどうやって反映されているのか?

    A2:ブロック6面分以外のテクスチャを反映させたい場合に使うテクスチャ。パレット的な使い方をしている。反映方法は上記でも解説したuvを使う。

    例えば、ジャック・オー・ランタンの3Dサンプルテクスチャは、上下左右で分けて、左上が正面。右上が。テクスチャ内部に表示するテクスチャ。左下は不明。右下がテクスチャ内部。

    これらをuvを使いながらうまく表現することで、ジャック・オー・ランタンの外側・内側・内部のたいまつを表現している。

    他にはTNTの導火線の表現に使ったりしている。


    3d20140406191256.png



    便利ツール・ページ


    BDcraft Cubik LITE


    meshes配下のjsonファイルを作成できるツール。LITEが無料版。

    Minecraft ID List
    フォーラムで解説されてる方を発見しました。英語ですが、参考になりそうです。
    VANILLA BLOCK MODEL CREATION TUTORIAL


    製品版に関してはWikiに仕様全て載っていそうなので、そのリンクを紹介することで完了扱いとさせて頂きます。
    http://minecraft.gamepedia.com/Block_models
    スポンサーサイト

    コメント

    コメントの投稿

    非公開コメント

    検索フォーム

    お知らせ

    08/11 packslist廃止に伴い、テンプレートを以前使っていたものに戻しました。 08/11 タグの修正を行っております。現状約10%完了。

    月別アーカイブ

    twitter

    pictlayer

    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。