C#が全く分からない人向け Celeste Code Mod入門: 環境構築編

0. 初めに/ 免責事項

こんにちは。

突然ですが、最近CelesteでFarewellの金苺狙いをしています。Farewellの金苺狙いはあまりにもモチベ管理が大変なので、自分用にEverestを用いてMODを作成しました。

環境構築に戸惑ったので、今後触る方に向けて少しでも助けになればと思い、記事を作成しました。

なお、「C#が全く分からない人向け Celeste Code Mod入門」の続編予定はありません。

この記事ではEverestの仕組みや、Everest APIを使って何ができるかといった説明は行いません。 自作MODを始める最低限のテンプレートを作成し、Everestに読み込ませるところまでを目標とします。

また、自分も「C#全く分からない人」であるため以下の方法で進めることが必ず正解ではありません。自分の一体験としての記録を残すつもりですので、ご了承ください。

環境はWindows / Steamでのインストールを想定したものです。

1. Everestのダウンロード および OpenGLへの切り替え

初めにですが、Steam上で簡単な変更を行います。

おそらくこのページを見ている人はすでにMODで遊んでいる(=Everestをインストール済み)かとは思いますが、起動方式を変更しておきます。(起動方式って呼び方で合っているかな...)

OpenGLという方式で起動する必要があるようです。コードをいじる気がなくても、Everestで遊ぶ場合はこちらを選んだ方がメモリ使用量やクラッシュする頻度が減るため変更しておくことをおススメします。

This setup doesn't require NuGet or git, but if you're a Windows user, you'll need to switch to the OpenGL branch.

参考: Code Mod Setup · EverestAPI/Resources Wiki · GitHub

変更方法

  • SteamライブラリのCelesteを右クリック → プロパティ

  • 「ベータ」 → openglを選択

プルダウンで選択した時点で変更が始まります。アクセスコードは入れなくて大丈夫です。
こうなっていたら大丈夫です

openglへ変更をすると、Everestを再度入れ直す必要があります。

普段通りOlympusからEverestを起動しようとするとインストールを求められると思うので、指示に従って進めてください。 セーブテータやMODは保持されているので大丈夫です。

説明についてはこのへん

2. Visual Studioのダウンロード

まずは .NETをインストールします。 docs.microsoft.com

次に、Visual Studioをインストールします。恥ずかしながらEverestを触ろうと思うまで自分も混同していたのですが、Visual Studio Codeとは別物です。 無料のCommunityバージョンでOKです。

visualstudio.microsoft.com

これ以降のVisual Studioについての説明は、おそらくバージョンが変わっても同じになるかとは思いますが自分がインストールしたバージョンは17.2.4でした。

Visual Studioのインストールが完了したら一回閉じておいて大丈夫です。

3. 自作MOD用のテンプレート作成

まずは、作成したMODを入れる空のフォルダ(ディレクトリ)を作成します。 Celesteに関連したファイルがどこに保存されているかは先ほどと同様にSteamから辿ることができます。

「ローカルファイルを閲覧」

Steamからプレイしている場合、おおよそ C:\Program Files (x86)\Steam\steamapps\common\Celeste のような場所にあるかと思います。

Mods フォルダの中に好きな名前で新しいフォルダを作成してください。

そうしたら先ほどダウンロードしたVisual Studioを起動し、空のMod用ファイルを開きます。

「ローカル フォルダーを開く」

開いた直後はこのようになっていると思います。「開発者用PowerShell」が見えない場合は、ウィンドウ上部の「表示」タブ→ 「ターミナル」で出してください。

PowerShell上で dotnet --version などを実行し、dotnetコマンドが使えるかどうかを確認します。

dotnetコマンドが使えない場合は、

winget install Microsoft.DotNet.SDK.7

でインストールします。指示に従って進めてください。
(注: 現在(2023/3)ではバージョン7が安定バージョンとなっていますが、今後新しいバージョンがリリースされると .7 の部分が変更になるかと思います。)

参考: Windows に .NET をインストールする - .NET | Microsoft Learn


dotnetコマンドが使えることを確認したら

dotnet new install CelesteMod.Templates

でテンプレート作成用ライブラリをインストールしたのち

dotnet new celestemod

を実行します。

必要なファイルが作成され、先ほど作成した空のフォルダが以下のようになっていれば成功です。

注: この時点でEverestを起動するとエラーになります。
正常に起動させるには次の「4. デフォルトの状態でビルド」節までの作業を完了するか、作業を途中で取りやめる場合は作成したフォルダ(例の場合は「MyTestMod」フォルダ)を丸ごと削除し、次回作業時に「3. 自作MOD用のテンプレート作成」節の最初からやり直すことをお勧めします。

4. デフォルトの状態でビルド

補足および謝罪

Mod作成時のメモに「初回ビルド時にDeveloper Toolがないと怒られたのでインストールした」と書かれていたのですが、3ヶ月くらい前のメモであるのと今になって再現できないので、割愛させてください。
おそらく何が足りないかがエラーメッセージなどに現れると思うので、適宜対応していただければと思います... 🙇‍♂️
もしも思い出したり再現できたら書きます。




気を取り直して...

Visual Studioを開いたばかりの状態ではメニューバーにないのですが、.sinファイルを開くと「ビルド」が表示されるようになるので(??)開きます。

① 「表示」 → 「ソリューションエクスプローラー」② 「(自分の作成したフォルダ名).sin」をダブルクリック

メニューバーの「ビルド」→「ソリューションのビルド」を実行します。

しばらく待つとウィンドウ左下に「ビルド正常終了」が表示されます。

ビルドが正常に終了すると、テンプレートで作成された bin フォルダの中にdllファイルが作成されます。
ここまで完了するとEverestを起動し自作したMODを読み込ませることができます。

ゲーム開始画面の「MOD設定」→「MODを有効化・無効化する」

5. おわりに

お疲れさまでした。ここまでうまく運べば、以降は公式リファレンスとコードとの対応付けを確認したり、Everest上での動作を見ることができるので少しは進めやすくなるかなと思っています。

公式リファレンスはそこそこ充実していますので、やりたいことに合わせて探索していただければと思います。

github.com

また、GameBananaなどで公開されているMODはGitHub上でコードが公開されていたりもしますので、自分がやりたいことと近いものがあれば覗きに行くのもよいかと思います。

自分もまだまだModのさわりしか分かっていないので、もし今後知識が増えたら続編として書こうかなと思っています。

それではまた。