IDEをインストールせずにbeatorajaをビルドする方法と好みの本体に改造するやり方(わかってる人向け)

Beatoraja ビルドまでの流れ – Lazy Notes では、IntelliJ IDEAというIDEを使ってビルドをしていますが、「自分はVimやVS code等のエディタを普段使ってるからそれでやりたい!」という人向けに、IDEをインストールせずにビルドする方法について解説したいと思います。

LR2では本体改造は利用規約違反ですが、オープンソースであるbeatorajaは本体を改造して自分だけで利用する分には問題ありません。

この記事を参考にして出来ること

  • beatorajaの判定、ゲージをLR2準拠に変更
    • 判定やゲージをLR2仕様に変更して、LR2とプレイ感を寄せる
    • 判定やゲージを緩くしてゲームを簡単にしてリザルト画像を捏造
  • beatorajaで開発中の機能を体験
  • beatorajaの開発に参加

注意してほしいこと

  • 今回の記事の内容を利用すれば簡単にズルできちゃいます。IRに接続出来ないので致命的な問題にはなりませんが、虚言癖の人がリザルト捏造するみたいなことくらいは出来ます。
  • 今回の記事の内容に書かれた方法でビルドしたbeatoraja本体ではIRに接続できません。IRに参加したい人は使えません。
  • 本体のバージョンが上がるたびに、最新のソースコードをfetchして該当箇所を変更してビルドし直す必要があります。

環境

Windows 10環境を想定しています。

必要なもの

  • PC
  • JDK
  • Git for Windows
  • Ant
  • VS codeなどのエディタ
  • Javaの知識
  • コマンドプロンプトへの耐性

①JDKのインストール

  1. Java SE Development Kit 8 – Downloads を開く
  2. Java SE Development Kit 8u281 > Windows x64 > jdk-8u281-windows-x64.exe をクリック
  3. 多分、「Oracle account sign in」というページが開いたと思うので、Oracleアカウントを作成します
  4. 「Create Account」をクリック
  5. 適当に情報を入れて「Agree and Create Account」をクリック
  6. 適当に入れた情報でサインイン
  7. 再度DLすると、 jdk-8u281-windows-x64.exe がダウンロードされるので、ダブルクリックで起動

②Git for Windowsのインストール

Git for Windowsをインストール済みの人は①はスキップしてください。
  1. Git for Windows を開く
  2. 「Download」をクリック
  3. DLしてきた Git-2.30.0.2-64-bit.exe をクリック(数字の部分は変わってる可能性あり)
  4. 画面のダイアログを指示通りに選択していく
  5. Windowsのエクスプローラを開く > 適当なフォルダで右クリック > 「Git bash here」を選択
  6. 開いたGit bashで以下のコマンドを入力
$ git --version
その際、以下のような表示が出ればOKです。

③Antのインストール

  1. Apache Ant – Welcome を開きます。
  2. 「Download」の下の 「Binary Distributions」をクリック
  3. 「Current Release of Ant」 > 「Java 8 at runtime」 > 1.xx.x .zip の部分のリンクをクリック
  1. DLしたzipファイルを適当な場所に解凍する
  2. スタート→設定→検索欄に「環境変数」と入力して、システムの環境設定を開く
  1. 「環境変数(N)」を開く
  2. 「システム環境変数」 > 「新規(W)」をクリック
  3. 「変数名」に「ANT_ROOT」、変数値にzipを解凍した場所を選択
  1. Git bashで以下のコマンドを入力
ant -v
  1. 以下のような表示が出ていれば成功です

④ソースコードをcloneしてくる

まず、 exch-bms2/beatoraja からソースコードをcloneしてきます。

⑤とりあえずビルドしてみる

  1. 手順③でcloneしてきたbeatorajaフォルダでGit bashを開く
  2. 以下のコマンドを入力する
$ ant
  1. 「BUILD SUCCESSFUL」という文字が見えれば成功です
  2. beatoraja/buildフォルダ内に「beatoraja.jar」ができています。

⑥ビルドしたjarファイルでbeatoraja起動

  1. 普段beatorajaを起動している場所にあるbeatoraja.jarを手順④でビルドしたbeatoraja.jarに置き換える
  2. いつもどおり起動
  3. もし、皿が反応しない場合は、キーボードの6を押してコンフィグで設定しましょう。

⑦本体改造の準備

VS codeを使ってJava開発をする場合、Java11が必須となりました。
なので、JDK11をインストールしてきます。
VS codeを開くと画面に従えばインストールが可能です。
しかし、beatorajaはJDK8でないと起動ができません。
beatoraja-config.bat をダブルクリックして以下のエラーが出た場合はこの作業が必要となります。
エラー: メイン・クラスbms.player.beatoraja.MainLoaderを検出およびロードできませんでした
もし、VS codeを使っていない場合は以下のbeatoraja-config.batの編集という作業は必要ありません。

beatoraja-config.batの編集

4行目を以下のように編集します。
"C:\Program Files\Java\jdk1.8.0_251\bin\java.exe" -Xms1g -Xmx4g -cp beatoraja.jar;ir/* bms.player.beatoraja.MainLoader
これで、beatorajaを起動する時はJava8を使って起動してくれます。

⑧実際に本体を改造してみる

これで開発の準備は整いました。
手順③でcloneしてきたソースコードを手元で編集して、 ant コマンドでビルドするということをするんですが、「どこ編集すればええねん」ってなると思うんですよ。
なので、「こういうところをいじりたい」って時に何のファイルに記述されているかを書きたいと思います。

ゲージをLR2仕様にしたい

beatoraja/src/bms/player/beatoraja/play/GaugeProperty.java
ここには、各モードのゲージの増減が管理されています。
単純に7鍵モードのゲージをLR2仕様にしたい場合は GaugeElementProperty 内の ASSIST_EASYEXHARDCLASS までの定数の中身を、 XXX_LR2 の中身と置き換えてあげればOKです。
この記述を
ここに上書きして、定数の名前を戻せばOK

皿の判定幅を鍵盤と同じにしたい

beatorajaは皿の判定幅が鍵盤より+-10msも広いので、皿曲が簡単になります。それを厳しくするために鍵盤と同じにしたい場合どうすればいいかを説明します。
beatoraja/src/bms/player/beatoraja/play/JudgeProperty.java
ここには、各モードの判定幅が管理されています。
7鍵モードであれば JudgeProperty > SEVENKEYS の中身をいじれば判定幅を変更可能です。
皿の判定は2つ目にあるint型の二次元配列を編集すればOKです。具体的には以下の画像の通りに編集します。

before
after

遅プアを無くす

beatorajaではLR2とは違い遅プアが存在します。それを無くす方法を説明します。
↑と同じJudgeProperty.javaを編集します。
遅プアの判定幅を設定しているのは以下の部分です。
ここの値を0にします。

最後に

いかがでしたでしょうか。
ここに書いてあることを利用して、リザルト捏造するような輩がいないことを祈ってます。
質問があればTwitterでリプライしてください @ukitouchtypist 何の脈絡もなくいきなり聞かれても分かる範囲で答えます。