
既存データの書き換えや新要素の追加などによってゲームをより深く楽しむ“Mod(Modification)”。利用するのはもちろん楽しいですが、自分で制作するのも楽しいものです。そこで本記事では、2016年7月に正式リリースとなった『Starbound』のMod制作に挑戦。実践を通してその方法を皆様にご紹介したいと思います。

- 必要なもの
- 製品版『Starbound』…今回はSteam版を使用。
- テキストエディタ…色々なデータを弄るのに必要。
- 画像編集ソフト…画像を扱う際に使用。要PNG対応。
- 好奇心と諦めない心…とっても重要。
上記が揃いましたら、まずはゲームで使われているデータを展開し、中身を見れるようにします。これによりゲームを構成するデータの配置や仕組みを確認できます。
STEP1. 『Starbound』のインストールフォルダを開く
■特に変更していなければ“C:\Program Files (x86)\Steam\steamapps\common\Starbound\”にインストールされています。
■Steamライブラリで『Starbound』のプロパティを開き、“ローカルファイル”タブから“ローカルファイルの閲覧”をクリックすることでも開けます。

※筆者はSteamをDドライブにインストールしています。
以降、インストール先は各自の環境に合わせて読み換えて下さい
STEP2. データファイルを展開する
■コマンドプロンプトを開き(“Starbound\”フォルダのウィンドウ内余白でShift+右クリック→「コマンドウィンドウをここで開く」)、以下のコマンドを実行します。
"win32\asset_unpacker.exe" "assets\packed.pak" "UnpackedAssets"

■“Starbound\UnpackedAssets\”フォルダにゲームの各種データが展開され、閲覧が可能になります。

■これで準備は一通り完了です。それでは早速Modの制作にとりかかりましょう。最初は既存のアイテムに変更を加えてみます。
■もしプレイ中のセーブデータがある場合は念のためバックアップをとっておきましょう。セーブデータは“Starbound\storage\player\”フォルダに入っています。

「実践1: 数値の変更」の概要
■本項目ではゲームに登場する盾の1つ“Basic Shield”の耐久値を変更するModを作成。

赤枠の部分の数値を変更したい
■ModはMod本体とModの名前や詳細を情報を記載したファイルで構成されており、“Starbound\mods\”フォルダに配置します。本項目で制作するMod“spashield01”は、次のようなファイル構成となっています。
Starbound\mods\spashield01\
│
├─ items\
│ └ active\
│ └ shields\
│ └ startershield.activeitem.patch … Modデータ本体
│
├─ _metadata … ゲーム内のModリストで表示される情報を記載
│
└─ spashield01.modinfo … Modの基本情報を記載
│
├─ items\
│ └ active\
│ └ shields\
│ └ startershield.activeitem.patch … Modデータ本体
│
├─ _metadata … ゲーム内のModリストで表示される情報を記載
│
└─ spashield01.modinfo … Modの基本情報を記載
STEP1. 既存データの確認
■まずは最初の「制作に向けての準備」で展開した既存ゲームデータの中から、“Basic Shield”の情報を記載したファイルを探します(“Starbound\UnpackedAssets\items\active\shields\startershield.activeitem”)。
■ファイルが見つかったらテキストエディタで開きます。ずらずらと様々な情報が記載されているので、軽く目を通しつつ今回書き換えたい耐久値の部分を確認しましょう("baseShieldHealth"が盾の耐久値)。

STEP2. Modデータ本体の作成
■“Starbound\mods\”フォルダにModを入れるためのフォルダを作成します(フォルダ名はModと同じく“spashield01”)。
■作成したフォルダの中に、変更対象と同じディレクトリ構造を作り、既存ファイル名に“.patch”をくっつけた空のテキストファイルを作成します(前述の概要でご紹介したファイル構成を参照)。

■“startershield.activeitem.patch”に以下の内容を書き込み保存します。
startershield.activeitem.patch
[
{
"value": "100",
"op": "replace",
"path": "\/baseShieldHealth"
}
]
雰囲気で何となく分かるかと思いますが、“path”は書き換えたい項目、“vaule”はその値です。“op”はデータのタイプを表しており、今回は既存データの書き換えなので“replace”となっています。
STEP3. “.modinfo”と“_metadata”の作成
■“.modinfo”にはゲームがModを管理するための基本情報を記載します。今回は“spashield01.modinfo”として以下の様になっています。
spashield01.modinfo
{
"name" : "spashield01",
"path" : ".",
"dependencies" : [],
"metadata" : {
"author" : "Supa Kun",
"version" : "0.0",
"description" : "Basic shield health change"
}
}
■“name”はModの名前(スペースや特殊文字使用不可)、“author”は作者名、“version”はModのバージョン、“description”はModの説明文です。“path”や“dependencies”については、簡単なModであれば変更する必要はありません。
■“_metadata”にはゲームのModリストに表示するための情報を記載します。今回は以下の様になっています。
_metadata
{
"name" : "spashield01",
"friendlyName" : "Spa kun shield 01",
"version" : "0.0",
"link" : "",
"description" : "Shield mod sample 01",
"author" : "Supa Kun"
}
■“name”はModの名前(.modinfoの“name”と同じ)、“friendlyName”は一覧に表示される名前、“version”はModのバージョン、“link”はMod配布サイトや自分のWebサイトへのリンク、“description”はModの説明文、“author”は作者名です。

Modリスト
STEP3. 動作確認
■各種ファイルの作成が終わったら、ゲームを起動して動作を確認してみましょう。

耐久値を20から100に変更できました
■もし何も変化がない場合やゲームが強制終了してしまう場合は、ファイル名や各種テキストの綴り等が間違っていないか要確認です。

「実践2: 画像の変更」の概要
■本項目ではゲームに登場する盾の1つ“Basic Shield”のグラフィックを変更するModを制作します。

“Basic Shield”
■グラフィックの変更は2つの方法があるので、好きな方をお選び下さい(STEP2-A or STEP2-B)。
STEP1. 画像の準備
■画像のファイル形式はPNG。盾の場合は1つのファイルの中に正面・右側面・背面・左側面の絵が必要です。

既存のグラフィック

新規のグラフィック
STEP2-A. グラフィックの変更: 方法1
■方法1では既存の画像ファイルを差し替える形で変更します。
■前の項目で作成した画像ファイルを、既存の画像ファイルと同じファイル名にして同じディレクトリ構造で配置します(今回のModの名前は“spashield02”にしています)。
Starbound\mods\spashield02\
│
└─ items\
└ active\
└ shields\
└ images\
└ smallwood\
└ 1.png … 盾の画像
│
└─ items\
└ active\
└ shields\
└ images\
└ smallwood\
└ 1.png … 盾の画像
STEP2-B. グラフィックの変更: 方法2
■方法2では新しい画像を読み込むように設定します。
■実践その1で盾の耐久値を書き換えたように“startershield.activeitem.patch”を作成し、以下のように記述します。
startershield.activeitem.patch
[
{
"value": "images/spakun/1.png",
"op": "replace",
"path": "\/animationParts/shield"
},
{
"value": "images/spakun/1.png:nearidle",
"op": "replace",
"path": "\/inventoryIcon"
}
]
■今回新たに用意した画像は“Starbound\mods\spashield02\items\active\shields\images\spakun\”に配置しています。
Starbound\mods\spashield02\
│
└─ items\
└ active\
└ shields\
└ images\
└ spakun\
└ 1.png … 盾の画像
│
└─ items\
└ active\
└ shields\
└ images\
└ spakun\
└ 1.png … 盾の画像
STEP3. “.modinfo”と“_metadata”の作成
■例によって“.modinfo”と“_metadata”を作成します。
spashield02.modinfo
{
"name" : "spashield02",
"path" : ".",
"dependencies" : [],
"metadata" : {
"author" : "Supa Kun",
"version" : "0.0",
"description" : "Basic shield graphic change"
}
}
_metadata
{
"name" : "spashield02",
"friendlyName" : "Spa kun shield 02",
"version" : "0.0",
"link" : "",
"description" : "Shield mod sample 02",
"author" : "Supa Kun"
}
STEP4. 動作確認
■各種ファイルの作成が終わったら、ゲームを起動して動作を確認。

バッチリ変更されました
※次のページ: アイテム追加やSteam Workshopへの投稿を解説!