このページは?
Minecraftにおいては、アドオンまたはMODを制作することにより、オリジナルのアイテムやブロックを制作できることが知られています。もちろん、3Dのブロックなど、立体の概念を持ったものも作ることができますし、巷には多くの立体アイテムやブロックが出回っていますね:

一般的には、こうした3Dのアイテムは、BlockBenchというソフトで制作することが王道です。元来、マインクラフトにおいてこうしたアイテムを導入したい場合、複雑なjsonファイルをmodelsフォルダ内に制作しなければならないところ、BlockBenchはこうした複雑なjsonファイルを簡単なUIと操作で制作することができます:

この辺りの制作方法については、下記記事が詳しいです:
さて、一般的な立体ブロックはBlockBenchのようなソフトを用いることで事足りるでしょう。しかし、全てがそれで功を奏するとは限りません。特に、例えば以下のようにブロックの要素の一部が直方体ではない場合や、円を含む立体を制作する場合が該当します。

このようなブロックをBlockBenchで制作する場合、ブロック一つ一つの座標を厳密に計算し、手間をかけて配置しなければなりません。これは少々手間です。
そこで、本サイトを作りました。本サイトは、BlockBenchを介さずとも画像ファイルからモデルのjsonファイルを出力する、WEBジェネレーターです。統合版は言わずもがな、Java版にも対応していますので、汎用性は高いかと思われます。
実際、これを使って三角形の辺を持つ「止まれ」の標識を実装してみた例がこちらです:

このように、完成度の高い立体ブロックやアイテムを制作することができます。是非ご活用ください!
機能解説
以下は、本ジェネレーターの機能を解説します。

画像の読み込み
ボタンをクリックすると、画像を読み込むことができます。これは、3Dモデルの元となる画像であり、必須です。また、pngなど透過可能な画像ファイルであることを強く推奨します。
- 画像内の透過する部分には、ブロックが配置されません
最小ブロック単位
非常にリアルな立体を作成するとはいえ、極めて微小なブロックによって構成しています。この微小なブロックの大きさを定義するのが、この設定です。デフォルトは0.1で、あまり変更する必要はないかと思いますが、細かくしすぎるとマイクラが重くなる懸念があるため、大きく変えないほうがよいでしょう。
方向
xy平面・xz平面・yz平面の3つから1つを選ぶことができます。そのうち、xy平面がデフォルトとなっていますが、これはマイクラにおける直立状態に相当します。お好みに設定してください。
幅(奥行き)
平面の画像を立体にするため、奥行きという概念を必然的に追加することになります。この奥行きの幅を定義するのがこの項目です。デフォルトは1となっていますが、必要に応じて変えてください。
座標範囲
縦横の最大ブロック数です。座標範囲16で、マイクラにおける1ブロックに相当します。これを超過することはできますが、ブロックの場合、座標範囲32を超えることはできない点には留意しましょう。
- エンティティなら32を超えてもOKです
最適化モード
本来であれば微小なブロック単位に分けて立体を生成するところ、これをオンにすることで一定のブロックにまとめて出力されます。これによって、マイクラの負荷軽減につなげることができます。デフォルトでオンになっていますが、特にオフにする理由はないと思われます。
プラットフォーム
統合版またはJava版のうち1つを選ぶことができます。ご自身の制作・プレイ環境に応じて変更しましょう。
このとき、統合版に設定するとgeometryのIDを設定する必要があります。このとき設定された値が、ビヘイビアパックのjsonファイル内で定義するアイテムやブロックにおけるキーと一致している必要があります。
- 自動で”geometry.”が追加されます
一方で、Java版に設定すると、このモデルの名前とテクスチャー名を設定する必要があります。この時、テクスチャー名は「(名前空間):blocks/(名前)」の形式である必要があるので注意しましょう。
出力
画像を設定した状態で、「JSONを生成」と書かれた青いボタンを押すことで、モデルのJSONファイルが出力されます。複雑な項目が色々ありますが、これはBlockBenchなどで生成される形式と同じものです。
出力されたJsonファイルは、「クリップボードにコピー」を押すことでそのままコピーできるほか、jsonの形式でダウンロードすることも可能です。
- このJsonファイルは、BlockBenchのワークスペースにドラッグアンドドロップすることでインポートできます
jsonファイルとしてダウンロードする場合、統合版であれば「RP/models/blocks」または「RP/models/entity」内に配置しましょう。この辺りの詳しい作り方については、下記の記事が詳しいです:
- 別途ブロックの定義と、ジオメトリ・テクスチャーの紐づけが必要です
MODであれば、jsonファイルは「src/main/resources/assets/(名前空間)/models/blocks」に配置することになっています。
要望など
本ジェネレーターに関して、ご意見やご要望などありましたら、本記事コメント欄までお願いします。
今回解説したスクリプトを使って、友人・コミュニティー内で24時間いつでも遊べるマルチサーバーを構築したい場合は、VPS(レンタルサーバー)の導入が近道です。
私の開発・検証環境では「シンVPS」を使用しています。
以前は自宅PCでホストしていましたが、PCの電源を切り忘れるストレスや、電気代を考慮して移行しました。シンVPSを選んだ決め手は、圧倒的なコストパフォーマンスです。
- 月額の安さ 4GBプランでも月額1,200円程度(長期契約なら1,000円以下)と維持費が安く済みます。
- 高速な読み込み 全プランでNVMe SSDを採用しており、ワールドの読み込みや重いコマンド処理でもラグを感じにくいです。
以下のリンクから申し込むと初回利用料金が10%OFFになります。
(1ヶ月以上の契約対象。「安くて速い」サーバーを探している方はぜひ試してみてください)
(10%OFF適用) マルチサーバーの立て方はこちら