【Windows/macOS/Linux】画像ブロック地図変換ツール「MCPixlr」1.1.0【2/12更新】

開発したツールの公開や、見つけたツールの紹介などはこちらでどうぞ!
  • (PostNo.294636)

【Windows/macOS/Linux】画像ブロック地図変換ツール「MCPixlr」1.1.0【2/12更新】

投稿記事by 燃えブタ » 2017年1月30日(月) 20:30

MCPixlr とは

画像ファイルから Minecraft 内で利用できる Schematic や地図データに自動で変換するツールです。

起動方法

JAR ファイルがあるディレクトリに cd することをおすすめします。

JRE がインストールされており path が通されている場合は、コマンドプロンプト (端末、ターミナル) で以下のようなコマンドを実行します。
コード: 全て選択
java -jar MCPixlr-x.x.x.jar

macOS では JRE がプリインストールされています。パスを通さない場合は、以下のようなコマンドを実行します。
コード: 全て選択
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java -Xdock:name=MCPixlr -jar MCPixlr-x.x.x.jar

スクリプトファイルを同梱しているので、そちらで簡単に起動できます。

使い方

① 初回起動時にどのバージョンやリソースパックを使用するかを問うダイアログボックスが表示されます。
  <internal> で内部リソースから、1.11.0 などのバージョンでそのバージョンから読み込みます。
  配布マップ等でオリジナルリソースパックや配布されているリソースパックを利用する場合は「リソースパックの参照...」を選択してリソースパックを開きます。
  テクスチャサイズは 16 × 16 以外でも構いません。(この設定は「設定(S)...」>「テクスチャの選択(T)」から再設定することができます)

② 変換する画像ファイルを選択、もしくはウィンドウ内にドラッグアンドドロップして開きます (一部の OS ではドラッグアンドドロップに対応していない場合があります)。
  Windows では、モダンブラウザであればブラウザから画像を直接ドラッグアンドドロップして開くこともできます。

③ 各種設定を行います (ほとんどのコンポーネントにツールチップを付けているのでヘルプとしてご活用ください)。

④ 「変換(C)」をクリックします。進捗状況はプログレスバーで表示されます。

⑤ 変換が完了すると、ダイアログボックスが表示されます。

ブロックアートについて

Schematic (スキマティック) 形式に変換されます。
テクスチャ設定に従い、ブロックのテクスチャ画像から平均色を算出し変換が行われます。

Schematic をゲーム内で利用するにあたり、MCEdit や WorldEdit などの外部ツール、MOD・プラグインが必要になります。

地図データについて

ゲーム内で直接利用できる map_<#>.dat 形式に変換されます。
保存場所は、利用するワールドのディレクトリ (./.minecraft/saves/<ワールド名>) 内の data フォルダ内を推奨します。
チート権限や OP 権限が有効な場合は以下のコマンドを実行することで、プレイヤーに地図を付与することができます。

コード: 全て選択
/give <対象> minecraft:filled_map 1 <地図 ID>

1.8 以降では <対象> を @p にすることで自プレイヤーを対象にできます。
コマンドブロックで <対象> を @p にした場合は、実行したコマンドブロックに最も近いプレイヤーが対象になります。

地図 ID は保存時に設定した「地図 ID の起点」から列順になっています。

誤差拡散について

誤差拡散とは、誤差を一定の法則で配分することで、グラデーションや絶妙な色の違いを再現したり補間したりするものです。
MCPixlr では、以下の 8 種類の誤差拡散法をサポートしています。

:fth: Floyd-Steinberg
:fth: Jarvis, Judice & Ninke
:fth: Stucki
:fth: Burkes
:fth: Stevenson & Arche
:fth: Sierra Filter Lite
:fth: Sierra 2 Line
:fth: Sierra 3 Line

(無効) を選択すると誤差拡散はされず、べた塗り (グラデーションが段階的になったり、灰色っぽくなったり) になります。
写真やイラストの場合はいずれかの誤差拡散を、色数の少ないイラストやドット絵の場合は (無効) を推奨します。

アニメの画像 (手書きのイラスト、アニメのキャプチャ画像など) の場合は、肌色やピンク色などの淡い色が多いため、うまく再現されない場合があります。

プレビューについて

「プレビューを表示」チェックボックスにチェックを入れることで、毎回の変換後にプレビュー画像が生成されダイアログボックスに表示されます。
プレビュー画像の解像度は、原則として画像オブジェクトが Java 仮想マシン最大メモリ領域の 3 分の 1 までに収まるように設定されています。

スクリーンショット

MCPixlr 本体
10-110.PNG
Windows 10 スクリーンショット

使用例 (地図データ)
mc110.png
変換結果例 (地図モード)


ダウンロード

MCPixlr-1.1.0.zip
MCPixlr 1.1.0
(616.23 KiB) ダウンロード数: 172 回

1.1.0
:fth: 誤差拡散後に分割するように変更
:fth: 17w06aで変更された地図カラーに対応
  17w06aで変更されたブロック (羊毛系など) のテクスチャは「設定(S)...」より再設定できます
:fth: 1.6の地図カラーの誤りを修正

更新履歴
1.0.0
:fth: 公開
MCPixlr 1.0.0
(615.32 KiB) ダウンロード数: 33 回

全バージョンのダウンロード

使用ライブラリ

:fth: GSON 2.8.0 (Minecraft のバージョン JSON の読み取りに使用します)

システム要件

:fth: Java SE 1.8 以降がインストールされている
:fth: JavaFX 1.8 以降がインストールされ、JRE パスに通されている (JRE にデフォルトで同梱されています)
:fth: macOS の場合は、eAWT が JRE パスに通されている (macOS 用 JRE にデフォルトで同梱されています)

動作検証済み環境

:fth: Windows XP   Java SE 1.8
:fth: Windows 10   Java SE 1.8
:fth: Mac OS X 10.11  Java SE 1.8
:fth: macOS 10.12   Java SE 1.8
:fth: Ubuntu 16.04  Oracle Java 8 Runtime
  (OpenJDK での動作は未検証です)

アンインストール方法

JAR ファイルが格納されているディレクトリごと削除します。

免責

このツールの使用は自己責任でお願いします。
このツールによって発生した如何なるトラブルに関して、作者 (燃えブタ) は一切責任を負いかねますので、あらかじめご了承ください。

TODO リスト
:fth: 地図データ (map_<#>.dat) →画像化 (所謂逆変換)
:fth: 複数の画像の変換
:fth: 変換の高速化
:fth: 使用メモリの削減


ご要望や不具合報告などありましたら、この非公式フォーラムで受け付けます。
アバター
燃えブタ
ID:c9eae965
大工さん
 
記事: 56
登録日時: 2015年5月07日(木) 07:04
お住まい: 東京都

  • (PostNo.310366)

起動ができなくなった

投稿記事by 名乗るほどのものでもございやせん » 2017年11月16日(木) 14:13

D:\MCPixlr-1.1.0>java -jar MCPixlr-1.1.0.jar
設定の読み込みに失敗しました
java.io.FileNotFoundException: mcpixlr.properties (指定されたファイルが見つかり ません。)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(Unknown Source)
at java.base/java.io.FileInputStream.<init>(Unknown Source)
at java.base/java.io.FileInputStream.<init>(Unknown Source)
at moe.MoeMoePig.MCPixlr.util.SManager.load(SManager.java:27)
at moe.MoeMoePig.MCPixlr.GUI.Main.<init>(Main.java:117)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$8(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$9(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/google/gson/Gson
at moe.MoeMoePig.MCPixlr.util.Utils.<clinit>(Utils.java:24)
at moe.MoeMoePig.MCPixlr.GUI.Dialogs.showMCVersionJa(Dialogs.java:44)
at moe.MoeMoePig.MCPixlr.GUI.Main$23.run(Main.java:874)
at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue.access$500(Unknown Source)
at java.desktop/java.awt.EventQueue$3.run(Unknown Source)
at java.desktop/java.awt.EventQueue$3.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.google.gson.Gson
at java.base/java.net.URLClassLoader.findClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 17 more

9月ごろには起動、使用できていたのですがこのように出てしまい起動することができません。どのようにすれば使用できるようになるのでしょうか。
Windowsです
名乗るほどのものでもございやせん
ID:ea154448
 

  • (PostNo.310731)

Re: 起動ができなくなった

投稿記事by 燃えブタ » 2017年11月25日(土) 19:13

名乗るほどのものでもございやせん さんが書きました:9月ごろには起動、使用できていたのですがこのように出てしまい起動することができません。どのようにすれば使用できるようになるのでしょうか。
Windowsです

ご利用ありがとうございます。並びに、ご不便をおかけして申し訳ございません。

スタックトレースを拝見したところ、JSON のシリアル化および逆シリアル化を行う Gson ライブラリが正常に読み込まれていないようです。
よろしければ、お使いの Windows のシステムバージョンならびに Java 仮想マシンのバージョンを教えていただけますか。
頂いた情報を元に本現象の発生原因の特定およびご案内をいたします。

それぞれ以下のコマンドをコマンドプロンプトで実行することで確認することができます。
ハウツー: コマンドプロンプトを開くには?
以下の手順に従ってください。
① キーボードの Windows キーを押しながら R キーを押します。
② 表示されたダイアログボックスのドロップダウンリストに「cmd」と入力します。
③ OK ボタンをクリックします。
win_cmd.PNG
win_cmd.PNG (9.55 KiB) 表示数: 243 回

:fth: Windows のシステムバージョン
コード: 全て選択
ver
Enter キーを押して実行します。
出力される文字列は、以下のような形式になっているはずです:
Microsoft Windows [Version X.X.XXXXX.XX]

:fth: Java 仮想マシンのバージョン
コード: 全て選択
java -version
Enter キーを押して実行します。
出力される文字列は、以下のような形式になっているはずです:
java version "X.X.X_XXX"
Java(TM) SE Runtime Environment (build X.X.X_XXX-XXX)
Java HotSpot(TM) 64-Bit Server VM (build XX.XXX-XXX, mixed mode)
アバター
燃えブタ
ID:cc74f86b
大工さん
 
記事: 56
登録日時: 2015年5月07日(木) 07:04
お住まい: 東京都


Return to ツール 公開/紹介

x