小场面
pet_interaction/ 下每个文件是一段小场面,模组自带缠人、螃蟹打招呼、请客、送咖啡和听演奏五段。以送咖啡为例,栗子馒头给刚做完除草牌的小伙伴递咖啡:
json
{
"initiators": [
{ "pets": ["chiikawa:kurimanju"], "pose": "hand_over" }
],
"partners": [
{
"pets": ["chiikawa:chiikawa", "chiikawa:hachiware", "chiikawa:usagi"],
"pose": "drink",
"begin": { "reaction": "happy", "voice": "given_coffee" }
},
{
"pets": ["chiikawa:rakko"],
"pose": "drink",
"begin": { "voice": "given_coffee" }
}
],
"partner_finished": { "slip": "chiikawa:weeding", "within_ticks": 2400 },
"partner_eager_ticks": 1200,
"chance": 0.25,
"notice_distance": 12.0,
"approach_distance": 1,
"reservation_ticks": 400,
"duration_ticks": 80,
"cooldown_ticks": 24000
}谁和谁演。 initiators 是发起的一方,partners 是被找上的一方,都是一组一组地写:pets 列出角色的 id 或 # 开头的实体标签,一只小伙伴按它出现的第一组来演。partners 的顺序也是偏好的顺序,发起的一方会先找排在前面的。这样一个文件里,每个角色都能有自己的反应,同样被缠上,吉伊会哭,獭师父不为所动。
每一方怎么演。 pose 是整段场面里一直保持的姿势;begin、now_and_then、end 分别是见面时、进行中隔一阵、结束时做的事,每一项都可以写 animation 动作、reaction 表情(happy、hurt、confused)和 voice 台词时机,都可以省略。now_and_then 还要写 every_ticks,隔多久来一次。台词时机会去这个角色自己的口头禅文件里找台词,所以每个角色都用自己的话来说。
姿势和动作只能用模组里已有的动画:cling、clung_to、crab_greeting、hand_over、drink、eat、sit、clap。没有这个动画的角色,就只是站着。
什么时候演。
| 字段 | 含义 |
|---|---|
partner_state | 可选,对方要在做什么:idle 闲着(默认),或 playing_music 正在演奏,这时对方不会停下,谁都可以过来当观众 |
partner_finished | 可选,对方要在多久之内做完过哪种工作牌 |
hands_over | 可选,发起的一方要从背包里拿出什么给对方当场吃掉,可以写物品或标签;背包里没有就不演 |
partner_eager_ticks | 可选,对方之后多久干活更起劲,默认 0 |
chance | 每次四处张望时想到要演这段的几率 |
notice_distance | 对方在多远以内才会被想到,小伙伴最远只看得到 16 格 |
approach_distance | 发起的一方走到多近开始演 |
reservation_ticks | 发起的一方有多久时间走过去,对方等这么久 |
duration_ticks | 演多久 |
cooldown_ticks | 同一对小伙伴演完后,隔多久才会再演这一段 |
