Minecraft PEはModPE Scriptsというツールを使ってJavascriptでMod開発ができるらしいので試してみた。
が、思いのほか作り方がちゃんとまとまっているページがなかったりハマりポイントが多かったりしたので、自分で作ってみた結果を踏まえてのまとめです。
前提
-
Minecraftって?
- オープンワールドの積み木ゲームです。詳しくはダウンロードしてみてください。PC版、スマートフォン版、PS Vita版、PS3版等があります。今回はスマートフォン版(特にAndroid)が対象です。
-
Modって
- すでにあるゲームに対してサードパーティの開発者が作る追加プログラムのようなものです。PCゲームではよくある仕組みです(と思います。PCゲームやらないのでよく分からない)
環境
-
Minecraft PE (Android版) ver0.12.1
- Minecraft本体アプリ
- ダウンロードはこちら
-
BlockLauncher Pro ver1.10.3
- ModPE Scriptを読み込んだ状態でMinecraftを起動することができるアプリ。(それだけではないですが)
- ダウンロードはこちら
-
ModPE IDE ver4.6.73
- ModPE Scriptの開発環境。といってもただのエディタにModPE Script用の関数一覧表がついたようなシンプルなアプリ。
- とはいえスマートフォンでのコーディングはツラいので、実際はPCでコーディング→メッセンジャー等でスマートフォンにコードを送信→ModPE IDEにコピペ の手順でコーディングしていました。
- 最終的にソースコードが書かれたUTF-8の.jsファイルが端末内の任意のディレクトリにあれば良いので、このアプリ必須ではありません。
- ダウンロードはこちら
参考
- Script modの作り方(非エンジニア向け)
- Mod Script Wiki
- 勉強用に作成したMod「旅の扉Mod」のソースコード
コーディング
ModPE Scriptは上記Mod Script Wikiに記載されているHooks関数をエントリポイントとして実行されます。
今回は簡単なHello Worldです。
ゲーム開始と同時に"Hello ModPE Script World!!"を画面上に表示します。
// ゲーム開始と同時に発火するイベント
function newLevel(hasLevel) {
// 画面左上に文言を出力する
clientMessage("Hello ModPE Script World!!");
}
これを以下の手順で実行します。
- "hello.js"としてAndroid端末内の任意のディレクトリに保存
- BlockLauncherアプリを起動 (注:Minecraftアプリではない)
- 画面上部のレンチアイコンをタップ
- "Manage ModPE Scripts"を選択
- 右上のトグルボタンをタップしてスクリプトを有効にする
- "IMPORT" > "Local storage" を選択し、表示されるエクスプローラでhello.jsを選択する。
- BlockLauncherのスタート画面まで戻り、「プレイ」からゲームを開始する
- ゲーム開始と同時に"Hello ModPE Script World!!"が表示される
あとは通常のJavascriptプログラムを書く要領で、Mod Script WikiのAPI一覧を頼りにコーディングを進め、同様の手順で動作確認します。
が、Wikiの情報が不完全だったり用語が直感的でなかったりと数多くの罠が仕掛けられていますので、そのあたりは次回以降でまとめようと思います。
先にざっくりまとめてみると以下のような感じ。。。
- 戻り値の型が分からない、引数の型が分からない。型が分かっても何を意味する値なのかがよく分からない。
- 何が起こる関数なのかよくが分からない
- なんかgetPlayerX()で取得した座標を他のAPIに渡すと座標がズレる
- そもそもブロックIDの一覧とかまとまってない
などなど。
自分の場合はとにかく関数を使ってみてclientMessage()とかで出力してみて、と試行錯誤しながらコーディングを進めました。
いったいいくつのワールドを作っては消したことか。。。
うまくいくとクリーパーに乗ったりサバイバルで空飛んだりワープできたりで面白いんですけどね。