この記事では、MOD作成初心者がインターネットの情報を集めながら自力でMOD作成を行い、大手のMOD共有サイトのNexus Modへ初投稿を行った記録です。
・1. 準備編(この記事)
・2. 作成編(新しいタブで開く)
・3. 改造編(準備中)
・4. 投稿編(準備中)
第1回目の準備編では、前置きと必要なツールのインストールとダウンロード、MODプロジェクトを作成するところまでを解説します。
0.はじめに
筆者がMOD作成をすると決めたきかっけは、ダークな牧場物語ゲーとして好評な「Graveyard Keeper」において、前提MODのアップデートによって利用不可能となってしまった便利系MODを再び使いたいと思ったからです。
機能としては単純で、エネルギーを消費して走る機能を追加するMODです。
元のMODの作者様が更新していただけるのを待っていましたが、どうにも更新がかからない可能性が高そうなので自分で作ってみようと考えました。
筆者の経験としては、C#を用いた小規模なアプリ開発の経験があり、できないことはないだろうと発起して取り掛かりました。
1.前提知識と今回作りたいMOD
本記事ではGraveyard KeeperのMODを作成を目指します。
このゲームはUnityというゲームエンジンで作成されておりプログラミング言語はC#が用いられています。
UnityはMOD作成に関する情報が比較的集めやすいと思います。(ゲームがどのエンジンで作成されているかについては色々な方法があるため、調べてみてください)
今回作成するMODは「エネルギーを消費して走る機能を追加」というMODです。
2.準備するもの
今回のUnity製ゲームのMOD作成で必要なのは以下のツールです。
1.C#を用いることができる統合開発環境(例:Visual Studioなど)
2.DnSpy(.NET製アプリのソースを見ることができるデコンパイラ)
3.BepInEx(Unity製ゲームのMOD導入を補助するツール)
4.諦めない心
1番目の統合開発環境は、MODの本体となるソースコードを書いて完成品を出力するために必ず必要となります。筆者はVisual Studio Community 2022を用いました。(個人での開発ならば無料かつ商用利用も可能です!)
2番目のDnSpyは、C#などの.NETという規格で作成されたアプリについて、通常では見えない内部の構造をデコンパイルという変換で見れるようにするツールです。アプリ内部の情報を見ることで、どの機能を用いる必要があるのか?ということを知るために必須となります。DnSpyの作者様のGitHubからダウンロード可能です。(通常なら「dnSpy-net-win64.zip」をダウンロードしましょう)
3番目のBepInExは、Unity製ゲームのMOD導入する際に本体アプリとMOD作者の間の橋渡しとなるような補助ツールです。これによって、MOD作成が幾分かやりやすくなります。Nexus ModにGraveyard Keeper用のBepInExをアップロードしてくださっている方がいるので、こちらをインストールします。(インストール方法は本ブログのこの記事をご覧ください)
4番目の諦めない心はなんだかんだ大事です。MOD作成に関する情報はお世辞にも多いと言えず自力で調べて試行錯誤することが必要です。苦労なく進められるものではありませんでした。C#に関するプログラミングの知識はあるに越したことないですが、こちらに関しては調べれば情報が多く手に入るので勉強するという心意気が大事です。
3.Visual Studioでプロジェクトを作成する
Visual Studio 2022を起動し、新しいプロジェクトの作成を押します。
次のウィンドウでは、プロジェクトの言語をC#のみでソートし、
・クラスライブラリ「.NET または .NET Standardを対象とする・・・」
・クラスライブラリ(.NET Framework)「C#クラスライブラリ(.dll)を作成するための・・・」
のいずれかを選択します。
今回は、前者の「.NET または .NET Standardを対象」を選択します。
どちらを選ぶかについてですが、これはMODを作成したいゲームが用いているUnityエンジンのバージョンと.NETのバージョンによって左右されます。(対応表をまとめていただいている記事)
次のウィンドウでは、プロジェクトの名前と、プロジェクトフォルダのパスを指定します。
プロジェクト名は走る機能を追加するMODのため、「SprintOn」とします。
場所については、各々がお好きな作業場所を選択しましょう。(気にする必要はないかもしれませんが、パスの中に日本語などの2バイト文字がない方がよいでしょう)
「ソリューションとプロジェクトを同じディレクトリに配置する」はチェックなしがおすすめです。
次のウィンドウでは、プロジェクトで用いるフレームワーク(システムのようなもの)のバージョンを選択します。
これは上述したゲームが用いているUnityエンジンのバージョンと.NETのバージョンによって左右されます。Graveyard Keeperでは、「.NET Standard 2.0」を選択します。
「作成」を押すことで、とうとうプロジェクトが作成されます!
4.プロジェクトに参照を追加する
さあ!プログラムを書いていくぞ!
の前に、まだひと準備必要です。
このプロジェクトに対して、ゲームの仕組みを取り込む(参照する)必要があります。
これを行うことで、ゲーム内部で用いられている機能に対して変更、追加、横入などが可能になります。
「依存関係」を右クリックし、「プロジェクトの参照を追加」をクリック、
もしくは、上部の「プロジェクト」から「プロジェクトの参照を追加」をクリックします。
次のウィンドウで右下の「参照」を押します。
エクスプローラーのウィンドウが表示されるため、Graveyard Keeperのインストールフォルダに移動します。
参照として選択するのは以下のファイルです。
\Graveyard Keeper\Graveyard Keeper_Data\Managed
・Assembly-CSharp.dll
・UnityEngine.dll
・UnityEngine.CoreModule.dll
\Graveyard Keeper\BepInEx\core
・0Harmony.dll
・BepInEx.dll
(BepInExのフォルダがない場合は、「2.準備するもの」に戻ってBepInExをインストールしましょう)
全てのファイルを参照に追加したら、「アセンブリ」内のすべてのファイルを選択し、「プロパティ」から「ローカルにコピー」を「いいえ」にしておきましょう。(作業フォルダに不要なファイルが作成されるのを防ぎます)
5.ファイル名を変更して最後の準備
元からあるクラスファイルの「Class1.cs」を「Plugin.cs」へと名称変更しておきます。
ファイルを右クリックして「名前の変更」から変更すると良いです。
さあ!これで準備は整いました!
6.今回のまとめと次回の内容
今回はMODを作成するための環境構築の方法を解説しました!
次回から実際にプログラミングを行って「プレイヤーの移動速度を変更する」という改造を加えます!
コメント