マインクラフトのレッドストーン回路でマルチプレクサー

今回は、マインクラフトで組み合わせ回路のマルチプレクサーを作りました。2bitの信号を切り替えるだけですが、マインクラフトでは単純に回路図をレッドストーン回路で実現すると、1つ1つのブロックが多いため最適化する必要があるのが分かりました。

logisimで作ったマルチプレクサーの回路図
マインクラフトでマルチプレクサーを実装

画面キャプチャーのように、2ビットの切り替えだけでも何も考えずにブロックを配置するとこの大きさです。マインクラフトは、レッドストーンは15個分の信号しか伝わらないため、大きくすればするほどリピーターで調整する必要があります。

16ビットのマルチプレクサーを作るとなると、ブロックの並べ方をしっかり学ばないといけないようです。

 

マインクラフトのレッドストーンでXOR回路

マインクラフトのレッドーストーンで排他的論理和のXOR回路を作成しました。

 

http://minecraft.gamepedia.com/File:StandardLogicGates.png

 

今回作成した排他的論理和XOR回路

マインクラフトでは、レッドストーンとブロックを繋げてさらにレッドストーントーチを置くことでNOT回路になります。そして高低差をうまく使うことで小さなサイズで、XOR回路を作る事が可能です。

一度Logisimで、回路図を書いてみました。レッドストーン回路はどこが接続されているのかわかりづらいですが、以下のような回路図にしてしまうと分かりやすいです。また、XOR回路の出力にNOT回路を付けるとXNOR回路になります。

 


マインクラフトのBlockクラスのgetItemDroppedのテスト方法

マインクラフト1.11.2のModding(モド開発)のチュートリアルをやっていて問題なく実装はできたけどテストする方法が分からない場面に出くわしました。

テストが難しいケース

ワールド作成時にクリエイティブモードにすると、ブロックなどはドロップせずに消滅してしまいます。そのためこのモードでは、ブロックのドロップなどのテストができません。その場合サバイバルモードにすればよいのですが、ブロック強度がダイアモンドと同等にした場合、ダイアモンドのツルハシ(Pickaxe)がないため、ゲームで入手しなければなりません。また、サバイバルモードの場合、自作ブロックがないため見つける方法がありません。

解決方法

このような場合は、サバイバルモードで、チートコマンドを使ってツルハシとブロックを入手するのが良いです。

ダイアモンドのツルハシの入手方法

チート可能にしておいて、/を入力するとチャット欄が表示されるので、以下を入力します。diamond_ぐらいまで入力してタブキーを押すと補完候補が出てきます。

http://gamehackerblast.com/post-16636/

 

自作ブロック生成方法

まずは、F3キーでデバッグ情報を表示して、XYZまたはBlockで座標を確認します。次に、/setblockコマンドでブロック出現先を指定し、以下のようにminecraft:で既存のブロックを指定するか、modidを入力してタブキーで補完するかでブロックが指定できます。

以下は、tutというmodidで、tut_blockという自作ブロックのコマンド例です。

これで、作成したブロックを出現させることができます。あとは、getItemDroppedのコード内にブレイクポイントを立てて実行すあれば補足できます。

自作ブロックを/setblockコマンドで出現させたところ

以下は、ダイアのつるはしで殴って、ブロックをアイテムに変えたところです。この時に、Block#getItemDroppedが呼び出され、ブロックがソースコードで指定したアイテムに変わります。

 

ソースコード

ソースコード自体は、難しいことはしていません。

 

マインクラフトのMod開発環境をバッチファイルなしでIntelliJで用意する方法

IntelliJはGradleに対応しているので、マインクラフトのModを開発する場合は、Powershellでバッチファイルを実行する必要はありません。すべてIntelliJをクリックするだけで出来るので手軽に開発環境を作ってしまいましょう。この記事では、開発環境の構築、実行、デバッグ方法、ホットリロードを説明します。

前提条件

以下をインストール済み

  • JDK (なるべく新しいもの)
  • IntelliJ IDEA 2016.3.4

いくつか用語と開発ツールの解説

IntelliJ  (インテリジェイ) Javaの開発環境

FORGE MDK – マインクラフトのModを開発するときの土台になる開発ライブラリー

Maven(メイベン) – Javaの依存関係解決ツール

Gradle(グラドル) – Javaのプロジェクト管理ツール

Javaとメモ帳で開発するのは面倒なので、IntelliJという強力な開発環境を使います。マインクラフトのMod(モド)で遊んだことがある人は知っているかもしれませんが、Modは大抵FORGE(フォージ)を土台にしています。そのためFORGEの開発者向けのMDK (minecraft development kitの略?)を使います。

またプロジェクトを管理するのに、Gradle(グラドル)という開発ツールを使っています。これがさらに内部でMaven(メイベン)という依存関係解決ツールを使っています。開発中はほとんど意識しませんがとりあえずこんな感じで動いています。

 

MDKの展開とワークスペース作成

Minecraft FORGE(http://files.minecraftforge.net/) にMdkアイコンがあるのでダウンロードして展開します。現時点では、1.11.2-13.20.0.2228が推奨(Recommended)でした。

展開して中を確認するとbuild.gradleファイルがあります。これがプロジェクト管理ファイルになります。

IntelliJを起動して、ダイアログが表示されたら[Import Project]で以下の[Select File or Directory to Import]ダイアログを表示して、build.gradleを選択します。

インポートの設定ダイアログが表示されますがそのままでよいです。

もしダイアログが出てこない場合は、IntelliJの[File]->[Open…]からbuild.gradleを開いても問題ないです。

これでプロジェクトが読み込まれます。

プロジェクトの初期化

setupDecompWorkspaceタスクの実行

IntelliJの右側にGradleアイコンが縦に表示されているので、クリックして一覧を表示し、以下画面のようにsetupDecompWorkspaceを右クリックして、Runで実行します。

最近のパソコンなら30秒ぐらいで終わるはずです。ビルド中はアイコンがくるくる回っていますが、終わると秒数が表示されます。以下のような感じです。

genIintellijRunsの実行

IntelliJの場合は、もう一つgenIntellijRunsタスクを実行します

「プロジェクトを再読み込みしますか?」と聞かれるのでYesをクリックします。

これで環境構築は完了です。


マインクラフトをIntelliJから実行

いままでと同様に、runClientタスクを右クリックで実行します。これは開発中ソースコードをビルドして、Modを有効にしてマインクラフトを起動します。

タイトル画面のModsボタンからMod List画面に行くと、Example Modが読み込まれているのが分かります。名前を変更していないのでExample Modのままです。

停止方法

IntelliJの下部分に実行中のタスクが表示されるので、そこの赤い資格のボタンで停止できます。

コンソールログ

IntelliJでコンソールログを表示するには、以下のアイコンをクリックします。

あとは、以下のように、右の縦のメニュー[1.Project]から、画像のように、src/main/java/com.example.examplemod/ExampleModを開くとここから開発が始められます。画像ファイルなどは、すぐ下のresourcesに入れていくことになりますが、ルールがあるのでちゃんと調べる必要があります。

 

デバッグとホットリロード

マインクラフトの開発中は、デバッグモードでマインクラフトを起動します。

デバッグモードで起動

デバッグモードでマインクラフトを起動する場合は、以下のようにDebugをクリックするだけです。

ホットリロード

ソースコードを修正したらすぐに反映されます。やり方は何かしらソースコードを修正して、メニューの[Build]からBuild Moduleをクリックすればよいです。

今リロードしますか?毎回聞かれるので、慣れたら、チェックボックスを入れて次回以降は表示しないようにしておきましょう。

リロードがうまくいった場合は、以下のステータスが表示されます。

 

サンプルソースコード

IntelliJのConsoleにログを出力するサンプルです。hello tick!!!の文字を変えたりしてホットリロードを確認してみてください。

 

配布

GradleタブのTasks/build/buildを右クリックして実行するとbuildタスクが実行され、build/libs/modid-1.0.jarが作成されるのでこれを配布すればよいようです。

 

まとめ

IntelliJでマインクラフト1.11.2のMod開発環境を構築しました。

 

参考資料

1.11.2のMod作成チュートリアル

1.11はまだほとんどありませんが以下が参考になりそうです。またYoutubeでもチュートリアルを作っている方がいるようです。

http://www.minecraftforum.net/forums/mapping-and-modding/mapping-and-modding-tutorials/2790483-1-11-2-forge-minecraft-forge-modding-tutorials-up

マインクラフトとRaspberry Jam Modでプログラミング01

マインクラフトでRaspberry Jam Modを使ってPythonでプログラミングをしたので、ニコニコ動画に動画をアップロードしました。

http://www.nicovideo.jp/watch/sm30628433

 

Wordpressにニコニコ動画を組み込むことはできないのでしょうか?方法が分かりません。

Minecraft1.11.2にRaspberry Jam Modの動作確認

この記事は、Minecraft1.11.2にRaspberry Jam Modをインストール の続きです。Raspberry Jam Modをインストールしたので、動作確認をします。

Minecraftからサンプルスクリプトを実行

Minecraftで/(スラッシュ)記号を入力すると、入力欄が表示されるので、そこで以下を入力してエンターキーを押します。

/pyはコマンドで、donutはPythonスクリプトファイルのです。これで前回コピーした、mcpipy\donut.pyをMinecraftから実行します。

mcpipyフォルダーにdonut.pyがある

 

/py donutと入力
エンターキーを押したら、ガラスの大きなドーナツが作られた!

これで、ドーナツができました。

WindowsからMinecraftを操作する

F3+Pキーで、一時停止を無効化

今度はWindowsからMinecraftを操作します。Alt+TabキーでWindowの切り替えができますが、フォーカスが外れると一時停止するので、F3+Pを同時押しして、府フォーカスが外れてもそのまま動作させるようにします。元に戻す場合はもう一度F3+Pを押せばよいです。またF3キーのみを押すとデバック情報が表示されます。

デバッグ情報は以下が参考になります。

http://minecraft-ja.gamepedia.com/%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E7%94%BB%E9%9D%A2

世界の再作成

ドーナツのように大きな構造物を作った場合は、一度タイトル画面に戻って、ワールド選択画面で、[Re-Create]ボタンでまっさらの状態にできます。

サンプルスクリプトhelloworld.pyを実行

PowerShellでサンプルスクリプトのフォルダーに移動して、helloworld.pyを実行します。するとマインクラフトでHelloWorld!と表示されます。

powershellでpythonを実行

 

helloworld.pyをちょっと修正して実行した画面

helloworld.pyサンプルスクリプトを見てみると、チャットに、”Hello world!”と表示し、自分の下にダイアモンドブロックを作成しているのが分かります。

 

たしかに自分の下の位置にダイアモンドがあった!

 

まとめ

Minecraft1.11.2にRaspberry Jam Modをインストール 」で、Modをインストールして、今回は、Minecraftから動かしたり、Windowsからも動かしてみました。Raspberry Jam Modはパソコンから操作できるのでいろんなことが出来そうです。

 

 


Minecraft1.11.2にRaspberry Jam Modをインストール

Minecraft1.11.2にComputerCraftModのインストール」で、マインクラフトの最新1.11.2を1.8.9の状態で遊べるようにしてそこにComputerCraft Modをインストールしました。今回は、Raspberry Jam Modをインストールします。

Raspberry Jam Modとは

パソコンからMinecraftをプログラミングで操作するModです。

マインクラフト1.8.9以上で動きます。

Raspberry Piという教育用コンピュータが5000円ぐらいで購入できます。これには無料のマインクラフトも入っていて、はじめからプログラミングでマインクラフトを操作できます。パソコン版のマインクラフトでも同じようにパソコン側からプログラミング出来るにするのが、このRaspberry Jam Modです。

http://www.instructables.com/id/Python-coding-for-Minecraft/

 

プロファイル作成

プロファイルの作り方が分からない場合は、以下を参考にしてください。

ComputerCraftModをインストールしたときに、マインクラフト1.8.9用のFORGEなどもインストールしたので、最新の1.11.2で、1.8.9の環境を用意します。

1.8.9用のFORGEでプロファイルを作成します。

名前は、1.8.9_RaspberryJamModにして、バージョンを前回インストールした、マインクラフト1.8.9+FORGEで作ります。ゲームディレクトリも\versions\1.8.9_RaspberryJamModにしました。

マインクラフトを一度起動

これで、一度マインクラフトを起動します。

マインクラフト1.8.9でFORGEを導入した状態で起動
はじめての起動でいろんなフォルダーが自動で作られる

はじめて起動すると、各種フォルダーが上記のように自動で作られます。マインクラフトを停止しましょう。

 RaspberryJamModのインストール

https://github.com/arpruss/raspberryjammod/releases からmods.zipとpython-scripts.zipをダウンロードします。

mods.zipを展開して、1.8.9用のRaspberryJamMod.jarを%appdata%\.minecraft\versions\1.8.9_RaspberryJamMod\modsにコピーします。

Modのインストールを確認

マインクラフトを起動して、[Mods]ボタンをクリックして、Raspberry Jam Modがインストールされているのを確認します。

やったー!!!

サンプルスクリプトの配置

python-scripts.zipには、サンプルが入っているのでzipを展開します。展開したら、mcpipyフォルダーが中にあるので、%appdata%\.minecraft\versions\1.8.9_RaspberryJamMod\にコピーします。

マインクラフトのフォルダーは、%appdata%\.minecraft をエクスプローラーに入力して、エンターキーで移動できます。

 

注意:コピーする先は、マインクラフトのフォルダー(%appdata%\.minecraft)ではありません。今回作成したプロファイルのフォルダー(%appdata%\.minecraft\versions\1.8.9_RaspberryJamMod)です。このプロファイルでRaspberryJamModを有効にしたのでここのプロファイルのみで使えます。

公式のマニュアル(http://www.instructables.com/id/Python-coding-for-Minecraft/?ALLSTEPS)を見ると、%appdata%\.minecraftで説明しているので、こちらにmcpipyをコピーして作業しましたがが正常に動作しませんでした。

まとめ

ここまででマインクラフト1.11.2で、1.8.9+FORGEの環境を用意して、Raspberry Jam Modのインストールを行いました。次回は動作確認を行います。

続き

Minecraft1.11.2にRaspberry Jam Modの動作確認 へ続きます。


 

Minecraft1.11.2で(1.8.9)を動かしComputerCraftModのインストール

Minecraft1.11.2にComputerCraftをインストールする記事です。結論から書くと、1.11.2でComputerCraftModが動作しなかったので、Minecraft1.11.2を1.8.9の状態で動作させて(バージョンを下げて動作できます)、それにComputerCraftをインストールして、動かすことができました。

Minecraft1.11.2でプロファイル作成とFORGEのインストール」の続きになります。

前回の記事「Minecraft1.11.2でプロファイル作成とFORGEのインストール」で、マインクラフトでプロファイルを作る方法を学び、Modの土台となるFORGEをインストールして動作確認しました。今回は、ComputerCraft Modをインストールし動作確認します。

インストール作業は簡単で、プロファイルを作成しそこに、ComputerCraftのファイルを置くだけです。前回の記事で、1.11.2_cc_modという名前でプロファイルを作ったので、これを使います。

ComputerCraftのダウンロード

ComputerCraft 公式サイトのダウンロードページ(http://www.computercraft.info/download/)から、

現在の最新は、1.79

これで、ComputerCraft1.79.jarファイルが手に入りました。

新規プロファイルで、一度マインクラフトを起動

マインクラフトは初回のプレイ時に必要なファイルやフォルダーを作成するため、プロファイルを新規作成したら、そのプロファイルで一度マインクラフトのタイトル画面を表示します。

プロファイルの作り方やそのプロファイルでの起動方法が分からない場合は、前回の「Minecraft1.11.2でプロファイル作成とFORGEのインストール」で作ってみてください。

必要なフォルダーが自動で作られるため一度タイトル画面を表示

これで、必要なフォルダーが作られたので、マインクラフトを終了します。

ComputerCraft.jarをコピー

再度ランチャーを起動して、今回のプロファイル1.11.2_cc_modのフォルダーに移動します。

ランチャーの右上のメニューアイコンをクリック

[起動オプション]をクリックして、プロファイルの一覧を表示して、今回使う新規作成したプロファイル1.11.2_cc_modをクリックします。

ゲームディレクトリの右側に、矢印アイコンがあるので、ここをクリックすると、このプロファイルの場所がエクスプローラーで表示できます。

表示されたフォルダーに、modsフォルダーがあるので、ここにあらかじめダウンロードしていたComputerCraft1.79.jarをコピーします。

modsフォルダーがある
ComputerCraft1.79.jarをここにコピー

やっとインストールが完了しました。いざ起動です!

動かない!トラブル対応!!

以上でマインクラフトを起動すれば問題ないはずだったのですが、最新バージョンのマインクラフト1.11.2と最新バージョンのMINECRAFT FORGE 1.11.2 – 13.20.0.2228では、ComputerCraftは動作しないです。ログを確認するとComputerCraftのバージョンが違いますよと言われています。

マインクラフトは古いバージョンの状態で動かせる

マインクラフトのModはマイクロソフトが全部管理しているわけではないので、古いマインクラフトでしか動かない場合などがあります。ComputerCraftも同様で、マインクラフトのバージョン1.8.9まででしか動きません。

ですが、マインクラフトは、現在の最新1.11.2でも古い状態で動かせます。例えば、今1.11.2ですが、1.6の時のマインクラフトでも1.8.9の時のマインクラフトにもできます。ComputerCraftを動作させるため、対応していきましょう。

 


Minecraft1.8.9用のMinecraft FORGE 1.8.9 – 11.15.1.1722をインストール

マインクラフトのModは互換性がないため、Minecraft1.8.9用のFORGEをインストールします。FORGEは複数インストールが可能で、マインクラフト1.8.9用のFORGEをインストールすれば、1.8.9用のプロファイルが作成できます。

マインクラフト1.8.9用のFORGEをダウンロード

ダウンロードすると、forge-1.8.9-11.15.1.1722-installer-win.exeが手に入るのでクリックしてインストールします。

1.8.9_cc_mod2プロファイルを作成

マインクラフトは古いバージョンも動作させることができます。つまり最新の1.11.2で、1.8.9の時のマインクラフトで遊べます。また今回1.8.9用のFORGEをインストールしたので、最新の1.11.2で、1.8.9の時のマインクラフトでmodを追加できるようになりました。

1.8.9_cc_mod2という名前で新たにプロファイルを作ります。バージョンは、「release 1.8.9-forge1.8.9-11.15.1.1722」を選択します。ゲームディレクトリもversions\1.8.9_cc_mod2を作成しました。

これで、一度マインクラフトを起動して、必要なフォルダーを作成します。

最新バージョン1.11.2ですが、無事にマインクラフト1.8.9で、Forgeが先ほどインストールした11.15.1.1722になっています。

ComputerCraft1.79.jarをmodsフォルダーにコピー

これで、マインクラフト1.8.9にComputerCraft1.79をインストールしました。

動作確認

マインクラフトを起動してみます。Modsボタンをクリックします。

リストの一番最後にComputerCraftが表示されているが分かります。

やったー!!!

これで、ComputerCraftで遊べます!

まとめ

今回のModインストール作業でわかったことをまとめます。

  • マインクラフトはFORGEをインストールするとModが使えます。
  • FORGEは複数バージョンを同時にインストールできます。
  • マインクラフトは、最新バージョンで、古いバージョンも遊べます。
  • バージョンやModの切り替えには、プロファイルを使います。

今回、ComputerCraftをマインクラフト1.11.2にインストールしました。無事に起動できて遊べるようになりました。またFORGEやプロファイルの仕組みも理解できました。次回は、同様にRaspberry Pi Jamをインストールしてみます。

 


 

Minecraft1.11.2でプロファイル作成とFORGEのインストール

現在の最新のマインクラフトであるMinecraft1.11.2ではマインクラフトを起動するときランチャー(起動するアプリの事)がシンプルになりました。操作方法も変わったので、まっさらなマインクラフト1.11.2でのプロファイルの作成方法と、MINECRAFT FORGEのインストール方法をここで説明します。

いくつか用語説明

Mod(モッド)とFORGE(フォージ)

マインクラフトは、ユーザーがマインクラフトを改造してそれを配布することができます。この配布された追加機能をMod(モッド)と言います。追加機能を作る開発者は、普通FORGE(フォージ)という機能を使ってこのModを作ります。そのため追加機能で遊びたい場合は、まずはFORGEをマインクラフトにインストールしてから、そのあとに追加機能をインストールする必要があります。

マインクラフトのプロファイルとは?

マインクラフトをやっているうちにいろんな追加機能をインストールしたけれど、何も追加していないシンプルなマインクラフトで遊びたい時などもで出来ます。沿いう言う場合は、マインクラフトのプロファイルという機能で切り替えることができます。

プロファイルの作成

プロファイルは、何もModがない(バニラと言います。)で遊びたい場合や、ComputerCraft Modのみ追加した環境で遊びたい場合など切り替えるために使います。プロファイルはいつでも追加削除ができるので、1.11.2_logicという名前で新しくプロファイルを作成してみます。

最近マインクラフトのランチャーがシンプルになったので、こちらでプロファイルを作成します。ランチャーを起動したら右上のメニューをクリックします。

[起動オプション]->[新規作成]

新しいプロファイルの名前は「1.11.2_logic」と適当に作って、ゲームのディレクトリーを%appdata%\.minecraft\versions\1.11.2_logicにしました。

%appdata%というのは、c:\Users\ユーザ名\AppData\Roamingのことです。エクスプローラーに以下をコピーペーストすると、c:\Users\ユーザ名\AppData\Roaming\.minecraft\versionsに移動できるので、1.11.2_logicフォルダーを作成しましょう。

%appdata%\.minecraft\versions

ランチャーでMINECRAFTロゴをクリックすると最初の画面に戻れます。

これでひとまずマインクラフトを起動できます。

 

Minecraft FORGEのインストール

MinecraftのModはFORGEを使って作ります。そのためいろんなModで遊ぶ場合は、まずMinecraft FORGEをインストールする必要があります。Windowsの場合インストーラーがあるのでダウンロードしてインストールするだけです。

Mercuriusはインストールしなくてもよさそうです。

FORGEがインストールされたら、FORGEバージョンのプロファイルが作れるようになります。このプロファイルに好きなModをどんどん足していくことになります。早速、先ほど学んだように、プロファイルを作成しましょう。

1.11.2_cc_modという名前でFORGEバージョンのプロファイルを作成します。バージョンで、リストを表示して一番下までスクロールすると「release 1.11.2-forge1.11.2-xxxx」のようにFORGE版のバージョンがあるので選択します。

また、ゲームディレクトリを、versions\1.11.2_cc_modのように好きなディレクトリにします。

これで、FORGE版のMinecraftが起動できます。

上記画像のように、Modsボタンと、左下にMCPやPowered by Forgeと表示されていたら無事FORGEのインストールは完了です。FORGEのみインストールした状態で、4 mods loadedと書かれているように、最低限必要な4つのModが動作しています。