生活 その他

【マイクラドット絵】リヴァイ兵長をプログラミング!

投稿日:2020年12月31日 更新日:

完成品

縦204×横197
リヴァイ

作り方概要

ざっくり言うと、Pythonでプログラミングしました。
環境構築及び設計図の下準備に2時間ほどかかったと思います。
そのあとはプログラムを実行して瞬作!
作成後の微調整を施して完成しました。

以下からは手順の概要を書いていきます。

元画像の取得

こちらから拝借しました。
https://bibi-star.jp/posts/6881

設計図作成

元画像を読み込ませると、Excelのドット絵ファイルを出力してくれるサイトです。
ドット絵ナニカ

カラー設定

出力されたExcelではマインクラフトのブロックコード等になっていないので、
対応する色を設定しなおしていきます。
これがちょっとだけ面倒です。

リヴァイの場合、以下のように設定しなおしました。

Excel出力されたカラー番号:ドット絵ナニカで出力されたExcelに設定されていたカラー番号
ブロック番号:マインクラフトのブロック番号(24:砂岩、35:羊毛)
ブロックのデータ番号:ブロック番号の枝番になる番号(ブロック番号の種類に該当)
※2は皮膚の近くだったのと、あまり数が無かったので1と同様に肌色想定で、「滑らかな砂岩」にしています。

ブロック番号
ブロックのデータ番号

Pythonのインストール

詳細は以下のサイトに譲ります。
https://www.python.jp/install/windows/install.html

Forge及びRaspberry Jam Modのインストール

Forge及びRaspberry Jam Modのインストールは、下記を参考にしました。
マインクラフトでpythonプログラミングをするための5つのステップ

私の場合、Minecraftのバージョンが1.16.4であったため、Forgeも1.16.4をインストールしましたが、「Raspberry Jam Mod」で使えるバージョンが異なるためかうまく読込ができなかったため、1.12.2(Raspberry Jam Modの最新Ver)に合わせております。
※本記事執筆時点(2020年12月31日)
Mincraft Forge 1.12.2

Raspberry Jam Modは以下から「mods.zip」をDLします。
https://github.com/arpruss/raspberryjammod/releases/tag/0.94

解凍したフォルダのうち、1.12.2に入っている「RaspberryJamMod.jar」を、
マインクラフトのmodsフォルダに置いて下さい。

カラーコードの変換

Excelでのカラーコードをマインクラフトのカラーコードに変換します。
先程の設定に対応した変換ツールを独自(VBA)に作りました。

マインクロフトのカラーコードは「ブロック番号_ブロックデータ番号」と、
アンダーバー(_)で区切るようにしています。
これは後程のPython側で処理しやすくするためです。

<出力結果>
['35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0','35_0'],
…(204行まで似たような行列が続く)

ソースコード(Python)

ファイル名:dot_levi.py

blockNo, blockDataNo = row[j].split('_')
⇒ここで、アンダーバー(_)で区切ったブロック番号とブロックデータ番号を各変数に格納しています。
 1つのブロック番号に固定すると、そのブロック番号以外で使いたい色があった場合に対応できないので、このような形式で保持するようしました。
 これにより、肌色に近い「滑らかな砂岩(24_8])」と、羊毛(35_XX)を、
 同時に扱えるようにしています。

プログラムの実行

・マインクラフトを起動します。
・コマンドプロンプトで、dot_levi.pyがおいてあるフォルダに移動し、
 「python dot_levi.py」と入力してEnterとします。

まとめ

・大規模なドット絵はPythonでプログラミングできる。
・Pythonプログラミングするには、Python/Forge/Raspberry Jam Modのインストールが必要。
・ドット絵ナニカというサイトを利用すると、設計図がほぼ出来上がる。
・作成時のブロックの指定に柔軟性を持たせるため、「ブロック番号_ブロックデータ番号」という形式にするとよい。
・元画像、設計図、マイクラに対応したカラーコードがあれば何でもつくることができる!!

所感

こういったクリエイティブなことを障害なくできることに、
プログラミングを仕事にしてきてよかったとしみじみ感じています。
本記事を切っ掛けに、あなたにもプログラミングを楽しんでもらえたらと思います。

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-生活, その他
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

【Bootstrap】共通ヘッダーをナビバーとしてデザインしよう!

概要 ヘッダーをナビバーとして実装します。 (SpringBootチュートリアルの共通ヘッダーを基に解説していきます) また、デザインはBootstrapのサンプルを基にしていますので、 そちらも一度 …

ストレッチポールは正規品と類似品のどちらがいいか?

正規品と類似品のどちらがいいか? ストレッチポールには正規品(LPN)と類似品があります。 「どちらがいいか?」という話になると、正規品の使用者である私としては正規品をお奨めします。 私も最初は類似品 …

正規表現で複数の箇所を入れ替える方法

複数の特定の箇所を入れ替えるテクニックです。 確認環境 Sakuraエディタ 置換方法 ここでは例として、:区切りの前後の文字列を入れ替えてみます。 置換前データ メニュー:AAA メニュー:BBB …

【DIY】オリジナルの靴棚を作って玄関を整理した話

今まではダイソーで買ってきたシューズボックスで整理していたんですが、量が増えると下の方がとりづらいし、長靴を置くスペースも確保したいということから靴箱を設置することにしました。 しかし、玄関に靴箱を置 …

【Bootstrap4】ボタンが黒字になる原因と対策

状況 btnタグの中の文字が黒字で表示されている場合の原因と対処法です。   原因 aタグに、href属性が無い。

&nbs …

■運営者プロフィール
IT業界10年のエンジニア。
PHP -> VBA -> Javaと渡り歩いてきて、今はJavaをメインにフリーランスエンジニアとして活躍中!

[保有資格]
・Java SE 11 Gold

一度はエンジニアを辞めざるを得なかった私が再びエンジニアとして復活した数奇な物語

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。