住居(洞窟・小屋)
概要
本ドキュメントは、プレイヤーが拠点とする住居の内容と、その組み立て方をまとめたものです。仕組みとして使う
slots・passives の文法は GameElementDefinition.md 7 節・8 節、
場所としての構造(location trait のスロット)は
ExplorationSystem.md 1 節を参照してください。
本ドキュメントは検討結果であり、確定仕様書ではありません。未決事項は 6 節に整理しています。
建てる住居は未実装ですが、1 節の構造スロットは筏で実物になっています
(Voyage.md 2.1 節。帆を1枠だけ受け入れ、部品が modify で親を修飾する形)。
洞窟の側は実装済みです(5 節)。
1. 住居は「部品を差し替える場所」
住居は、レシピで作り直して置き換える物ではなく、構造部品を出し入れできる場所として扱います。
location trait が持つスロット(ExplorationSystem.md 1.1 節)に加えて、
構造部品用のスロットを持たせます。
object_defs:
dwelling:
traits: [location]
slots:
structure:
cells:
- {accept: {tag: foundation}, max: 1}
- {accept: {tag: wall}, max: 1}
- {accept: {tag: roof}, max: 1}
壁の追加は、空いている枠へ壁を入れるだけです。板壁への更新は、葉の壁を外して板の壁を入れるだけです。 中に置いた物も、中にいるプレイヤー自身も、別のスロットにいるので影響を受けません。
住居に destroy と spawn を使ってはいけません。中身が付随的な入れ物(Containers.md
の編み籠→背負い籠)であれば消して湧かせ直す形で構いませんが、住居は中にプレイヤーが入るため、その操作が
成立しません。
2. 部品が親を修飾するので、住居の型は1つ
各部品は、自分が住居へ何を寄与するかを passives の modify で宣言します。
object_defs:
thatch_roof:
tags: [roof]
passives:
- modify:
parent:
rain_protection: 80
insulation: 30
plank_wall:
tags: [wall]
passives:
- modify:
parent:
wind_protection: 90
comfort: 20
comfort は場所が持つプロパティ(location trait)で、そこに居るキャラクタが継ぎ、ホームシックの
募りを抑えます(Characters.md ホームシック節)。住居は 1 節のとおり location trait を
持つ場所なので、部品の modify はそのまま住居自身の comfort へ届きます。 住居は建てた土地の中にある
場所なので、その土地の comfort・company(囲いの獣)は住居の中にも届きます(同節)。
住居の性能は、その時点で入っている部品の寄与の合計として導かれます。「葉壁の小屋」「板壁高床の小屋」と
いった段階ごとの型は作りません。 型は dwelling 1つで、板壁と葉屋根の組み合わせのような中間状態も、
追加の宣言なしに表現できます。住居は自分がどの段階にあるかを知りません。
この形にすると、次が専用の仕組みなしに成立します。
- 部品ごとの耐久(
DurabilitySystem.md)。葉の屋根だけが雨で劣化し、 葺き替えが恒久的な手間として残る - 部分的な破壊。嵐で屋根だけが飛ぶ
- 部品の再利用。外した部品を別の小屋へ回せる
- 修理と交換が同じ操作
2.1 部品ごとの comfort
| 部品 | comfort |
|---|---|
| 葉の屋根 | 5 |
| 葉編みの外壁 | 8 |
| 板の壁 | 20 |
| 高床 | 10 |
homely(20)へ届くのは高床まで進めてからで、柱と葉の屋根だけでも、葉の壁を足しただけでも
届きません(3 節の段階)。そして板の壁まで揃えても、合計は snug(50)に届きません——60日目からの
募りは建て進めた家が止め、90日目からの募りはどの家も止められない、という形です
(Characters.md ホームシック節)。「どうせ建てる家」を
1つ置けば済む圧にしないための線で、そこから先は住居とは別に据える設えが払います
(ContentSkeleton.md 3 節の系統12)。
住居の点数は、掛かる手間に比例させません。 家は雨風と虫と湿気のために建てる物で、居心地はその
副産物です——比例させると、建てる手間(同 4 節の系統10)だけで snug を大きく越えます。手間に
比例するのは、据えるためだけに作る設えのほう(src/assets/world-codex/furnishings.yaml)。
壁の工法違い(4 節の土壁・石積み)は、同じ枠に入る別の部品として同じ物差しへ乗せます。点数を置くのは、 それを部品として表すかが決まってから(6 節)。
3. 段階
熱帯を舞台とするため、屋根は最上位でも葉のままとします。葉葺きは断熱性が板より高く、勾配があれば雨も 流れます。板葺きは継ぎ目から漏れ、日射で室内が暑くなります。
最大の快適性の向上は高床です。地面から離すことで、湿気・虫・浸水から一度に離れられます。
| 段階 | 内容 | 要求 |
|---|---|---|
| 1 | 柱+葉の屋根 | 建築 novice |
| 2 | 葉編みの外壁 | 建築 basic + 繊維・編み basic |
| 3 | 高床 | 建築 skilled + 指物・接合 basic |
| 4 | 板の壁・床 | 建築 skilled + 木材加工 skilled(板が要る) |
高床への変更は、壁を一度外さなければ行えないものとします。現実の手間を再現しつつ、住居という場所は 消えないため、中の物とプレイヤーはその場に残ります。
手間は1回では払えません(1回の操作は1時間まで、../engine/ActionSystem.md
6.3節)。半日がかりの工事は、住居の側が進み具合を持ち、手を何度か入れる形になります。
interactions:
raise_floor:
trigger: menu
duration: 60
conditions:
- not:
- {slot: structure, matches: {tag: wall}}
- {prop: raising_progress, lt: 8}
add: {self: {raising_progress: 1}}
4. 工法ごとの得意分野
土地によって手に入る材料が違うため、工法を複数用意します。どれも全域で他を上回らないようにします。
| 工法 | 速さ | 耐久 | 快適性 | 要求される土地 |
|---|---|---|---|---|
| 柱+葉 | 速い | 脆い | 低(雨はしのげる) | どこでも |
| 土壁 | 中 | 中(雨に弱い) | 中 | 粘土 |
| 板+高床 | 遅い | 高 | 最高 | 木が豊か |
| 石積み | 最も遅い | 最高 | 中(湿る) | 岩がち |
土壁は、編んだ下地に粘土を塗る形(wattle and daub)とします。 日干しレンガは雨で溶け、焼成レンガは窯と
大量の燃料(=木)を要するため、「木が乏しい土地の選択肢」という狙いを満たしません。土壁なら
建築 + 繊維・編み の連言だけで成立し、新しい技術を要求しません。
石積みはモルタルなしの空積みとします。 一人でも建てられますが、石の運搬と積み上げに莫大な時間がかかり、 石が湿気を吸い上げるため高温多湿では快適性が上がりません。最上位ではなく、木が乏しい岩がちな土地での 選択肢として位置づけます。
5. 洞窟との住み分け
洞窟は、建てた住居の下位互換にはしません。下位互換にすると、洞窟を引けなかったプレイヤーが同じ状態へ 追いつくために働くだけになり、選択が発生しないまま負担だけが変わります。
| 洞窟 | 建てた住居 | |
|---|---|---|
| 入手 | 見つければ即座、無料 | 高コスト |
| 場所 | 選べない(水場・食料から遠いこともある) | 選べる |
| 拡張 | ほぼできない | 際限なく上げられる |
| 快適性 | 湿る・暗い | 上限が高い |
洞窟は序盤の贈り物だが上限が低い、という位置づけになるため、洞窟を得たプレイヤーも後半には住居を建てる 理由が残ります。どちらを引いたかは島の地形が決めるので、方針の有利不利を島の側へ分散できます。
5.1 浅い洞窟(shallow_cave)
この表のうち洞窟の列を担うのが浅い洞窟で、岩がちな土地の探索で見つかります
(locations.yaml)。設置物でありながら場所でもある——筏(Voyage.md 2.1 節)と
同じ形で、tags: [fixture] + traits: [location] に出入りの操作を足しただけです。中へ入れば
location trait のスロットがそのまま拠点の枠になり、物を置くことも火を焚くこともできます。
枠数もかさの上限も置きません——置ける量で洞窟を絞ると、上の表の「拡張できない」が二重になります。
表の「暗い」と「湿る」は、それぞれ次の1行が担っています。
- 暗さは、親の土地を土台にして 6 段下げたもの(
IlluminationSystem.md2 節のbase)。奥の洞窟のように空を継がない真っ暗(同 7 節)にはしません。この差だと、境目が 世界の環境光 +11(曇りの正午)に載るので、晴れた日中は中でも手元の作業ができ、雨の日と朝夕は 火を焚かないと何もできません。 - 雨が当たらないのは、洞窟自身が
sheltered: 1を宣言するからです(ContainerSystem.md6 節)。雨を見ている条件はancestor=同名を宣言している最初の祖先で止まるため、中の物と据えた炉には 雨が届きません。専用の「屋根」の文法は要りません。天気そのものは外と同じで、中で空が曇るわけでは ないので、暗さも湿り気も外の雨天のまま残ります。
奥へ続く道はまだありません(【いつか: 洞窟内部】、Someday.md)。
6. 未決事項
- 雨風・断熱に寄与するプロパティの具体名と値(
rain_protection/insulationは仮の名前)。comfortはもう仮ではない——場所が持ち、キャラクタが継いでホームシックを抑え (Characters.mdホームシック節)、部品ごとの点数は 2.1 節が持つ - 部品の枠を1種類につき1つに固定するか、壁を面ごとに複数持たせるか
- 洞窟が
dwellingと同じ構造スロットを持つか(洞窟にも屋根はあるが差し替えられない) - 土壁・石積みを、壁の枠に入る別の部品として表すか、工法ごとに別の住居型を用意するか
- 建てた住居を解体して部品を回収できるか
- 高床にしたとき、床下を保管場所として使えるか(
fixturesスロットの拡張になる)