Dead Cells Guide

Moddingガイド for Dead Cells

Moddingガイド

Overview

おそらく世界で初めてのDeadCellsのModdingGuide。つまりDeadCellsのデータをいじって自分好みのバランスで遊ぶためのガイド。飽くまで自己責任で行い、もし不具合が起きても、公式やSteamさんにお問い合わせをしないように。改造したデータでデイリーランなどを走ってBANされたりしても、当ガイドは一切の責任を負いません。

1.Unpack

まず初めに、データを解凍するためのUnpackerを下記サイトからDLし、好きなフォルダに置く。
[link]

次に、解凍するためのスクリプトを用意する。
—-で囲まれたテキストを、適当なテキストファイルに保存。

—-

#script for quickbms
# By Allen
# 2015 – 9 – 1 Evoland 2. Pak

idstring “PAK 0”
get DataOffset long
get fileSize long
get dummy short
get numFolder long
for i = 0 <numFolder
set folderName string “”
CallFunction unpack 0 folderName
next i

StartFunction unpack folderName
get namelen byte
getdstring name namelen
get type byte
if type == 0
get offset long
get size long
get dummy long
math offset + = Dataoffset
set fname string FolderName
string fname + = /
string fname + = name
log fname offset size
elif type == 1
string folderName + = /
string folderName + = name
get numEntry long
for j = 0 <numEntry
set folderName2 string folderName
CallFunction unpack 0 folderName 2
next j
endif
EndFunction

—-

上記手順が終わったらquickbms.exeを起動

保存されたスクリプトを選択

DeadCellsのインストール先にあるres.pakを選択

出力先フォルダーを選択

解凍が成功すればコマンドプロンプトが走り、大量のファイルが解凍されて出てくる。

2.編集 – 注意点

1の手順で解凍が成功していれば、出力先にしていたフォルダにres.pakの中身が放り出されているはず。
当ガイドでフォローするのは、ゲームバランスなどのデータが格納されているdata.cdbのみ編集はメモ帳などでOK。

ここまでの手順ができていれば、あとはいじるだけ。
ただし、ゲームファイルの中身も実際にゲーム上には反映されない没データであったり、ガイド著者が実際に効果を調査したわけではないものも大量に含まれるため、参考程度にとどめておくように。
なお、ファイル内のいくつかの項目はフランス語でコメントか記されているため、グーグル先生に頼めばこの手のデータいじりになじみがない人でもなんとかなるかも。
StalkerとかCiv、SkyrimとかのModをいじってた過去があるような人なら、だいたい直感的に改造できるはず。

—-

注意

data.cdbを編集する際、絶対に間違えてはいけないことがいくつかある。

編集を終えたファイルは、元のファイルと完全に同じファイルサイズでなければならない。

2018年度3/30時点でのdata.cbrは、改行や記号を合わせて7,789,248字、135,663行で構成されたテキストデータになっている。

編集後のデータを、これとまったく同じように維持する。

改行や行数が一つでも多いか少ないかすれば、データをRepackして起動した際にエラーが発生し、絶対にDeadCellsは起動しません。
たとえば、Survive属性に関する武器をBrutalityに変更することは可能だが、こうした変更を行った場合、最終的な文字数が変化するため、どこかで文字数を減らしたり、増やすかしないとダメ。
また、行数に関しては一切の余裕がないため、新しい行数を加えることは一見不可能。そのため、Tactitcs属性のみが当てはまる武器にもう一つの属性を追加したり、矢の速度が決まっている弓に、矢の速度を変更する記述を加えることも難しい。

これらのきわめて厳密なルールを守るため、編集する際は標準のテキストエディタではなく、『Notepad++』のように、編集時の字数・行数が表示されるエディタを使うのが望ましいでしょう。オリジナルのデータのコピーを作って別のタブに並べておけば、元のデータのサイズが一目でわかるため、エラーを起こさずに済みます。

なお、もし字数が元のデータより増減してしまった場合は、comment”~~~”と表記されている項目のセミコンロにはさまれているフランス語の部分を削ったり、あるいは適当な文字を付け加えたりする。行の上のほうにある項目類はゲーム中では表示されないコメントデータが多いため、削ったりしてもゲームに変更点が出てこない。


『シリアスサム』好き?ワイは大好き。
ちなみにMobの密度は”mobdensity”です。

—-

注意その2

デイリーランの更新が毎日行われるため、Res.pakは毎日未改造のものに差し替えられてしまう。
全開のdbrをそのまま流用して改造を行おうとすると100%エラーが出る。
デイリーラン報酬を取り終わった、あるいはそもそも興味が無いなら、改造済みのres.pakを保管しておき、プレイするときに差し替えてしまえば改造後のデータでそのまま遊ぶことができる。

3.Repack

Repackはreimport.batを起動し、Unpackしたときに使ったテキストファイルを読み込ませ、ルートディレクトリ上のres.pakを指定。最後に編集後のdata.dbrだけを置いたフォルダを指定すれば、バッチファイルがデータを再格納してくれます。
res.pakの最終更新日が直近のものに置き換わっていれば成功です。

ただし、編集の注意点として挙げたファイルサイズ・行数の制限を破っていたり、小数点が二つ連続していたり、全角文字が混ざっているなどのエラーがあった場合、ゲームはクラッシュしてしまいます。
成功していたた場合は特になにも表示されず、そのままゲームが始まりますが、もしスキルのCDなどを変更していた場合は、見るだけで変化している場所がわかるでしょう。
慣れてくれば、武器の攻撃速度や硬直時間を編集したり、装備につくAffix類の確率を変更するぐらいのこともできます。自分の遊びやすいバランスで遊ぶというのがModdingの醍醐味だと思いますので、存分に自分だけのDeadCellsを楽しんでください。

幸運を祈ります。

Ex.編集情報

ここまでの記述だと味気ない感じなので、ざっくりとdata.cdb内の構文について記述

—-

よく出てくる記述類

“count”:
なにかをカウントするときに使われる。
一度に発射する矢やベアトラップの量だったり、Fastbowでクリティカルが発生するために必要な準備ヒット数とか。
そのたびに示す項目が違うので注意が必要

“prct”:
ボーナスのダメージ倍率とかペナルティがかかる場合に使う。
重タレットのダメージボーナスとか、腐敗の力のペナルティとか。
プラスとマイナスのどっちに作用するかはそのときどきで違うのでややこしいが、腐敗の力についてるこれを”prct”: -0.5とかにすると、使用中は被ダメージが逆に減ったりする。
ほか、たまーにHPが何割で発動するなにかの閾値チェックや、盾の防御率に使う

“tier1”: “Tactic”,
見ればわかるとおり対応属性。Brutalityとかに変えれば対応色が変わる。
この手の編集をやった場合は字数が増減するので、どっかのコメントを削ったり増やしたりする必要がある。
tier1しかないスキルとかにコピペでtier2とかつけて二色目を足そうとするとCTDするので厳禁。

“duration”:
効果時間。腐敗の力とかデコイ使用時の隠蔽時間とか色々。
レイピアの回避後クリティカル受付時間とかキワモノもある。

“aoeDuration”:
aoeというかDoTを与えた際の効果時間。
こっちは例のdpsと違って、時間を延ばしても効果は薄れないっぽい。
効果時間を延ばすと重ねがけしまくって強くなりすぎる場合がある

“distance”:
効果範囲。クラッシャーとか回転のこぎりの設置範囲。
フックの投擲距離やショックウェーブで吹っ飛ばす距離にも使う。

“range”:
グレネード系武器の効果範囲など、周囲に効果を及ぼす範囲であることがほとんど。
狩猟弓のクリティカル判定範囲とか、Tranquilityが発動するモブがいない距離判定とかにも使われる。

“power”:
一番よく出てくる記述。一発あたりの効果量。
ダメージやヒールなどにもれなく使われる。

debuff”:
めったに出てこないが、スタン時間のことが多い

“bump”:
敵を弾き飛ばす距離。または移動時に自分が動く攻撃などで自分が動く距離だったりする。

“tick”:
毎秒あたりに効果を及ぼすスキルや武器に出てくる。
敵にダメージを与える頻度などと考えればいい。短いほど早く、強い。

“cellCost”
“moneyCost” アンロック時の必要セルと、お店で買うときの基本価格

“ammo”:
弾薬数。弾薬はパワー。

—-

例文

“id”: “TreasureDoor”,
“comment”: “Prix des portes péages bloquant un trésor (v1=curse)”,
“value0”: 1000,
“value1”: 10,
“icon”: {
“file”: “placeholderIcons.png”,
“size”: 16,
“x”: 5,
“y”: 32
},
“tile”: {
“file”: “cardIcons.png”,
“size”: 24,
“x”: 42,
“y”: 32
}
},

金を払って開けるタイプのドアの記述。
value0が金額。value1の部分はさてなんでしょう。
答えはコメントでv1=curseとあるとおり、ぶっ壊したときの呪い数。
従ってv0を500にすると500¥で開き、v1をゼロにすると呪いがなくなる。

—-

例文2

“id”: “HorizontalTurret”,
“group”: 0,
“name”: “Tourelle rapide”,
“props”: {
“dps”: [
45
],
“effectCD”: 0.2,
“targetable”: true,
“life”: 200
},
“castCD”: 8,
“droppable”: true,
“tags”: [
{
“tag”: “Ranged”
},
{
“tag”: “HasBullets”
},
{
“tag”: “Deployable”
},
{
“tag”: “NeedPower”
},
{
“tag”: “UnlockInPublicEvent”
}
],
“gameplayDesc”: “Tire rapidement sur tous les ennemis proches, infligeant ::+dps:: dégâts/sec.”,
“icon”: {
“file”: “cardIcons.png”,
“size”: 24,
“x”: 1,
“y”: 0
},
“cellCost”: 15,
“moneyCost”: 1750,
“tier1”: “Tactic”,
“hasLevels”: true
},

連射タレットの記述。
多分mod慣れしてる人は一発でなにかわかる。
idがアイテム名、effectCD一発あたりの発射間隔。lifeはタレットの耐久力。
castCDはこのスキル自体を再使用するまでにかかる時間。
dpsは時間単位に発揮される火力を示しているが、effectCDと相互作用がある。

どういうことなのかというと、dpsとeffectCD二つの記述があるスキルは、実際に発揮される威力が『dps ÷ effectCD』になる。
「effectCDを早くすれば連射されるようになるから時間単位の威力も上がるだろう」とか考えるのが普通だが、この場合はeffectCDだけ上げてもたくさん矢が出てくるだけで、秒間あたりのダメージはまったく変わらない。よって威力を上げたいならdpsを上げればよい。

—-

例文3

初期弓の性能記述。以下ざっくりと説明

{
“item”: “StartBow”, 武器名。
“airControlAlways”: true,
“isACancel”: false,
“allowCrouch”: true,
“strikeChain”: [
{
“charge”: 0.25, 振り出しの早さ。早ければ早いほど隙が少ない
“coolDown”: 0.1, 次の攻撃までにかかる準備時間。下記lockctrlのみでこのCDがない場合も多い
“lockCtrlAfter”: 0.1, 発動硬直。この攻撃を振った後、この時間数だけジャンプも回避も次の攻撃もできない。上記cooldownがゼロなら、この数字がそのまま次の攻撃が出るまでの速度に直結する。ちなみにCooldownは振り出しからカウントされるので、CD0.1でlockも0.1なら次の攻撃は0.1秒で出せる。lockはあくまで硬直時間。CDは待機時間と覚えればいい。
“power”: [ 30 威力。なお武器に表示される見かけ上のDPSは、振りの早さとこのPowerを参照しているっぽい。よって振りが遅く、威力が高い武器の振りを早くするとDPSがおかしくなるし、実際火力が高くなる。
],
“dynamicCharge”: 0,
“breachBonus”: -0.5, 
“props”: {},
“hitFrame”: 0,
“canCrit”: false,
“critMul”: 1.5, クリティカル発生時の倍率。1ならシステムデフォ。つまり2倍。これは1.5なので3倍だが、そもそもStartbowにクリティカルがないので無意味な数字。
“area”: {
“shape”: 0,
“width”: 0, 攻撃の横幅。エフェクトは据え置きなのでいじるとだいたい見栄えが不自然になる
“height”: 0, 攻撃の縦幅。
“offsetCaseX”: 0,
“offsetCaseY”: 0
},
“glowColor”: 12376805,
“fxInnerColor”: 12376805,
“fxOuterColor”: 12376805,
“sfxCharge”: “sfx/bow_charge1.wav”,
“sfxRelease”: “sfx/bow_shot1.wav”,
“sfxHit”: “sfx/arrow_hit.wav”,
“animSpd”: 2.5 行動中のアニメスピード。実際の当たり判定とかと関係があるかはしらない。
},

ーーーー

例文4

燃焼中の敵に対するボーナスダメージの記述

{
“id”: “FireDamage”,
“chance”: 90, 装備に付与される確立。無色装備を店売りに出すことも可能。高ければ出やすいはずだが、どうも全体のバランスを見ているらしく、一つだけ高くても特に出やすくはないような……
“requiredTags”: [], このAffixを使用するために必ず必要な装備属性。
“forbiddenTags”: [ このAffixが決してつかない装備属性。これは盾とか火を使う武器などが排除されている例
{
“tag”: “NoDamage”
},
{
“tag”: “Shield”
},
{
“tag”: “NegligibleDamage”
},
{
“tag”: “Fire”
}
],
“forbiddenAffixes”: [ このAffixと共存しない装備効果
{
“affix”: “FullLifeDamage”
},
{
“affix”: “SuperCrit”
}
],
“sortPriority”: 2,
“props”: {
“prct”: 1 与えるダメージボーナス。1なら100%。
},
“group”: 2,
“icon”: {
“file”: “cardIcons.png”,
“size”: 24,
“x”: 6,
“y”: 2
},
“desc”: “+::prct::% de dégâts sur une cible enflammée”,
“itemRestriction”: 2, Affixのつく装備分類。3だとタリスマンや盾の防御関係だったり、0だか1だとプライマリ武器のFiredamageとかと同じ扱いになる。変な装備に変なAffixの組み合わせになりやすいので放置が無難。
“costImpact”: 0, おそらく価格の変動値。
“forbiddenItem”: [ このAffixが決してつかない装備
{
“item”: “OilBomb” 
}
],
“index”: 4,
“allowStacking”: false
},

ちなみに、Forbidden~~から該当のタグを消してしまいたい場合、削除するのではなく適当に1字削ったり書き換えるだけでいい。
ただし下手にいじるとまったく意味のないAffixのついた装備とかができるので注意。

ーーーー

その他需要がありそうなもの

“timedDoor”: 時の扉が閉まる時間
“id”: “Always” ほか、Uncommon Rareなど続く。設計図のドロップ確率。
“id”: “Common”

SteamSolo.com