A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.

dynmapをmodに対応してみる

注意:このページはすべての情報を網羅していないですが、基本的な所はたぶん抑えてると思います。さらに詳細はページ末尾の参考ページを読むなり、他の定義ファイルから察するなりしてください。私も追加でわかったことがあればさらに更新するかもです。

概要

dynmapのforge版は既にいくつかのmodに対応しており、何もしなくても追加されたブロックがWebに表示されるようになってます。対応してないmodは自前で設定しなと表示されません。っていうか、dynmapに標準で組み込まれたmodの設定が古すぎて役に立たないので、ちゃんと表示されたら運がいい方ですね。

ってことで、ここではdynmap対応してないmodをdynmapで表示させる為の方法について書きたいと思います。非常に少ない情報の中調べているので、ウソや不正確な情報、推測が含まれるのでご注意を。

dynmap_3 dynmap_4

なお、当然ながらマルチサーバ前提の記事です。以下の記載はすべてサーバでの内容となります。また、この記事はdynmap2.2のforge版で動作確認してます。

わーい日本語の説明だ!と思いきやとても複雑で理解できても設定は非常に困難なので、忍耐力が無い人は読む前から諦めましょう。「設定ファイルだけくれ!」って人が居てもガン無視しますので、そのつもりで。

頑張ればこのくらいはできます。※画像はモミジmodで、左がゲーム画面、右がdynmapの表示

dynmap_14 dynmap_15

dynmapのmod参照の仕組みと定義とカスタマイズ方法

dynmapのjarファイルを解凍すると、renderdataというディレクトリにmodの定義ファイルが入ってます。ファイルは主に「mod名-texture.txt」及び「mod名-models.txt」です。
dynmap_1
texture.txtはテクスチャマップ用画像の定義、modelsはブロック形状の定義と思われます。単純な矩形ならmodelsの定義は不要のようですが、たいまつなどの特殊な形状の場合は設定が必要な感じがします。
dynmapはこの情報を元に、modファイル内に格納されているテクスチャマップ用画像を参照してWeb情報を生成しているようです。

で、カスタマイズするにはこのdynmapのjarをいじるのでは無いです。サーバを起動しdynmapを読み込むと生成されるディレクトリがあるので、そこへファイルを格納することで、dynmapのjarより優先的に設定が反映されるようです。
ちなみに、jarの中も生成されるディレクトリも設定ファイルが格納されているのはrenderdataというディレクトリですね。

mod名、ブロックID、data値の調べ方

dynmapでブロックを表示するには、少なくともmod名、ブロックID、data値、テクスチャ画像ファイルが必要ですが、この調べ方にはコツが居るようです。

以下の図の様にbukkit系pluginで表示されるブロックIDやブロック名はそのままでは使えません。IDChecker modなどで調べる必要があります。
dynmap_2
上図の様に数字のID(IDは環境によって変わります。図は個人的に作成したpluginです。ChestShopプラグインを使ったことがある人なら、/iteminfoで見れます。あるいはNEIとかを使っても調べられます)を調べた後にIDCheckerで調べたIDからブロックIDが調べられます。私の環境の場合は、IDCheckerでデータを見と以下の通りです。

535,BambooMod:sakuraLeaves,tile.sakuraLeaves,10,1

一番左が事前に調べた数字のIDで、次がmod名:ブロックIDです。このmod名とブロックIDがdynmapの定義で使用されます。
あと、上図には「BAMBOOMOD_SAKURALEAVES:15」と表示されていますが、この「:15」も使います。この値は内部的には「data」と呼ばれてて、IDCheckerに表示されませんが、dynmapの定義には必要です。(data値が表示されない場合もありますが、その場合は「:0」です)

テクスチャ画像ファイルは、どのブロックにどれが使われているかを調べる方法は今のところわかりません。なので、ファイル名や中の画像を見て感で決めるしかないです。

NEIの場合は、たとえばマツの木材を見ると「5:1」と出ますが、5がID、1がdata値です。バニラブロックはIDが決まってますが、Forgeの場合はIDは環境によって変化するので使えません。IDCheckerでブロックIDを調べましょう。data値は使うので重要です。

dynmap_13

mod名-texture.txtの定義

ここでは竹mod(bamboo mod)を参考に桜の木が表示させてみます。他のmodを対応させたいのであれば、読み替えてください。
ちなみに竹modのdynmapデータはこちらにもアップされてますが、この内容は古いので新しいバージョンには対応できてません。ただ、非常に参考になるので今回解析する上で非常に参考にしてます。

まず、IDを調べた後に、IDCheckerの情報を得ます。私のサーバの場合は以下のような感じ。

535,BambooMod:sakuraLeaves,tile.sakuraLeaves,10,1
540,BambooMod:sakuraLog,tile.sakuraLog,0,255

sakuraLogが幹の部分で、sakuraLeavesが葉の部分。なお、sakuraLeavesは0~15のdata値があり、それぞれ異なる色が定義されているようです。

早速texture.txtファイルを書いてみます。ちなみに「#」以降の文字は無視されるコメントです。

version:1.7
modname:BambooMod
cfgfile:config/BambooConfig.cfg
######################################################
# Textures
############################################################
texturepath:assets/bamboo/textures/blocks/
texture:id=sakuralog_s,filename=assets/bamboo/textures/blocks/sakuralog_s.png,xcount=1,ycount=1
texture:id=sakuralog_t,filename=assets/bamboo/textures/blocks/sakuralog_t.png,xcount=1,ycount=1
texture:id=sakurapetal,filename=assets/bamboo/textures/blocks/sakurapetal.png,xcount=1,ycount=1

############################################################
# Blocks
############################################################

# Sakura Wood
block:id=%sakuraLog,data=0,stdrot=true,allsides=0:sakuralog_s,topbottom=6000:sakuralog_t

# Sakura Leaves
block:id=%sakuraLeaves,data=0,stdrot=true,allfaces=17000:sakurapetal,transparency=LEAVES,colorMult=181818
block:id=%sakuraLeaves,data=1,stdrot=true,allfaces=17000:sakurapetal,transparency=LEAVES,colorMult=A04040
block:id=%sakuraLeaves,data=2,stdrot=true,allfaces=17000:sakurapetal,transparency=LEAVES,colorMult=608030
block:id=%sakuraLeaves,data=3,stdrot=true,allfaces=17000:sakurapetal,transparency=LEAVES,colorMult=806048
block:id=%sakuraLeaves,data=4,stdrot=true,allfaces=17000:sakurapetal,transparency=LEAVES,colorMult=3064C0
block:id=%sakuraLeaves,data=5,stdrot=true,allfaces=17000:sakurapetal,transparency=LEAVES,colorMult=A060E0
block:id=%sakuraLeaves,data=6,stdrot=true,allfaces=17000:sakurapetal,transparency=LEAVES,colorMult=5098B0
block:id=%sakuraLeaves,data=7,stdrot=true,allfaces=17000:sakurapetal,transparency=LEAVES,colorMult=A0A0A0
block:id=%sakuraLeaves,data=8,stdrot=true,allfaces=17000:sakurapetal,transparency=LEAVES,colorMult=505050
block:id=%sakuraLeaves,data=9,stdrot=true,allfaces=17000:sakurapetal,transparency=LEAVES,colorMult=F0B0C0
block:id=%sakuraLeaves,data=10,stdrot=true,allfaces=17000:sakurapetal,transparency=LEAVES,colorMult=80C018
block:id=%sakuraLeaves,data=11,stdrot=true,allfaces=17000:sakurapetal,transparency=LEAVES,colorMult=C0C030
block:id=%sakuraLeaves,data=12,stdrot=true,allfaces=17000:sakurapetal,transparency=LEAVES,colorMult=98B0F0
block:id=%sakuraLeaves,data=13,stdrot=true,allfaces=17000:sakurapetal,transparency=LEAVES,colorMult=E080D0
block:id=%sakuraLeaves,data=14,stdrot=true,allfaces=17000:sakurapetal,transparency=LEAVES,colorMult=D0A030
block:id=%sakuraLeaves,data=15,stdrot=true,allfaces=17000:sakurapetal,transparency=LEAVES,colorMult=FFFFFF

以下、解説(一部解読)。保存するファイル名は何でもいいようですが、一般的に「mod名-texture.txt」という名前が付けられているので、それに習った名前を付ければいいでしょう。

  • version:1.7
    これは、modでは無く、Minecraftのバージョンらしいです
  • modname:BambooMod
    mod名。前述の通り、調べた値を記入。
  • cfgfile:config/BambooConfig.cfg
    modの設定ファイル。なぜ必要かが謎。設定ファイルが複数存在するmodも有るだろうにと思うので、これ自体は書かなくても機能するんじゃないかと思ってます。

texture設定部(テクスチャIDの定義)

  • texturepath:assets/bamboo/textures/blocks/
    テクスチャファイルの位置。相対位置のようで、modのjarファイル、あるいはdynmapディレクトリのrenderdata以下のパスを書けばいいと思われます。ただ、以後のファイル名指定でもこのパスを含んでいるので、間違ってても大丈夫かも。
  • texture:id=sakuralog_s,filename=assets/bamboo/textures/blocks/sakuralog_s.png,xcount=1,ycount=1
    テクスチャーファイルの指定です
    id=テクスチャID…なんでもいいみたいですが、後述のブロック部の設定からの参照で指定されます。
    filename=テクスチャ画像ファイル名…テクスチャ画像の位置です。jarファイル内のrenderdata(renderdata除く)からの相対パス名ですね。
    xcount=数値,ycount=数値…このファイルに複数のテクスチャ画像がある場合、横の数(xcount)と縦の数(ycount)の指定。たとえば画像ファイルを開くと横に「■■■」と3つのテクスチャが格納されている場合は、「xcount=3,ycount=1」になると思います。今回試した竹modはすべて1×1みたいですね。

block部

「block:id=%sakuraLog,data=0,stdrot=true,allsides=0:sakuralog_s,topbottom=6000:sakuralog_t」という部分の説明ですが、いろんな書き方ができるようなので、項目毎に説明を書いてみます。
ちなみに、「block:」以降は「定義=値」みたいなのがカンマ区切りで羅列されてます。このカンマ区切りの内容は順番が入れ替わっても大丈夫みたいです。また、「data=0,data=1」と2つ書くと、2つに対する設定にもなるようです。

  • id=ブロックID…前述の調べ方で解説したブロックIDです。ちなみに「%」が付いてますが、これは不明です。ただ、書かないとエラーになるので、恐らくワイルドカードか何かの類いと思われます。
  • data=0…前述のdata値です。IDCheckerでは調べられないので、NEIやWaila等で調べてください。
  • stdrot=true…とりあえず機械的に書けばOKらしい。詳しくはわかりませんが、どうも過去の互換性的な理由と書いてありました。書かないと90度横に回転して表示されるとのこと。(なんとなく理由はわかるけど割愛)
  • allsides=0:sakuralog_s…ブロックの四方(上面と下面以外)のindexとテクスチャIDの指定。「sakuralog_s」の部分はtexture部のテクスチャID。詳しくは後述の「テクスチャをどこに貼るか」と「indexとテクスチャID」を参照のこと。
  • topbottom=6000:sakuralog_t…こっちはブロックの上面と下面のindexとテクスチャIDの指定。「sakuralog_t」はtexture部のテクスチャID。詳しくは後述の「テクスチャをどこに貼るか」と「indexとテクスチャID」を参照のこと。
  • transparency…書いてない場合はOPAQUEがデフォらしい。以下、指定値の意味。
    OPAQUE…普通のブロック。
    TRANSPARENT…透明ブロック?
    SEMITRANSPARENT…立方体では無いブロック。感圧版とか半ブロックとか。
    LEAVES…葉っぱ。
  • colorMult…テクスチャの着色の色指定。16進数でRRGGBB(R=赤、G=緑、B=青で0~9/A~Fで指定)。バニラブロックで例えると言うと、羊毛のような色違いを表現できる。テクスチャ指定時にindex=17000を指定しないと使えないと思われる。

テクスチャをどこに貼るか(face,patch,topbottom,allsides,allfaces…)

「block:id=…」の記述の中で、テクスチャをどこにどのように貼るかを指定する項目があります。これは多岐にに渡るので、分けて説明します。ちなみに、、、

dynmap_5

3DCGの基本なんですが、そもそも3Dの物体にテクスチャを貼る場合は、さいころの様に6面それぞれに画像を貼り付けます。たとえば草ブロックの場合は、上面が草、下面が土ブロックと同じ、サイドの4枚は同じで上に草がはみ出しているようなのが貼り付いてます。だから、dynmapの設定も同様の指定をしなければなりません。
前述の「texture設定部(テクスチャIDの定義)」では、1行にこのテクスチャ1枚分を定義していますが、このblock部ではそれぞれのテクスチャをどこに貼るかの定義をします。当然、6枚分全部書いてもいいのですが、上図の通り、同じ画像が使われていることも多いので、その辺多少楽に設定ができるようになってます。

ちなみに書き方は、

貼る場所=index:テクスチャID

という書き方で、この節では「張る場所」の指定の説明です。「index:テクスチャID」のテクスチャIDの部分は前述の「texture設定部(テクスチャIDの定義)」の通りなんですが、indexについては後述の「indexとテクスチャID」を読んでください。

dynmap_6貼る場所は6カ所分をカンマ区切りで全部書くこともできますが、まとめて書くこともできます。

  • allfaces=index:テクスチャID
    指定したテクスチャを、6面すべてに貼り付けます。
  • allsides=index:テクスチャID
    指定したテクスチャを、サイドの4面に貼り付けます。上と下は別途指定する必要があります。
  • topbottom=index:テクスチャID
    指定したテクスチャを、上と下に貼り付けます。サイドの4面は別途指定する必要があります。
  • top/bottom/north/south/east/west=index:テクスチャID
    指定した面にテクスチャを貼り付けます。face、patchでも指定は可能。詳しくは右の図を参照してください。

ちなみに、「face0=index:テクスチャID」と書くと下面のテクスチャの指定なんですが、「face0-5=index:テクスチャID」と書くとすべての面らしいです。allfacesでいいんじゃ無いかとも思いますが、、、。
※なお、patch、faceは設定次第では別の使われ方もするようなのでご注意を。

indexとテクスチャID

allsidesやtopbottomなどで、indexとテクスチャIDを指定していますが、テクスチャIDは上記のtexture設定部で自分で定義するからわかるとして、indexが何なのかという話。なにやらこの値毎に意味があるらしい?ちょっとまだ調査中ですが、恐らく与える数値がテクスチャの貼り方や色の指定に関与するっぽい。

  • 1000…草と同じバイオーム毎の着色?
  • 2000…葉と同じバイオーム毎の着色?
  • 3000…水と同じバイオーム毎の着色?
  • 4000…テクスチャを時計回り90度回転させる?
  • 5000…テクスチャを時計回り180度回転させる?
  • 6000…テクスチャを時計回り270度回転させる?
  • 7000…テクスチャは水平反転
  • 8000…テクスチャは下方向に50%シフト。
  • 9000…テクスチャは下方向に50%シフトし、さらに水平反転
  • 10000…斜めに設置されたたいまつのような感じ?
  • 11000…雪バイオームの草ブロックと同じ?
  • 12000…ガラスの様に透かせる?
  • 13000…松の葉と同じ色?
  • 14000…白樺の葉と同じ色?
  • 15000…スイレンの葉と同じ色?
  • 16000…該当なし
  • 17000…colorMultかcustColorMultで色を付けられるようになる。
  • 18000…6000と1000を合わせた感じ?
  • 19000…6000と2000を合わせた感じ?
  • 20000…6000と3000を合わせた感じ?
  • 21000…17000と12000を合わせた感じ?
  • 22000…2000と17000を合わせた感じ?

※一応補足ですが、草ブロックなどは元々テクスチャに色の定義が無く(モノクロっぽいテクスチャになってる)、バイオームによって色が変化します。上記のバイオーム毎というのはそれのことだと思います。

 

mod名-models.txtの定義

modelsはtexture.txtと同様に以下の行を頭に入れる感じです。書き方に変化はありません。

version:1.7
modname:BambooMod
cfgfile:config/BambooConfig.cfg

以降はいろんな書き方があるようなので、例を交えつつパターン毎に書いてみます。

カーペットブロックな表現(ハーフブロック/壁紙系も可)

たとえば、モミジmod(MapleTree)で落ち葉を表現するやり方です。
dynmap_9

まず、MapleTree-texture.txtに以下のような行を書きます。

MapleTree-texture.txt

~略~
block:id=%ecru_BlockFallenLeaves,data=0,stdrot=true,allfaces=0:MapleLeaveRed,transparency=LEAVES
~略~

こうすると単純なブロックなので、バニラの葉のブロックと同じ表現になります。これだと厚みがあるので、薄くします。models.txtファイルで、boxblockで表現します。

MapleTree-models.txt

version:1.7
modname:mod_ecru_MapleTree
boxblock:id=%ecru_BlockFallenLeaves,data=*,xmin=0.0,xmax=0.99,ymin=0.0,ymax=0.05,zmin=0.0,zmax=0.99

これで厚みの無いカーペット状の表示になります。画像がちょっとわかりづらいですが、目を凝らしてみてください。

dynmap_10

さて、boxblockでこの薄さを表現している訳ですが、意味は以下の通りです。

  • id=ブロックID…前述の「mod名-texture.txt」のblock部と同じidです。書き方も同じ。
  • data=*…これも前述の「mod名-texture.txt」のblock部と同じdataです。書き方も同じなんですが、「data=0」「data=1」などと定義がある場合、すべてが同じ定義なら、一つ一つ書かなくても「*」って書くことで「全部」の意味になります。
  • xmin、xmax、ymin、ymax、zmin、zmax
    これは表現が難しいんですが、それぞれ「0~1」の間の値を指定します。当然、少数を使います。で、特に指定しないと*min=0、*max=1が指定されています。で、たとえばymin=0,ymax=0.5とすると、厚さ半分で下付きのハーフブロックになります。一方で、ymin=0.5,ymax=1とすると、上付きのハーフブロックになります。あるいは、以下の図を参考にxmin=0.9,xmax=1とすると、東側に貼り付いた板の様な表現ができます。
    dynmap_11
    今回は、x方向が「xmin=0.0,xmax=0.99」、「zmin=0.0,zmax=0.99」なので、平面方向にはほとんど変更してませんが、「ymin=0.0,ymax=0.05」なので、厚みがほとんど無いという指定になってます。

・・・とりあえず、これである程度の形は表現できますが、階段ブロックなどの複雑なのは無理なので、次項のカスタムブロックレンダラーを使います。

カスタムブロックレンダラーを使った階段ブロックなどの表現

こんなやつです。図は竹modの茅葺き屋根(という階段ブロック)です

dynmap_12

これはStairBlockRendererという機能を使えば簡単です。
ちなみにこういうブロックは設置後の方向でdata値が変わります。調べると北側(上図で右上のブロック)が2、南側が3、西側が0、東側が1になってますね。

まずは「mod名-texture.txt」の設定から、texture部。特にこれまでの説明と同様の一枚絵です。

texture:id=kaya_x,filename=assets/bamboo/textures/blocks/kaya_x.png,xcount=1,ycount=1

次はblock部。これもこれまでとほぼ同じですが、「transparency=SEMITRANSPARENT」が初出ですかね。「face0-5=0:kaya_x」を指定してるので、6面すべて同じテクスチャを使ってます。data値は上記の通り設置向きで変化しますが、とりあえず「data=*」と入れておきます。

block:id=%kayabukiRoof,data=*,stdrot=true,transparency=SEMITRANSPARENT,face0-5=0:kaya_x

次に、「mod名-models.txt」の設定ですが、「class=org.dynmap.hdmap.renderer.StairBlockRenderer」がポイントで、これを付けるだけで階段型にしてくれ、設置方向にも合わせてくれます。data値はtextureファイルと同様に「data=*」でいいです。

customblock:id=%kayabukiRoof,class=org.dynmap.hdmap.renderer.StairBlockRenderer,data=*

 

・・・と、まぁ基本的な形状はこんな感じで楽に作れます。この「org.dynmap.hdmap.renderer.StairBlockRenderer」のことをカスタムブロックレンダラーと言うらしいですが、マイクラで出てくる基本的な形状はある程度これを使って表現できるみたいです。たとえばガラスや鉄フェンスは「org.dynmap.hdmap.renderer.PaneRenderer」、レッドストーンワイヤーは「org.dynmap.hdmap.renderer.RedstoneWireRenderer」を使うみたいな?
ちなみにどのような種類があるかは以下のリンク先のページの下の方に書かれています。TFCとかRailCraftとかから始まる名称のは、それらmod用なのでしょう。
これらの説明は割愛しますというか、見ての通り公式でも一部しか解説が無いので、念力で感知するかソースコードを解析しないとわかりません。

Using custom block renderers(https://github.com/webbukkit/dynmap/wiki/Using-custom-block-renderers)

なお、カスタムブロックレンダラーを使わないブロックの表現は、実は「org.dynmap.hdmap.renderer.BoxRenderer」というのが使われているみたいです。これの説明も上記のリンクからたどれますので、見ればここのサイトと同じ説明が書かれていますね。

その他の表現

木の苗、草、花

ちょっと特殊な方法を使います。木の苗など(木になる前の)見た目が変化しない場合は1つだけ設定すればOK
「VertX1Z0ToX0Z1」というのが少し特殊な表現ですが、「mod名-models.txt」側はブロックIDとdata値以外はほとんどコピペでいいと思います。「mod名-texture.txt」側はテクスチャを2枚同じのを指定し、それぞれ「patch0」「patch1」と表現すればいいです。

mod名-texture.txt

block:id=%Cardamon,data=*,transparency=TRANSPARENT,patch0=0:cardamon_0,patch1=0:cardamon_0,stdrot=true

mod名-models.txt

patch:id=VertX1Z0ToX0Z1,Ox=1.0,Oy=0.0,Oz=0.0,Ux=0.0,Uy=0.0,Uz=1.0,Vx=1.0,Vy=1.0,Vz=0.0,visibility=flip
patchblock:id=%Cardamon,data=*,patch0=VertX1Z0ToX0Z1#0,patch1=VertX1Z0ToX0Z1@90#0

成長する植物は成長度合いでテクスチャも変化しますが、どうも内部的にはdata値を0から7まで変化させてるみたいです。だから、data値毎のテクスチャを用意すればいいみたいです。「patch:id=VertX1Z0ToX0Z1,~」は「mod名-models.txt」ファイルに1行だけ定義しておけば大丈夫です。

mod名-texture.txt

block:id=%Cumin,data=0,transparency=TRANSPARENT,patch0=0:cumin_0,patch1=0:cumin_0,stdrot=true
block:id=%Cumin,data=1,transparency=TRANSPARENT,patch0=0:cumin_1,patch1=0:cumin_1,stdrot=true
block:id=%Cumin,data=2,transparency=TRANSPARENT,patch0=0:cumin_2,patch1=0:cumin_2,stdrot=true
block:id=%Cumin,data=3,transparency=TRANSPARENT,patch0=0:cumin_3,patch1=0:cumin_3,stdrot=true
block:id=%Cumin,data=4,transparency=TRANSPARENT,patch0=0:cumin_4,patch1=0:cumin_4,stdrot=true
block:id=%Cumin,data=5,transparency=TRANSPARENT,patch0=0:cumin_5,patch1=0:cumin_5,stdrot=true
block:id=%Cumin,data=6,transparency=TRANSPARENT,patch0=0:cumin_6,patch1=0:cumin_6,stdrot=true
block:id=%Cumin,data=7,transparency=TRANSPARENT,patch0=0:cumin_7,patch1=0:cumin_7,stdrot=true

mod名-models.txt

patchblock:id=%Cumin,data=*,patch0=VertX1Z0ToX0Z1#0,patch1=VertX1Z0ToX0Z1@90#0

もっとスマートな方法があるかもしれませんが、、、。

なお「patch:id=~」という表現については解説してませんが、いろいろな使い方ができるようです。dynmapに同梱されているmodelsファイルを見ると、ほとんど同じ定義がすべてのファイルに入ってて、見た感じたいまつの表現とかもできるようですね。

壁

薄いブロックを使う方法と、カスタムブロックレンダラーを使う方法があります。挙動がバニラの石壁やフェンスとほぼ同じならカスタムブロックレンダラーでいけますが、明らかに作りが違う場合は、薄いブロックにしましょう。

まずは、薄いブロックで表現する方法。既に解説済みのboxblockを使えば表現できます。

mod名-texture.txt

block:id=%ecru_BlockWhiteFence,data=1,allfaces=0:whiteFence_vertical,stdrot=true

mod名-models.txt

boxblock:id=%ecru_BlockWhiteFence,data=1,xmin=0.9,xmax=1,ymin=0,ymax=1,zmin=0,zmax=1

まずは、薄いブロックで表現する方法。既に解説済みのboxblockを使えば表現できます。ちなみに「transparency=LEAVES」にしてますが、これはモミジmodの垣根という葉っぱブロックの壁なので、あまり気にしないでください。基本的にはテクスチャ側は通常のブロックと同じ表現でOKで、models側にclassを追加すれば勝手に壁表現になり、長い壁にした場合の変形にも対応してくれます。

mod名-texture.txt

block:id=%ecru_BlockLeafFence,data=0,transparency=LEAVES,allfaces=0:leaves_red,stdrot=true

mod名-models.txt

customblock:id=%ecru_BlockLeafFence,data=0,class=org.dynmap.hdmap.renderer.FenceWallBlockRenderer

 

ログとエラー

リロードするとこんな感じになります。(正常ログ)
なんで、BambooModのバージョンがちゃんと出ないかは謎

[13:54:46 INFO]: Reloading Dynmap…
[13:54:46 INFO]: [Dynmap] Unloaded 13 components.
[13:54:46 INFO]: [Dynmap] Stopping map renderer…
[13:54:47 INFO]: [Dynmap] Disabled
[13:54:47 INFO]: [Dynmap] Using ops.txt for access control
[13:54:47 INFO]: [dynmap] Using PermissionsEx 1.22.10 for access control
[13:54:47 INFO]: [Dynmap] Mod Support processing completed
~略~
[13:54:47 INFO]: [Dynmap] BambooMod[Minecraft@MC_VERSION@ var@VERSION@] textures enabled
~略~
[13:54:47 INFO]: [Dynmap] Loaded 23 shaders.
[13:54:47 INFO]: [Dynmap] Loaded 83 perspectives.
[13:54:47 INFO]: [Dynmap] Loaded 14 lightings.
~略~
[13:54:47 INFO]: [Dynmap] Register commands
[13:54:47 INFO]: [Dynmap] Enabled
[13:54:47 INFO]: Dynmap reloaded

そして、プレイヤーがログインすると

[14:03:51 INFO]: [Dynmap] Loading resource pack standard
[14:03:53 WARN]: [Dynmap] Resource assets/buildcraft/textures/blocks/blockFrame.png for mod BuildCraft|Core not found
~略~

リロード直後はサーバ側のテクスチャデータ(リソースパック)を読み込んで無くて、必要に応じて読み込むようですね。必要なテクスチャデータが参照できない状況になっているとここで「not found」と出るので、調査の際の参考になります。

たとえば、「mod名-texture.txt」に記述ミスがあると以下のように出ます。エラーの表示はどうも複数箇所有ったとしても一番最初のエラーしか出ず、以後はこの設定ファイル自体が無効扱いになっているように見えます。

[12:27:01] [Server thread/INFO]: [Dynmap] BambooMod[Minecraft@MC_VERSION@ var@VERSION@] textures enabled
[12:27:01] [Server thread/FATAL]: [Dynmap] Format error – line 22 of dynmap/renderdata/bamboo-texture.txt: invalid ID – sakuraLeaves

参考ページ

コメントを残す

これらのHTMLタグが利用可能です

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

  

  

  

Time limit is exhausted. Please reload CAPTCHA.

A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.