HONDASHIブログ

ブログ形式での情報の蓄積も悪くないかなと思い、 いまさら始めてみたブログ。
 
 
プロフィール

HONDASHI

Author:HONDASHI
ナナチかわいいよナナチ

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ

スポンサーサイト 

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

OverviwerMODテクスチャ追加経過 2 

IC2の強化ドアをバニラからコピペ&テクスチャ指定変更でやってみると
doortest.jpg
上下の扉がメチャクチャに…
単にコピペじゃダメみたいですね。
扉の上下判定や開閉判定を指定してる所が違うとなると、
そこまで詳しくない私が調べるのは、ちと大変そうです。

あと、前回の強化ガラスや、描画できてないIC2ブロックの下の土がなくなる現象も出てますね。
これもどこかの記述が悪さしてるのでしょうか。
とりあえず描画出来る簡単なブロックから移植していった方がよいのかしら。
スポンサーサイト

OverviwerMODテクスチャ追加経過 

開いてる時間にちまちま移植してみてるのですが、ちょっと壁が…

とりあえずはIC2だろうと記述が単純な鉱石の後、コンフィグファイル内のブロックを上から順にやっていった。
ケーブルがtekkit版に無い…IC2のクロップはバニラの苗と同じ描画にしてる…
まぁ、これらは後回しにするとして(建材って訳でもないし、ケーブルは描画したいけど)

今の悩み事は、ReinforcedDoor(強化ドア)がtekkit版だと
バニラのドアの記述に追加してブロックIDでテクスチャ変えてるんですよ。
そう、モジュール化をする欠点としてバニラの記述の再利用が出来ない
(再利用するには出来るように書き換えなければならない)
もしくはドアの記述を丸々コピペするしか無いが、ドアの方向や開閉の判定、ドア上下の判別と記述が長いんですよね。
動作に違いがなければ再度バニラのドアの記述してもいいのかなとも思う。

あと、モジュール化の弊害として多少は実行速度遅くなるんだろうなぁと思った。
まぁ、少なくとも自分の鯖ではレンダリングを誰もいない早朝にまったりさせてるから、
速度とかそんなに考えなくてもいいんですけどね。

インゲーム
ingame.jpg
Overviewer
test.jpg
赤い松明みたいなのは、IC2のダイナマイトですが設置する前のレンダリングですね。
ケーブルと強化ドアは、ブロックはあるけど記述してない状態、これだと一個下の土も消えるんですね。
あと強化ガラスがきちんと透けてますが、下の土が芝無しになっちゃってます、なんとかなるかは今のところ謎。

MinecraftOverviewerのテクスチャ追加をモジュール化 

まずはじめに考えたのはMinecraftOverviewerでMODのブロックをレンダリングしたいということ。
そこで調べたら、githubのDiscussionに似たようなものが。
https://github.com/overviewer/Minecraft-Overviewer/pull/854
ここのskeightさんがちょっとバージョン古いけど、MOD対応版を作っていたので、
それを最新のOverviewerに移植でいいかなと思った。

で、ソースを見てみたらtextures.pyの中にずらずらと追加していて管理しづらそうだったので、
なんとか各MOD毎にでもファイル分けてモジュール化出来ないだろうか、いや出来るだろう。
と思い立ったのが数週間前、開いた時間でちょくちょくpythonを勉強しながらソース弄って何とか形になったものがこちら。
https://github.com/HONDASHI/Minecraft-Overviewer/tree/HONDASHI
ビルド方法は前述の通り。

テクスチャは実行するoverviewer.pyと同じ階層にminecraft.jarの形で置いておくのが一番分かりやすいと思う。
なので./minecraft(不可視フォルダ)内にあるのは消したほうが良いかもしれない。
rm -fr ./minecraft

元のものからの変更点としては、
・テクスチャを用意して
・きちんとした書式でmod_texturesフォルダ内にファイルを作り
・mod_textures\__init__の__all__というリストの代入にそのファイル名(拡張子無し)を追加
すると、MODのブロックもレンダリングされるはず。
せっかくなのでバニラも同様の仕組みでファイル作ったので、textures.pyは大分小さくなってます。

あとは、上でも紹介したskeightさんのtekkit版を参考と言う名のコピペでMOD対応して行けたらなと画策してます。

普段プログラミングなんてしない人間が仕様を勉強しながら作ったので、変な記述になってるかもしれません。
何処かに志同じくするpythonistさんがいたら改良して公開して欲しいなぁ。

MinecraftOverviewerをソースからビルドする 

基本的にOverviewer公式のページ参照
http://docs.overviewer.org/en/latest/building.html

すでにyumでOverviewerをインストールした後なら、一応yumでアンインストールする。
yum remove Minecraft-Overviewer

gitはよく分からなかったので、ソースはgithubから直接入手
https://github.com/overviewer/Minecraft-Overviewer/
[↓zip]みたいなボタンを押すとzip形式で落とせるので、適当な所に解凍。

ビルドに必要なpythonのdevel,PIL,numpy,gccをyumで一気にインストール

yum install -y python{,-imaging,-numpy}{,-devel} gcc

さっき解凍したソースのディレクトリに行く

cd Minecraft-Overviewer

setpu.pyを引数buildをつけてpythonに投げる

python setup.py build

以前のCentOSはデフォルトのpythonが古いのか、公式の解説はわざわざpython26としていて、
overviewer.pyの中身も書き換えてねって書いてます。
ただ、CentOS6.2finalの時点では最初から2.6.6が入ってるので、基本的にただの"python"で問題ないです。
ちなみに、Minecraft Overviewerはpythonのバージョンがが2.6以上3.0未満でないと動かないので注意しましょう。

minecraftテスト環境覚書2 

Minecraft-Overviewerを導入して、外部から見られるようにする

まず、Apacheの導入

yum install httpd


ここでセキュリティ関係だったり利便性だったりで設定した方が良いことがあるらしいが、
バッサリと割愛、後でググる

Minecraft-Overviewerの導入
http://docs.overviewer.org/en/latest/installing/
CentOSはここのを一番下を参照

wget -O /etc/yum.repos.d/overviewer.repo http://overviewer.org/rpms/overviewer.repo


yum install Minecraft-Overviewer


この2つを順に実行するだけ
レポジトリを追加して、yumでインストール。簡単ですね
実行時に使うoverviewer.pyは/usr/bin/に入る

そのまま実行しようとすると"テクスチャが無い"と怒られるので

wget -N http://s3.amazonaws.com/MinecraftDownload/minecraft.jar -P ~/.minecraft/bin/


適した場所にminecraft.jarもしくはterrain.pngが無ければならないのですが、
linux系だと ~/.minecraft 以下のようです
windowsだと %appdata%/.minecraft ですね
また、設定ファイルやコマンドラインオプションでテクスチャパスを指定出来ますが、後で

ここまでやれば、バニラのマップを生成する準備は完了
overviewer.py [level.datのあるパス] [出力先]
最低限必要な要素はこれです
出力先フォルダに色々生成されてる中のindex.htmlを開くとレンダリングされたマップが見られます
例えばroot権限で

overviewer.py ~/.minecraft/world /var/www/html/mcmap


これで出力して(level.datのパスは例です)

service httpd start


すれば、http://[ipアドレス]/mcmap をwebブラウザで開くとマップが見られます

※実行出来ない時は権限やディレクトリが存在するか等を再確認
デスクトップ ログイン状態 ノート ログイン状態
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム
QRコード
QRコード
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。