見出し画像

🎨『Don't Starve Together』自作キャラMODの作り方

自分の作ったキャラでゲームしてみたい!
ドンスタはキャラMODの作り方が用意されており、比較的MODが作りやすいゲームです。絵が描けるならチャレンジしてみると楽しいですよ。

ただ、微妙に複雑ではある(・ω・)
間があくとすぐに作り方を忘れるんですよね…。ので自分の忘備録として記録しておくことにします。



Don't Starve Mod Toolsのインストール

MODを作るために必要なツールになります。

ライブラリのジャンルから「ツール」を選択

ライブラリのツール一覧から「Don't Starve Mod Tools」が見つかるはずなので、右クリックしてインストールしてください。


Extended Sample Character DSTのダウンロード

このMODは作成用のテンプレートになっています。
要はこのファイルを書き換えていけばMODが完成するということ!
(※更新は2020年6月9日で止まっており、最新に完全に対応することはできません。しかしこのテンプレートを使うのが基本になります)

上記MODをサブスクライブ後、一度ドンスタを起動します。
(起動しないとmodsフォルダにファイルが作成されませんので忘れずに!)

起動したドンスタを一度閉じ、自分のPCのmodsフォルダを確認します。私みたいに超変則な場所に保存していると見つけるのが大変!なので、簡単な見つけ方はこちら。

ライブラリで「Don't Starve Together」を右クリックし、
「管理」⇒「ローカルファイルの閲覧」でまずドンスタのフォルダを特定する。

(保存場所)steam\steamapps\common\Don't Starve Together

という具合に開くと思います。その中の「mods」フォルダを開き、「workshop-361202313」を探してください。(更新日時が最新だと思うのですぐ見つかると思います)これが先ほどサブスクライブしたMODになります。


自分用に書き換えていこう

もしエラーが出た時にリカバリできるように、そのフォルダは予備にとっておき、コピーを作成してそちらを書き換えていくと良いと思います。

◩フォルダ名の変更

「workshop-361202313 - コピー」等の名前になっているものを、自分の解りやすいように変えてください。「myMOD」とか何でもいい。
今回TRPGで使っている自キャラの石上を作るので「isigamiMOD」とします。

◩tex、xml、zip形式ファイルの消去

フォルダ内(サブフォルダ含む)に含まれているtex、xml、zip形式ファイルは残さず全部消してください。作ったあとに新しく作成されるので消して問題ありません。

◩modinfo.lua(MOD解説)を書き換える

テキストエディタで開いて問題ありません。修正箇所は以下。ダブルクォーテーション(")をうっかり消さないように気を付けてください。

name = "(MOD名)"
description = "(説明文)"
author = "(作者名)"
version = "(バージョン)" 解りやすく自分の番号にしていい
書き換えたあとはこんなかんじ。

◩modmain.lua(キャラ選択画面の部分)を書き換える

①内部の一部単語を全部書き換えることになります。
テキストエディタで開き、『esctemplate』『ESCTEMPLATE』になっている部分を全置換を使って任意の名前に変えましょう(esctemplateはサンプルネームのため)
置換の仕方はctrl+Hで開き、設定部分で「大文字と小文字を区別する」にチェックを入れてください。
今回私は石上を作るので、『esctemplate』を『isigami』に、『ESCTEMPLATE』を『ISIGAMI』にします。小文字は小文字に、大文字は大文字にします。1つでも残すとエラーが出るので注意!

②キャラ説明文を書き換えます。必要そうな修正箇所は以下。
※既にisigamiやISIGAMIに置き変わっているので、コピペしないように注意。isigamiやISIGAMIになっている部分は①が上手く出来ていればすでに任意の名前に変わっているはずです。

-- The character select screen lines
STRINGS.CHARACTER_TITLES.isigami = "(MOD名)"
STRINGS.CHARACTER_NAMES.isigami = "(キャラの名前)"
STRINGS.CHARACTER_DESCRIPTIONS.isigami = "*(パーク1) \n*(パーク2) \n*(パーク3)"
STRINGS.CHARACTER_QUOTES.isigami = "\"(簡易解説)\""
STRINGS.CHARACTER_SURVIVABILITY.isigami = "(生存難易度)"


-- Add mod character to mod character list. Also specify a gender. Possible genders are MALE, FEMALE, ROBOT, NEUTRAL, and PLURAL.
AddModCharacter("isigami", "(性別)", skin_modes)

パークは説明文に書かれている特徴になります。\n(または¥n)は改行です。性別はMALE、FEMALE、ROBOT、NEUTRALなどから選びます。

書き換えた一部はこんなかんじ。

◩scripts/speech_esctemplate.lua(キャラの台詞)を書きかえる

①内部データを最新のものにします。
このファイルは台詞部分を扱っています。
このテンプレートは古いので2020年6月以降にアプデされた内容に対応していません。置き換えなくてもエラーはでませんが、全部の台詞に対応したいなら最新の内容に置き換える必要があります。
現在の台詞に対応しているファイルを見つけることにします。

(保存場所)steam\steamapps\common\Don't Starve Together\data\databundles

上記フォルダはMODではなく本体データなので扱いは慎重に。
中にあるzip形式のものから、「scripts.zip」をデスクトップなどどこか適当なところへコピーし、解凍します。
すると、speech_〇〇〇.luaファイルが多く出てきます。〇〇〇は公式キャラ名です。これが各公式キャラの台詞を扱っているファイルになります。
作りたいキャラと近い性格のキャラのspeech_〇〇〇.luaをspeech_esctemplate.luaと同じフォルダに移し、speech_esctemplate.luaは消去します。

②移したspeech_〇〇〇.luaの〇〇〇部分を書き換えます。
さきほど全置換で置き換えた名前と同じようにします。
私の場合は『speech_isigami.lua』になります。

③さあ、地獄の翻訳作業だ。
ダブルクォーテーション(")内が台詞になっています。この部分を翻訳し、自分のキャラにあった台詞に書きかえていきましょう!chatGPTとかも駆使しながらがんばれ。
何のアイテムに対応した台詞なのか解らない場合は、下記のURLを参考にしてみてください( ˘ω˘ )

ダブルクォーテーション(")を消さないように注意!一番起こりやすいエラー原因です。

こころが折れた場合は、modmain.lua内の下記の部分

-- Custom speech strings
STRINGS.CHARACTERS.ISIGAMI = require "speech_isigami"

"speech_isigami"を"speech_wilson"など公式キャラの名前に変えれば、そのキャラの台詞になると思います。日本語翻訳MODを入れているなら自分で翻訳する手間もないんじゃないかな。
※『esctemplate』は『isigami』に、『ESCTEMPLATE』は『ISIGAMI』置き換わっている状態の例です。

◩scripts/prefabs/esctemplate.lua(キャラの基本ステータス)を書きかえる

①ファイル名や内部を書き換えます。
さきほど全置換で置き換えた名前と同じようにします。
私の場合は『isigami.lua』になります。
また、テキストエディタで開き、内部も同じように『esctemplate』『ESCTEMPLATE』になっている部分を全置換を使って任意の名前に変えます。

②ステータスや特殊スキルを設定します。

❖基本ステータス値

-- Your character's stats
TUNING.ESCTEMPLATE_HEALTH = 150
TUNING.ESCTEMPLATE_HUNGER = 150
TUNING.ESCTEMPLATE_SANITY = 200

上記の状態だとHPが150、空腹が150、SANが200です。
この数値をキャラにあった数値に変更します。

❖初期所持品の設定

-- Custom starting inventory
TUNING.GAMEMODE_STARTING_ITEMS.DEFAULT.ESCTEMPLATE = {
"flint",
"flint",
"twigs",
"twigs",
}

上記の状態だと初期の所持品にフリントが2個、小枝が2個入った状態になります。変更する場合は変えます。アイテム名については先ほど台詞の項目で出したwikiの一覧が役に立つと思います。

❖キャラクターボイスの設定

-- choose which sounds this character will play
inst.soundsname = "willow"

キャラクターのボイスを設定できます。初期ではウィローの声になっています。公式キャラのボイスから選ぶことになるでしょう。

修正だけなら上記のみですが、特殊な設定をする場合は下記のコードを追記していきます。
実はMOD作ったのわりと前なので記憶がぼんやりしています…( ˘ω˘ )
間違っていたら申し訳ないですが例を書いておきます。
local master_postinit = function(inst)以下に追記するのが多分良いと思います。

❖移動速度の設定

inst.components.locomotor.walkspeed =7
inst.components.locomotor.runspeed =8

足の速さです。好きな数値に設定してみてください。
上記の設定だと普通よりちょっと速いです。

❖行動スピードの変更

inst.components.workmultiplier:AddMultiplier(ACTIONS.CHOP,   1.5, inst)
inst.components.workmultiplier:AddMultiplier(ACTIONS.MINE,   1.5, inst)
inst.components.workmultiplier:AddMultiplier(ACTIONS.HAMMER, 1.5, inst)

切ったり、掘ったり、ハンマーを使ったりする時のスピードを変えてます。
これだと1.5倍って感じですかね…。

❖SAN回復オーラ

inst:AddComponent("sanityaura")
inst.components.sanityaura.aura = TUNING.SANITYAURA_SMALL

GlommerのようにSAN回復のオーラを発します。
種類はTINY 、SMALL、LARGE、HUGEから選べる模様(Glommer は TINY)
上記はSMALL設定です。

❖クラフトボーナス

    inst.components.builder.science_bonus = 1

science_bonus = 1
公式キャラのウィッカーボトムは知識豊富なため、サイエンスマシンで作成可能なアイテムを最初からクラフト可能なのをご存知でしょうか。それと同じ効果です。

	inst.components.builder.science_bonus = 100 
	inst.components.builder.magic_bonus = 100 
	inst.components.builder.ancient_bonus = 100 
	inst.components.builder.shadow_bonus = 100

このように全部100にすると全部のレシピが解除されます。

❖一部のレシピのみ解禁

local structures = {"healingsalve", "bandage", "lifeinjector"}
for i=1, #structures do
inst.components.builder:UnlockRecipe(structures[i])
end

"healingsalve", "bandage", "lifeinjector"で3つの製作を解禁しています。
石上は医者なので、薬や包帯等を事前に知っている設定にしたい…とかそういう場合に使えます。

❖SAN減少温和

inst.components.sanity.night_drain_mult =.80

夜のSAN減少を0.8にして若干温和しています。

inst.components.sanity.neg_aura_mult =.80

モンスターなどから食らうSAN減少を温和しています。

inst.components.sanity:AddSanityAuraImmunity("ghost")
inst.components.sanity:SetPlayerGhostImmunity(true)

幽霊からのSAN減少を免除しています。
ここら辺はscripts.zip内のprefabsフォルダにあるwendyを参考にしてます。要はウェンディの幽霊無効効果。

他にもプログラミングに強ければいろいろできると思います!

◩scripts/prefabs/esctemplate_none.luaを書きかえる

さきほど全置換で置き換えた名前と同じようにします。
私の場合は『isigami_none.lua』になります。
また、テキストエディタで開き、内部も同じように『esctemplate』『ESCTEMPLATE』になっている部分を全置換を使って任意の名前に変えます。


画像も変更していこう

png画像、フォルダ名、及びscmlの『esctemplate』になっている部分はやはり任意の名前に変えていきます。(ghost_esctemplate_build等も)
そしてついに、すべてのpng画像を変更していきましょう。気合いだ!

portraitの背景や名前の画像は下記を参考にすると良いです。

▲ポートレート
▲顔一覧 石上は片目隠れているのでそもそも描かないようにした。
▲髪 虚無(透過のみ)。面倒なので輪郭と一緒に描いてます。
▲こんな感じで。 揺れ動かないけどだいぶ楽だよ
▲帽子をかぶる用 それっぽくぶつ切ろう
▲身体 ウネウネ。どうせ服スキンを着てしまうので手抜きです
▲MAPアイコンなども描いて
▲これはmodicon。最後にちょっと手間が必要です。後述。

◩表示確認はDon't Starve Mod Toolsで

「exported」内のそれぞれのフォルダ内にscmlファイルがあるので起動してみます。開くアプリの種類をきかれたら、Spoiter.exeに設定しておくとツールが起動して楽です。

ここら辺の設定は前にしてしまったので、正直デフォだとどうなっているのか忘れてしまいました。Spoiter.exeに設定できなかった場合は「ライブラリ」→「Don't Starve Mod Tools」を起動し、Launch Spriterで起動します。
「File」→「Open Spriter Ploject」でscmlファイルを選択すれば開くはずです。

▲Spriter画面

これである程度位置などを確認することができます!

どうでしょうか?すべて用意出来ましたか?
MODって作るの大変ですよね()もうこの記録を書くだけでわりとヘトヘトになりました。


いよいよ組み立て!!

完成したらドンスタを起動……の前に、modicon.pngを直下ではなくサブフォルダに複製しておきます。大丈夫です、ちょっとデータが増えたくらいでエラーは出ません。ちょっとしたおまじないです。

起動すると作ったデータをDon't Starve Mod Toolsがコンパイルしてくれます。エラーを吐いたら原因を潰しましょう。

完成だ!

こんな風にMOD一覧に表示されればOKです!
え?modiconが反映されてない?

◩modiconは自動で作れない!!!

直下にあるせいなのか、なぜか自動で作成してくれません。
そこでさきほどおまじないでサブフォルダに複製しておいたmodiconの方を確認してみてください。そちらで作られたtex、xmlファイルを持ってきて上書きしてあげるとちゃんと表示されるようになります。

完成だ!!!

文章やスタート所持品なども反映されてますね!
え?名前の部分がおかしい?名前の画像、面倒なのでつくってないんですよね…自分しか使わないし…( ˘ω˘ ) なんかコロコロ変わるしバグがでてるみたいなんで他の解説ページを参考に直して下さい(投)

表情差分や服のスキンもちゃんと反映されます。
お洒落したいならある程度原作と絵のタッチや頭身を合わせた方がいいです。


ダンスダーンス MAPアイコンや装備蘭の黒塗りも反映されてます

以上、ドンスタMODの作り方でした。
詳細については下記の動画で解説されています(英語ですが…)


この記事が気に入ったらサポートをしてみませんか?