はじめに
venoroa1358です。
今回はtModLoaderでTerraria のMod開発を始めるまでの手順について説明します。
環境構築の手順を説明したのち、サンプルとして新しい武器アイテムを1つ追加するModを作っていきます。
Mod開発にはC#の知識が必要ですが、今回は数字を変えるだけなので多分何も知らなくてもできると思います。
前提条件
- x64 Windows環境
- Windows 10 または Windows 11で確認しています
- 記事中のスクリーンショットはWindows 11で撮影しています
- 十分な量のストレージ空き容量
- Microsoft アカウント
- Visual Studio を利用するのに必要です
- Steam アカウント
- Terrariaを購入していること
- tModLoader v2022.9.47.14、Terraria v1.4.3.6で作業しています
- 2022年11月現在、インストール済みのTerraria が1.4.4以降でもtModLoaderを起動すると自動的に1.4.3.6のTerrariaが利用できます(バニラのセーブデータに影響はありません)
- Terraria の初歩的な知識
下準備(環境構築まで)
何はともあれTerraria が起動できることを確認しておきましょう。
次に、Steamから tModLoaderをインストールして起動できることを確認します。
そして、Visual Studio Community 2022 をダウンロードしてインストールします。
画像の赤枠で囲われたところにあります。Communityエディションは趣味レベルの小規模開発ならば無償で利用できるので、これをインストールします。
Visual Studio Installer がダウンロードできたら、起動して画面の指示に従って進めていきます。
「ワークロード」を選ぶ画面に来たら、「.NET デスクトップ開発」にチェックを入れ、右下のほうにある「インストール」をクリックします。
容量がやや大きいのでインストールには時間がかかると思います。
インストールが終わり次第、次のような画面が出るはずです。「サインイン」をクリックしてサインインします。
※サインインしなかった場合、Visual Studioが利用できなくなる可能性があります。
ここまで来たら環境構築は完了です。×ボタンを押して閉じます。
新しいModを作る
tModLoaderを起動して、「Workshop」をクリックします。
「WorkShop Hub」が表示されたら「Develop Mods」をクリックします。
「Mod Sources」が表示されたら右下にある「Create Mod」をクリックします。
Modの新規作成画面に来たら項目を埋めて「Create」を押します。
ModName(no spaces) | Modの名前を空白なしで英数字で記入。開発時のプロジェクト名になる。 |
Mod DisplayName | Modの表示名を英数字で記入。「Manage Mod」画面などで表示される。 |
Mod Author | Mod製作者の名前を入力。公開しないなら適当に。 |
BasicSword(no spaces) | サンプル武器アイテムの名前。今回は必ず記入してください(空白無し)。 |
「Mod Sources」画面に戻ったら、作ったModの右のほうにあるアイコン(Open .csproj)をクリックします。
初回起動時は次のような画面が出るかもしれません。Visual Studio 2022を選択して起動します。
Visual Studioが起動したら、いよいよMod開発開始です!
右側の「ソリューション エクスプローラー」から「Items」フォルダの下にある、先ほど「BasicSword(no spaces)」で指定した名前の.csファイルをダブルクリックして開きます。
エディタが開くはずです。ここでは、17行目付近のItems.damageの値を50万にしてみましょう。
public override void SetDefaults()
{
Item.damage = 50; // ここを0以上21億以下の整数に変更してください
Item.DamageType = DamageClass.Melee;
Item.width = 40;
変更が終わったらビルドします。
「Ctrl + Shift + B」のショートカットキーを押すか、画面上部の「ビルド」から「ソリューションのビルド」をクリックします。
次のように「成功 1、失敗 0…」という表示が出力ウィンドウに出たら開発完了です。
※もしビルドエラーが出たら次の項目を確認してください。
- Item.damageの右辺の値が0以上2147483647(約21億)以下であること
- int型の最大値は2147483647です。100億とか入れてもエラーになります。
- Terraria内でクリティカル等の原因によりダメージが増えることがあるので、上限ギリギリだとオーバーフローでダメージが0になることがあります。
- 半角英数字を用いていること
- 500じゃなくて500です。全角文字を使わないでください。
- 末尾のセミコロン( ; ) を間違って消していませんか?
- 全角スペースを間違って入力していませんか?
- Item.damage以外の行を間違って変更していませんか?
動作確認
tModLoaderに戻り、作ったModを「Build + Reload」します。
「Manage Mod」の「Mod List」から作ったModをEnabledにします。
新しいキャラクターとワールドを生成してゲームを開始します。
10個以上のDirt を手に入れ、更にWorkbenchが使える状態にしてください。
追加したアイテムをクラフトします。
アイテムを使ってみましょう。問題がなければ開発成功です!
おわりに
Terraria 用のModを作成する方法を紹介しました。
より高度なModを作るにはどうしてもプログラミング(C#)の知識が必要になってきます。頑張って勉強しましょう。
また、tModLoader開発特有の知識も必要です。リファレンスを頑張って読むしかありません(私は読めていません)。
とはいえ、いきなりリファレンスを読んでもさっぱりです。tModLoader開発チームによるサンプルModがGithubで公開されているので、まずはこのソースコードを読みつつわからなかった箇所をリファレンスで確認する、という流れになると思います。
https://github.com/tModLoader/tModLoader/tree/1.4/ExampleMod
日本語の解説はほとんどないのでなかなか辛いです。いくつか羅列しておきます。