Signs and markers

「Signs and markers」の編集履歴(バックアップ)一覧はこちら

Signs and markers」(2012/11/11 (日) 22:17:34) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*Signs and Markers 看板とマーカー Overviewrは看板やマーカー、ポイント(原文points of interest:以下POI)をマップに表示できます。 普通の設定とはちょっと違うので、注意して見てみましょう。 *設定ファイル **フィルタ関数 フィルタ関数とはpythonの関数で、POIがどのにmarkerSetに属するかを決め、どのように表示するかを設定します。 引数は一つ(辞書:連想配列のようなもの)で、返り値は表示するために用意された文字列です。 例 #highlight(python){{ def signFilter(poi): if poi['id'] == 'Sign': return "\n".join([poi['Text1'], poi['Text2'], poi['Text3'], poi['Text4']]) }} もしPOIが合わなければ、何も返しません。 (Pythonの関数の仕様で、'return'無しに関数が終わった時にこうなります。) 引数はチャンクファイルから直接取得したTileEntityやEntityです。 プレイヤーの場所やスポーンのような特殊なEntitiyであることもあるでしょう。 上の例ではEntityが看板(sign)だった場合、書かれている4行を返します。 TileEntityやEntityについてもっと知りたければ、[[MinecraftWikiのChunk Format>http://www.minecraftwiki.net/wiki/Chunk_format]]を見て下さい。 ちょっと違う例 #highlight(python){{ def chestFilter(poi): if poi['id'] == "Chest": return "Chest with %d items" % len(poi['Items']) }} idがChest(チェスト)なら、チェスト内のアイテム数を取得していますね。 **特殊なPOI 2種類の特殊なPOIがあり、それぞれ特殊なIDをもっています。 :PlayerSpawn|スポーン位置を示しています。 プレイヤー名はEntityIdキーに、場所はx,y,zキーに格納されています。 :Player|プレイヤーの最後の位置を示しています。 プレイヤー名はEntityIdキーに、場所はx,y,zキーに格納されています。 >注 >プレイヤーの位置は、シングルであればlevel.datマルチであればplayer.datファイルから取得されます。 >位置情報はワールドをセーブした時のみ書き込まれますので、リアルタイムの情報というわけではありません。 player関係の例 #highlight(python){{ def playerIcons(poi): if poi['id'] == 'Player': poi['icon'] = "http://overviewer.org/avatar/%s" % poi['EntityId'] return "Last known location for %s" % poi['EntityId'] }} idがPlayerならiconに使用しているスキンの画像を取得して(上のURLの%sに自分がminecraftで使っているIDを入れてみるとわかります) 誰々の最後の位置はここだというメッセージを返してますね。 **レンダー辞書キー それぞれのレンダーでフィルターを使わなくても、複数使っても良いです。 設定したフィルタ関数は、レンダリングしたマップの'Signs'ドロップダウンメニューから選ぶことができるようになります。 例 #highlight(python){{ renders['myrender'] = { 'world': 'myworld', 'title': "Example", 'markers': [dict(name="All signs", filterFunction=signFilter), dict(name="Chests", filterFunction=chestFilter, icon="chest.png", createInfoWindow=False)] } }} 以下マーカー辞書で使えるキーの解説 :name|'Signs'ドロップダウンメニューで表示される名前。 :filterFunction|使用するフィルター関数。最低1つは引数が必要で、その返り値は文字列か何も無し。 ;icon|任意で追加。POIを表示するためのアイコンを指定。省略すると看板アイコン。 POIごとに違うアイコンを設定することの可能(上のPlayerの例を参照)。 :createInfoWindow|任意で追加。アイコンをクリックして情報ウィンドウを開くか否か。デフォルトはTrue。 :checked|任意で追加。マップを開いた時にこのマーカーグループが見えるかどうか。デフォルトはFalse。 *POIマーカーを生成 注 通常のoverviwer.pyでのマップレンダーではマーカーが更新&追加されません! 以下のオプションのどれかを使って、マップを生成しましょう **--genpoi オプション overviewer.pyを実行するときに--genpoiオプションを付けるとPOIマーカーを生成できます。 例 /path/to/overviewer.py --config /path/to/your/config/file.conf --genpoi >注:--genpoiオプションを付けるとマップは生成されません。マーカーのみの生成になります。 **genPOI.py genPOI.pyというスクリプトもあり、直接使う事ができます。 例 /path/to/overviewer/genpoi.py --config=/path/to/your/config.file アウトプットディレクトリに必要なJavaScriptファイルも生成してくれます。
*Signs and Markers 看板とマーカー Overviewrは看板やマーカー、ポイント(原文points of interest:以下POI)をマップに表示できます。 普通の設定とはちょっと違うので、注意して見てみましょう。 *設定ファイル **フィルタ関数 フィルタ関数とはpythonの関数で、POIがどのmarkerSetに属するかを決め、どのように表示するかを設定します。 引数は一つ(辞書:連想配列のようなもの)で、返り値は表示するために用意された文字列です。 例 #highlight(python){{ def signFilter(poi): if poi['id'] == 'Sign': return "\n".join([poi['Text1'], poi['Text2'], poi['Text3'], poi['Text4']]) }} もしPOIが合わなければ、何も返しません。 (Pythonの関数の仕様で、'return'無しに関数が終わった時にこうなります。) 引数はチャンクファイルから直接取得したTileEntityやEntityです。 プレイヤーの場所やスポーンのような特殊なEntitiyであることもあるでしょう。 上の例ではEntityが看板(sign)だった場合、書かれている4行を返します。 TileEntityやEntityについてもっと知りたければ、[[MinecraftWikiのChunk Format>http://www.minecraftwiki.net/wiki/Chunk_format]]を見て下さい。 ちょっと違う例 #highlight(python){{ def chestFilter(poi): if poi['id'] == "Chest": return "Chest with %d items" % len(poi['Items']) }} idがChest(チェスト)なら、チェスト内のアイテム数を取得していますね。 **特殊なPOI 2種類の特殊なPOIがあり、それぞれ特殊なIDをもっています。 :PlayerSpawn|スポーン位置を示しています。 プレイヤー名はEntityIdキーに、場所はx,y,zキーに格納されています。 :Player|プレイヤーの最後の位置を示しています。 プレイヤー名はEntityIdキーに、場所はx,y,zキーに格納されています。 >注 >プレイヤーの位置は、シングルであればlevel.datマルチであればplayer.datファイルから取得されます。 >位置情報はワールドをセーブした時のみ書き込まれますので、リアルタイムの情報というわけではありません。 player関係の例 #highlight(python){{ def playerIcons(poi): if poi['id'] == 'Player': poi['icon'] = "http://overviewer.org/avatar/%s" % poi['EntityId'] return "Last known location for %s" % poi['EntityId'] }} idがPlayerならiconに使用しているスキンの画像を取得して(上のURLの%sに自分がminecraftで使っているIDを入れてみるとわかります) 誰々の最後の位置はここだというメッセージを返してますね。 **レンダー辞書キー それぞれのレンダーでフィルターを使わなくても、複数使っても良いです。 設定したフィルタ関数は、レンダリングしたマップの'Signs'ドロップダウンメニューから選ぶことができるようになります。 例 #highlight(python){{ renders['myrender'] = { 'world': 'myworld', 'title': "Example", 'markers': [dict(name="All signs", filterFunction=signFilter), dict(name="Chests", filterFunction=chestFilter, icon="chest.png", createInfoWindow=False)] } }} 以下マーカー辞書で使えるキーの解説 :name|'Signs'ドロップダウンメニューで表示される名前。 :filterFunction|使用するフィルター関数。最低1つは引数が必要で、その返り値は文字列か何も無し。 ;icon|任意で追加。POIを表示するためのアイコンを指定。省略すると看板アイコン。 POIごとに違うアイコンを設定することの可能(上のPlayerの例を参照)。 :createInfoWindow|任意で追加。アイコンをクリックして情報ウィンドウを開くか否か。デフォルトはTrue。 :checked|任意で追加。マップを開いた時にこのマーカーグループが見えるかどうか。デフォルトはFalse。 *POIマーカーを生成 注 通常のoverviwer.pyでのマップレンダーではマーカーが更新&追加されません! 以下のオプションのどれかを使って、マップを生成しましょう **--genpoi オプション overviewer.pyを実行するときに--genpoiオプションを付けるとPOIマーカーを生成できます。 例 /path/to/overviewer.py --config /path/to/your/config/file.conf --genpoi >注:--genpoiオプションを付けるとマップは生成されません。マーカーのみの生成になります。 **genPOI.py genPOI.pyというスクリプトもあり、直接使う事ができます。 例 /path/to/overviewer/genpoi.py --config=/path/to/your/config.file アウトプットディレクトリに必要なJavaScriptファイルも生成してくれます。

表示オプション

横に並べて表示:
変化行の前後のみ表示: