街の追加や修正

ページ名:街の追加や修正

はじめに

FCSにおいては、スクインなどの都市から盗賊のアジト、遺跡、廃墟までマップ上にアイコンが表示されるもの全てが街という単位で扱われる。また、動物の巣や野盗のキャンプなども扱いは特殊だが街として存在している。


街の追加や修正は複数の要素が影響し、FCS上だけでなくフィールドへの編集も必要になる。
大雑把に言えば、フィールド上で建物を配置し、FCSでTOWNとFACTIONに住人を設定する。住人(SQUAD_TEMPLATE)にはキャラクター情報だけでなく、住居に関することを設定する。

  • FCSで編集するもの
    • TOWN
      街についての基本的な設定。名前、地図上のアイコン、住人など。
    • FACTION
      勢力全体の設定。勢力下の街に適用される住人の設定もある。
    • SQUAD_TEMPLATE
      街の住人の詳細、およびその住居のレイアウト情報、配置されるアイテムなど。
  • フィールド上で開発者モードを開き編集するもの
    • 建物
      街灯、住居、壁、砲台などの配置。住居の内装はここでは作らない(作っても意味がない)
      ストームハウスのように住人を配置できる建物を特に住居と呼ぶこととする。
      住居の内装および看板はそこに住む部隊(SQUAD_TEMPLATE)で設定する。
    • 街のマーカー
      開発者モードの「町の配置」で街の位置と範囲を指し示すマーカーを置くことで、街として認識される。

 重要なポイントとして、FCS上の街データとフィールド上の建物というのは本質的に別々のものである。建物はKenshiのフィールドの一部と言っていい。そこに街の情報を被せることによって住人が生成され、プレイヤーの知る街の形となる。
 例として、ホーリーネーション領にはホーリーファームという街が複数存在するが、FCS上では「ホーリーファーム」という街データは1つしかない。1つの街データを複数地点の建物に適用することにより、ゲーム上では複数のホーリーファームが存在している。
 また、世界情勢の変化にあるような街の所属勢力が変わる現象はオーバーライドと言うが、これある街のデータが別の街に差し替わることによって起こる。


 街のシステムはデータの構造を知らないと把握しづらいが、既存の勢力の街の追加や修正、勢力変化が少ない手間でできるようになっている。

新しい街を作る基本的な操作

  1. FCSでTOWNを新規作成する。
  2. ゲームを起動して、街を建てたい場所で開発者モードを起動する。
  3. 上部メニューの「建物」で街となる建物群を配置。
  4. 上部メニューの「町の配置」から、FCSで作成した街を選択し、建物群が範囲に収まるように置く。
  5. 上部メニューのプルダウンリストから保存先のMODを選択し、保存する。

確認の際はニューゲーム時のバグが発生する可能性を考慮しゲームを再起動することを推奨。
保存したMODを適用した状態でニューゲームし、建てた街の場所に建物と住人が配置されていたら成功。

MOD保存時の注意

開発者モードのMOD保存は、「現在のフィールド上の建物」を保存する。
そのため、古いバージョンのMOD建築物が残っているセーブデータを使ったり、プレイヤーの作った拠点、FACTIONの「building replacements」によって置換された建物が存在する状態でMOD保存をしてしまうと、その状態を「そのMODでのデフォルト」として保存してしまう。
そういったことを避けるため、フィールドを編集するときはニューゲームした状態で行うことを推奨する。

街の削除

  1. ゲームを起動して、街のある場所で開発者モードを起動する。
  2. 街の中心の像を視界に入れた状態で、上部メニューの「町の配置」からその街を選択する。
  3. 視界に入れていた像が動かせる状態になるので、deleteキーを押す。

データの意味

調査していないもの、関連が薄いものは省略する。

TOWN

  • 左側項目
General
is public部外者に開放されているか。falseだと不法侵入として攻撃されることがある。例:ニュークラリア
resident overrideFACTIONで設定された住人(bar squad、resident、default resident)を上書き(無視)するか、追加するか。
trueの場合、FACTIONの住人は無視される。
falseだとFACTIONで設定した住人も配置されるようになる。residentに設定した優先度は、FACTIONとTOWNどちらであっても同じ優先度として扱われる。
town radius mult街の範囲円の大きさ係数
type都市、村、遺跡など街のタイプ。マップ上のアイコンが変わるだけでなく、bed usage costなど挙動に影響を及ぼす。
unexplored name街を遠目に発見したとき、または旅行品店で買った地図を使った時の名前。
spawn junk
num centrepointsdebrisの発生点の個数
  • 右側項目
項目名説明val0val1val2
faction街が所属する勢力。住人のsquadに勢力が設定されていない場合はこれになる。
bar squad決まった住居を持たないsquad。出現確率
residents住居に配置されるsquad。優先度(最大5)
default residentsresidentsを住居に配置し終わっても空いている住居がある場合、これで埋められる。
debris buildingscentrepointsを中心として建築物をランダムに配置する。
例:カニバルハンターのキャンプでは、中心に焚火と日よけを配置し、少し離れた位置に椅子や寝袋をランダム配置、という塊が複数発生する。
個数中心からの最小距離中心からの最大距離
override townオーバーライド先候補の街
world stateこの街がオーバーライド先に設定されているとき、このワールドステート条件を満たした時にオーバーライドが発生する。複数設定可能。
これが設定されていると開発者モードの「町の配置」リストに載らなくなる。
真偽
roaming squad不明。これにsquadを設定しても出現を確認できなかった。巣用なのかもしれない。

Faction

  • 右側項目
項目名説明val0val1val2
bar squad決まった住居を持たないsquad。街のtypeがTOWN_TOWNの時のみ出現する。出現確率
residents住居に配置されるsquad。優先度(最大5)
default residentsresidentsを住居に配置し終わっても空いている住居がある場合、これで埋められる。
coexistence敵対していても、積極的には攻撃しない相手
building replacements勢力下の街にある建物の置換パターン。
例として、シェク王国はホーリーネーションの篝火を外灯に置換する。
注意点:人が住める住居も置換元・置換先に設定可能だが、住居から住居以外に置換するとインテリアの親が不正となりエラー落ちする。なんでもいいのでinteriorが設定されている建物を置換先にすること。

SQUAD_TEMPLATE

  • 左側項目
General
sell home住んでいる家を売るか。
town residents
bed usage costベッドの使用料金。TOWN_POIなど街によっては設定によらず0になる。例:反乱分子の基地
building designationNPCが建物をどう見るか。細かい例は不明だが、例えば「買い物」目的で寄るかどうかなどにつかわれるのかもしれない。
building name左クリックしたときに表示される建物の名前
building ruined廃墟化されているかどうか。誰も居ない廃墟というのはこれがtrueで部隊員が設定されていない状態。
layout exterior建物の看板の名前
layout interior建物のインテリアの名前。
非常に重要な項目。これが合う建物がないと、住人として配置されない。
public bed部外者がベッドで寝ることができるか。trueでも料金は必要。
public dayそれぞれ昼夜でパブリックかどうか?
いつからnightなのかはよくわからない。時間ではなく戸締りのAIが関係しているかもしれない。
public night
regeneratestrueだと部隊員が欠けても徐々に復活するらしい。
  • 右側項目
項目名説明val0val1val2
faction属する勢力。squadが建物の住人である場合、建物の所属もこれになる。
building住居とする建物を限定する。理由は不明だが、門は通常住居としては選ばれないがこれに指定した場合は門を住居として住人が生成される。門番はそのようになっている。
building dislike住居として選ばれない建物を指定する。
leadersquadのリーダー。ここで指定しなくてもsquadから選ばれる模様。人数
squad部隊員。人数は最小人数から最大人数の間でランダム。最少人数最大人数(0の場合ランダム幅なし)
squad2部隊員。squadとの違いはAI packageでの扱い。squadとsquad2で別々の行動を指定して交代警備のようなことができる。最少人数最大人数(0の場合ランダム幅なし)
animal動物の部隊員。人数は最小人数から最大人数の間でランダム。最少人数最大人数(0の場合ランダム幅なし)年齢
animal2動物の部隊員。squad2のようなものかもしれない。最少人数最大人数(0の場合ランダム幅なし)年齢
slaves奴隷として使役されている部隊。
housemate同じ建物を住居とする別のsquadを追加で指定できる。勢力はこのsquadと同じになる。
choosefrom list左側項目のChoosefrom listの設定と合わせて、部隊員をこのリストの中から確率で選ぶらしい。詳細は不明。確率
AI packageNPCの行動パターン。
vendors住居内の容器に入るアイテムのリスト。店の場合は商品リストでもある。複数指定されたときはval0で指定された割合で配置される。割合
world state指定した条件を満たすときのみsquadが生成される。真偽
special itemsvendorsとは別にアイテムを指定できる。個数

住人とインテリアとの関係について

まずインテリア(layout interior)とは何かという事だが、これはストームハウスやステップハウスなどの住居に用意された、室内の建築物配置パターンである。
同様にエクステリア(layout exterior)は住居に用意された看板のパターンである。
住居にどのようなインテリア・エクステリアがあるかは開発者モードで建物をクリックすると表示されるレイアウトウィンドウから確認可能。

インテリアの追加・修正

レイアウトは新規に作成、および既存のものを修正してMOD保存することも可能。

  1. 開発者モードを起動する。
  2. 「建物」からインテリアを編集したい建物を適当なところに配置する。
  3. 保存先のMODを開発者モードメニューから選択する。
  4. 建物をクリックする。
  5. レイアウトウィンドウの「インテリア編集モード」をクリックする。
  6. レイアウトウィンドウの「インテリアを表示する」をONにする。
  7. 室内に建物を配置する。
  8. インテリア名を入力する。既存のインテリア名を入力すると上書きされることになる。
  9. レイアウトウィンドウの保存ボタンをクリックする。
    開発者モードメニューの「MOD保存」は現在のフィールド状態を保存するものなので間違えないように注意。

エクステリアを編集する手順はインテリアの時とほぼ同じ。注意点など

  • レイアウトウィンドウの「インテリアを表示する」をOFFにして作業する。
  • 保存できるのは看板のみで、砲台や照明は外壁に設置してもインテリアおよびエクステリアとして保存できない。
    • インテリア編集モードをOFFにして設置すれば、屋外の建物として開発者モードメニューからMOD保存可能。
    • 砲台については、インテリアとして屋上に設置してから縁まで移動させれば、縁に配置した形でインテリア保存することが可能。屋外の建物として設置した時と動作や射程が同じになるかは不明。

住人のインテリア指定と配置先

住人のSQUAD_TEMPLATEにはlayout interiorの項目があり、これは空白にするかインテリア名を入力する。

  • 空白の場合はいずれかの住居に配置される。このとき室内には何もない。
  • インテリア名が入力されている場合は、その名前のインテリアを持つ住居に配置され、室内もインテリアに沿ったものとなる。
    • 入力された名前と一致するインテリアを持つ住居がない場合、住人は配置されない。

layout exteriorと一致するエクステリアがない場合、看板は何もなくなるが住人は配置される。

配置の具体例

たとえば自作した街にストームハウス、ステップハウス、監視塔、小屋があり、酒場を配置するためlayout interiorに「Bar」を入力した住人を追加したとする。

  • この街ではストームハウスとステップハウスのいずれかが酒場になる。
    • バニラではストームハウスとステップハウスには「Bar」という名前のインテリアがあるが、監視塔と小屋にはないため。
  • もし、より優先度の高い住人がストームハウスとステップハウスに既に配置されていた場合は酒場はこの街には出現しない。
  • 「Bar」という名前のインテリアを監視塔や小屋に追加したなら、監視塔や小屋が酒場になることもある。

アイテム配置について

住居にはアイテムを配置することができる。いくつかの方法とその特徴を説明する。

インテリアの一部としてアイテムを配置する

商店の棚にはよくアイテムが置いてあるが、これはインテリアの一部として設置されたものである。

  • 設置できるのは銅や燃料といった個別のアイテムではなく、FCSから編集できるPlaceable Groupsというもの。
    • Placeable Groupsは出現するアイテムに幅を持たせるための仕組みであり、アイテムと出現比率が設定してある。
    • 設置したPlaceable Groupsは、ゲーム上ではリスト内のアイテムにランダムで変化する。
    • クロスボウと義肢は選択不能なため設置できない。
    • 武器の品質はPlaceable Groupsのweapon manufacturersに従う。
    • 防具の品質は住人が属する勢力のarmour vendor quality chanceに従う。

インテリア編集中に開発者モードメニューの「アイテム」のリストから選んで設置できる。

床や地面にバラまく

住居を中心に床や地面にバラまく方法。廃墟に散らばっているアイテムはこの方法で配置している。

  1. TOWNを新規作成する。
  2. no-foliage rangeを0にする
  3. typeをTOWN_NESTにする
  4. loot spawnに設置したいアイテムをベンダーリスト*1として追加し、個数を入力する。
  5. size radius(バラまき範囲)を調整する。
  6. こうしてできたTOWNを、住人のnestに設定する。

注意点など

  • no-foliage rangeとtypeについては意味があるか分からないが、既存のnestに沿って一応設定している。
  • 武器の品質はベンダーリストのweapon manufacturersに従う。
  • 防具、クロスボウ、義肢の品質は一律で街が属する勢力のarmour vendor quality chanceに従う。
  • 動物の巣にアイテムが散らばる仕組みを流用していると思われる。仮に動物の巣をそのまま使ってもおそらく動物はスポーンしない。

住人にベンダーリストを設定する

室内のチェストなどの中に配置される。
バニラでも幅広く使われている方法であり、商店の主な商品リストもこれで設定している。

  1. 住人にベンダーリストを追加する。
  2. vendor fill total amountに配置したい総数を設定する。実際に配置されるのはちょうどの数でなく増減する。

注意点など

  • 武器の品質はベンダーリストのweapon manufacturersに従う。
  • 防具の品質は住人が属する勢力のarmour vendor quality chanceに従う。
  • クロスボウの品質は住人のcrossbow levelsに従う。品質は上下することがある。
  • 義肢の品質は住人のrobotics levelsに従う。品質は上下することがある。

商店の場合の設定

  1. 住人のis traderをtrueにする。
  2. 住人のvendor moneyに金額を設定する。
    店の所持金は商品の豊富さによって自動的に増えるが、それにこれが加算される模様。
  3. 商品の更新間隔として、住人のvendor refresh timeを設定する。
  4. AIとダイアログを設定する。これの詳細についてはここでは触れない。

以上の設定により取引が可能になり、また商品リストと所持金の更新が行われる。
注意点など

  • vendor refresh timeは0だと機能しないので、0.1でもいいので0より大きい値にする。また、どれだけ短くしても一度店から出ないと更新が起こらない。
  • キャラクターの設定項目に「is trader」、「NPC class」というものがある。バニラではこれがtrueやOT_TRADERとなっているキャラクターがいるが、これは商人として必須の設定ではない。
    • NPC classをOT_DIPLOMATにすれば敵対状態でも会話が可能になるため、買い物が可能。ただしその場合は敵を攻撃しないAIを設定する必要がある。

special itemsを設定する

室内のチェストなどの中に配置される。
アイテムの種別と個数を明確に指定可能。ただし装備品は指定できない。

artifactsが出現する設定をする

Kenshiにはゲーム開始時に一定以上の品質の装備を世界の各所に装備やアイテムをランダムで配置するシステムがあり、配置されるアイテムのことをアーティファクトという。

  • 室内のチェストなどの中に配置される。
  • 街および住居ごとに、配置されうるアーティファクトの値段範囲を指定できる。
    • 街で全体の値段範囲を設定し、個別の住人に値段上限を設定することで一つの街の中で上限が高い建物と低い建物を混在できる。
  • 実際に配置されるアイテムは値段範囲内でランダムに選ばれる。
TOWN
gear artifacts max value街に配置されるアーティファクト装備の値段範囲
gear artifacts max value
item artifacts max value街に配置されるアーティファクトアイテムの値段範囲
item artifacts max value
SQUAD_TEMPLATE
gear artifacts base value住居に配置されるアーティファクト装備の値段上限
item artifacts base value住居に配置されるアーティファクトアイテムの値段上限

注意点など

  • 街で設定する値段範囲の方が優先される。base valueがmax value以上であってもmax value以上のものは配置されず、min value未満なら何も配置されない。
  • 注釈によると「街にアーティファクトの最大値段を設定した場合、少なくとも一つのresidentで街の最大値と同じかそれ以上の値段を設定すること。そうしないとアーティファクトはロストする」とある。
    おそらくは街の単位で配置されるアーティファクトが決まった後、base valueに従って振り分けるのだと思われる。
  • バニラでは武器防具の値段はGlobal data settingsの値段係数設定によって下げられているが、アーティファクト配置の時に判断される値段は係数適用前のもの。

このページの累積ビュー数: 22185
今日: 5
昨日: 13

*1 アイテムとその出現比率のリスト

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する
名無し
ID:YzI0OTJlY

情報ありがとうございます。他の検証と合わせて修正しました。

返信
2022-04-08 22:49:53

名無し
ID:Njc0ODUwZ

キャラ側のis traderが機能していないというのは納得です。
調査お疲れさまでした。

返信
2022-04-07 23:50:24

名無し
ID:ZDA4ZDE4O

店として機能させる(取引できて商品が更新される状態)なら以下が必須条件になると思う。
・部隊のis traderをtrue(ダイアログのDC_IS_A_TRADERと連動する)
・部隊にベンダーリストを追加
・部隊の住居に収納容器を設置(部隊が住居を持たない場合はバックパック)
・vendor refresh timeが正の値
・部隊員のいずれかのダイアログからDA_TRADEを実行可能
また、キャラに設定するis traderとベンダーリストは機能していない。(旧バージョンの名残かも)
NPC classは商品の更新と無関係だが、OT_DIPLOMATなら敵対しても取引できる。

返信
2022-04-07 19:49:04

名無し
ID:MjI5MDFhY

>> 返信元

店主のダイアログ(DA_TRADEのエフェクト)さえあれば取引自体はis traderなどに関わらずできるのだと思います。ちょっと試しましたがホーリーロードフェニックスとか兵舎の人間であってもshopkeepのダイアログを設定したら取引できましたし。
違いは商品の補充がされるかどうかでしょうか。
そして気づいたのですがホーリーネーションの憲兵所が肉切り包丁とかナルコの罠のマップを売ってるのは普通に憲兵所の備品売ってるぽいですね…

返信
2022-04-07 19:18:05

名無し
ID:NmJkNWU1M

また、ホーリーネーションの憲兵駐在所(squad:Inquisitor homestation stay)の審問官は
NPC classがOT_MILITARYでありis traderがfalseであるにもかかわらず正常に動作しています。
(なぜ正常に動作するのか全く意味が分かりませんが……)

返信
2022-04-06 23:42:43

名無し
ID:NmJkNWU1M

「住人にベンダーリストを設定する」の「商店の場合の設定」について
自分の環境では店主のNPC classがOT_MILITARYであっても
店主のis traderがtrueであれば正常に動作しました。
(ベンダーに設定したアイテムが売り物として出現し、店主は所持金が0.cになっていなかった。)

返信
2022-04-06 23:37:38

名無し
ID:ODYxZmM0Y

作成感謝します

返信
2022-04-05 03:42:14

名無し
ID:YjNhMTZjZ

不完全ではありますがなにぶん複雑なので完全を求めたらキリがないのでとりあえず知っていることを書きました。
間違いや例外があったらご指摘願います。

返信
2022-04-03 22:58:52

NG表示方式

NGID一覧