Files
ShowenV2/configs/dog_state_machine.json
showen 5dcc1ad98e fix: 修正配置文件视频相对路径 + 更新 M1.1 完成进度
- configs/*.json: 视频路径 ../ → ../../ (configs/ 子目录需多上一级)
- PROGRESS.md: 第四轮 Opus 团队任务全部标记完成,M1.1 标记完成
- 实机验证: 5 插件初始化正常,HTTP API 响应正常,配置验证通过

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 13:26:05 +08:00

1175 lines
28 KiB
JSON

{
"display": {
"fullscreen": true,
"window_title": "Hologram Player - Dog",
"rotation": 0,
"flip_horizontal": true,
"flip_vertical": true,
"offset_x": 0,
"offset_y": 0,
"prevent_screen_lock": true,
"render_width": 1280,
"render_height": 800,
"output_width": null,
"output_height": null,
"scale_mode": "stretch",
"allow_upscale": true,
"perspective_correction": {
"enabled": false,
"points": [
[
0,
0
],
[
1280,
0
],
[
1280,
800
],
[
0,
800
]
]
},
"chroma_key": {
"enabled": false,
"hsv_min": [
0,
0,
200
],
"hsv_max": [
180,
30,
255
],
"invert": false,
"feather": 3
},
"brightness_adjust": {
"enabled": true,
"subject_boost": 2,
"background_suppress": 0.3,
"threshold": 30
}
},
"playlist": [
{
"id": "anim_0",
"path": "../../宠物嵌入式开发视频2/1.动画0.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_1",
"path": "../../宠物嵌入式开发视频2/2.趴着休息/动画1.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_2",
"path": "../../宠物嵌入式开发视频2/2.趴着休息/动画2.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_3",
"path": "../../宠物嵌入式开发视频2/2.趴着休息/动画3.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_4",
"path": "../../宠物嵌入式开发视频2/3.站起来活动/动画4.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_5",
"path": "../../宠物嵌入式开发视频2/3.站起来活动/动画5.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_6",
"path": "../../宠物嵌入式开发视频2/3.站起来活动/动画6.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_7",
"path": "../../宠物嵌入式开发视频2/4.趴下睡觉/动画7.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_8",
"path": "../../宠物嵌入式开发视频2/4.趴下睡觉/动画8.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_9",
"path": "../../宠物嵌入式开发视频2/4.趴下睡觉/动画9.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_10",
"path": "../../宠物嵌入式开发视频2/5.狗舔爪子 动画10.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_11",
"path": "../../宠物嵌入式开发视频2/6.口渴动画/动画11.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_12",
"path": "../../宠物嵌入式开发视频2/6.口渴动画/动画12.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_13",
"path": "../../宠物嵌入式开发视频2/6.口渴动画/动画13.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_14",
"path": "../../宠物嵌入式开发视频2/7.被叫名字1/动画14.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_15",
"path": "../../宠物嵌入式开发视频2/7.被叫名字1/动画15.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_16",
"path": "../../宠物嵌入式开发视频2/7.被叫名字1/动画16.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_17",
"path": "../../宠物嵌入式开发视频2/8.握手/动画17.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_18",
"path": "../../宠物嵌入式开发视频2/9.喂食动画/动画18.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_19",
"path": "../../宠物嵌入式开发视频2/10.喂水动画/动画19.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
},
{
"id": "anim_20",
"path": "../../宠物嵌入式开发视频2/11.摸狗狗头/动画22.mp4",
"duration": null,
"loop_count": 1,
"random_loop_range": null
}
],
"transition": {
"enabled": true,
"type": "fade",
"duration": 0.5
},
"playback": {
"loop_playlist": true,
"auto_start": true
},
"scenes": {
"rest": [],
"active": [],
"sleep": [],
"interact": [],
"state_machine": {
"initial_state": "default",
"states": {
"stand_active": {
"name": "站起来活动",
"mode": "free_mode",
"sequence": [
{
"video_id": "anim_4",
"loop_count": 1,
"random_loop_range": null
},
{
"video_id": "anim_5",
"loop_count": null,
"random_loop_range": [
2,
10
]
},
{
"video_id": "anim_6",
"loop_count": 1,
"random_loop_range": null
}
],
"next_state": null,
"next_states": [
{
"state": "default",
"weight": 1
},
{
"state": "rest_lying",
"weight": 1
},
{
"state": "sleep",
"weight": 1
},
{
"state": "lick_paw",
"weight": 1
},
{
"state": "thirsty",
"weight": 1
}
],
"transitions": [
{
"trigger": {
"voice": {
"keyword": "name"
}
},
"target_state": "called_name",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button1"
}
},
"target_state": "shake_hand",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "握手"
}
},
"target_state": "shake_hand",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button2"
}
},
"target_state": "feeding",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "吃饭"
}
},
"target_state": "feeding",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button3"
}
},
"target_state": "drinking",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "喝水"
}
},
"target_state": "drinking",
"priority": 10
},
{
"trigger": {
"sensor": {
"name": "touch"
}
},
"target_state": "pet_head",
"priority": 10
}
],
"weight": 1,
"defer_triggers": true,
"ignore_triggers": false
},
"sleep": {
"name": "趴下睡觉",
"mode": "free_mode",
"sequence": [
{
"video_id": "anim_7",
"loop_count": 1,
"random_loop_range": null
},
{
"video_id": "anim_8",
"loop_count": null,
"random_loop_range": [
25,
100
]
},
{
"video_id": "anim_9",
"loop_count": 1,
"random_loop_range": null
}
],
"next_state": null,
"next_states": [
{
"state": "default",
"weight": 1
},
{
"state": "rest_lying",
"weight": 1
},
{
"state": "stand_active",
"weight": 1
},
{
"state": "sleep",
"weight": 0.5
},
{
"state": "lick_paw",
"weight": 1
},
{
"state": "thirsty",
"weight": 1
}
],
"transitions": [
{
"trigger": {
"voice": {
"keyword": "name"
}
},
"target_state": "called_name",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button1"
}
},
"target_state": "shake_hand",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "握手"
}
},
"target_state": "shake_hand",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button2"
}
},
"target_state": "feeding",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "吃饭"
}
},
"target_state": "feeding",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button3"
}
},
"target_state": "drinking",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "喝水"
}
},
"target_state": "drinking",
"priority": 10
},
{
"trigger": {
"sensor": {
"name": "touch"
}
},
"target_state": "pet_head",
"priority": 10
}
],
"weight": 1,
"defer_triggers": true,
"ignore_triggers": false
},
"drinking": {
"name": "喂水",
"mode": "interactive_mode",
"sequence": [
{
"video_id": "anim_19",
"loop_count": 1,
"random_loop_range": null
}
],
"next_state": null,
"next_states": [
{
"state": "default",
"weight": 1
},
{
"state": "rest_lying",
"weight": 1
},
{
"state": "stand_active",
"weight": 1
},
{
"state": "sleep",
"weight": 1
},
{
"state": "lick_paw",
"weight": 1
},
{
"state": "thirsty",
"weight": 1
}
],
"transitions": [],
"weight": 1,
"defer_triggers": false,
"ignore_triggers": true
},
"shake_hand": {
"name": "握手",
"mode": "interactive_mode",
"sequence": [
{
"video_id": "anim_17",
"loop_count": 1,
"random_loop_range": null
}
],
"next_state": null,
"next_states": [
{
"state": "default",
"weight": 1
},
{
"state": "rest_lying",
"weight": 1
},
{
"state": "stand_active",
"weight": 1
},
{
"state": "sleep",
"weight": 1
},
{
"state": "lick_paw",
"weight": 1
},
{
"state": "thirsty",
"weight": 1
}
],
"transitions": [],
"weight": 1,
"defer_triggers": false,
"ignore_triggers": true
},
"called_name": {
"name": "被叫名字",
"mode": "interactive_mode",
"sequence": [
{
"video_id": "anim_14",
"loop_count": 1,
"random_loop_range": null
},
{
"video_id": "anim_15",
"loop_count": 1,
"random_loop_range": null
},
{
"video_id": "anim_16",
"loop_count": 1,
"random_loop_range": null
}
],
"next_state": null,
"next_states": [
{
"state": "default",
"weight": 1
},
{
"state": "rest_lying",
"weight": 1
},
{
"state": "stand_active",
"weight": 1
},
{
"state": "sleep",
"weight": 1
},
{
"state": "lick_paw",
"weight": 1
},
{
"state": "thirsty",
"weight": 1
}
],
"transitions": [],
"weight": 1,
"defer_triggers": false,
"ignore_triggers": true
},
"rest_lying": {
"name": "趴着休息",
"mode": "free_mode",
"sequence": [
{
"video_id": "anim_1",
"loop_count": 1,
"random_loop_range": null
},
{
"video_id": "anim_2",
"loop_count": null,
"random_loop_range": [
2,
15
]
},
{
"video_id": "anim_3",
"loop_count": 1,
"random_loop_range": null
}
],
"next_state": null,
"next_states": [
{
"state": "default",
"weight": 1
},
{
"state": "stand_active",
"weight": 1
},
{
"state": "sleep",
"weight": 1
},
{
"state": "lick_paw",
"weight": 1
},
{
"state": "thirsty",
"weight": 1
}
],
"transitions": [
{
"trigger": {
"voice": {
"keyword": "name"
}
},
"target_state": "called_name",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button1"
}
},
"target_state": "shake_hand",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "握手"
}
},
"target_state": "shake_hand",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button2"
}
},
"target_state": "feeding",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "吃饭"
}
},
"target_state": "feeding",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button3"
}
},
"target_state": "drinking",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "喝水"
}
},
"target_state": "drinking",
"priority": 10
},
{
"trigger": {
"sensor": {
"name": "touch"
}
},
"target_state": "pet_head",
"priority": 10
}
],
"weight": 1,
"defer_triggers": true,
"ignore_triggers": false
},
"thirsty": {
"name": "口渴",
"mode": "free_mode",
"sequence": [
{
"video_id": "anim_11",
"loop_count": 1,
"random_loop_range": null
},
{
"video_id": "anim_12",
"loop_count": null,
"random_loop_range": [
2,
30
]
},
{
"video_id": "anim_13",
"loop_count": 1,
"random_loop_range": null
}
],
"next_state": null,
"next_states": [
{
"state": "default",
"weight": 1
},
{
"state": "stand_active",
"weight": 1
},
{
"state": "sleep",
"weight": 1
},
{
"state": "lick_paw",
"weight": 1
}
],
"transitions": [
{
"trigger": {
"voice": {
"keyword": "name"
}
},
"target_state": "called_name",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button1"
}
},
"target_state": "shake_hand",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "握手"
}
},
"target_state": "shake_hand",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button2"
}
},
"target_state": "feeding",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "吃饭"
}
},
"target_state": "feeding",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button3"
}
},
"target_state": "drinking",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "喝水"
}
},
"target_state": "drinking",
"priority": 10
},
{
"trigger": {
"sensor": {
"name": "touch"
}
},
"target_state": "pet_head",
"priority": 10
}
],
"weight": 1,
"defer_triggers": true,
"ignore_triggers": false
},
"feeding": {
"name": "喂食",
"mode": "interactive_mode",
"sequence": [
{
"video_id": "anim_18",
"loop_count": 1,
"random_loop_range": null
}
],
"next_state": null,
"next_states": [
{
"state": "default",
"weight": 1
},
{
"state": "rest_lying",
"weight": 1
},
{
"state": "stand_active",
"weight": 1
},
{
"state": "sleep",
"weight": 1
},
{
"state": "lick_paw",
"weight": 1
},
{
"state": "thirsty",
"weight": 1
}
],
"transitions": [],
"weight": 1,
"defer_triggers": false,
"ignore_triggers": true
},
"default": {
"name": "默认状态",
"mode": "free_mode",
"sequence": [
{
"video_id": "anim_0",
"loop_count": null,
"random_loop_range": [
2,
15
]
}
],
"next_state": null,
"next_states": [
{
"state": "rest_lying",
"weight": 1
},
{
"state": "stand_active",
"weight": 1
},
{
"state": "sleep",
"weight": 1
},
{
"state": "lick_paw",
"weight": 1
},
{
"state": "thirsty",
"weight": 1
}
],
"transitions": [
{
"trigger": {
"voice": {
"keyword": "name"
}
},
"target_state": "called_name",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button1"
}
},
"target_state": "shake_hand",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "握手"
}
},
"target_state": "shake_hand",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button2"
}
},
"target_state": "feeding",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "吃饭"
}
},
"target_state": "feeding",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button3"
}
},
"target_state": "drinking",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "喝水"
}
},
"target_state": "drinking",
"priority": 10
},
{
"trigger": {
"sensor": {
"name": "touch"
}
},
"target_state": "pet_head",
"priority": 10
}
],
"weight": 1,
"defer_triggers": true,
"ignore_triggers": false
},
"pet_head": {
"name": "摸头",
"mode": "interactive_mode",
"sequence": [
{
"video_id": "anim_20",
"loop_count": 1,
"random_loop_range": null
}
],
"next_state": null,
"next_states": [
{
"state": "default",
"weight": 1
},
{
"state": "rest_lying",
"weight": 1
},
{
"state": "stand_active",
"weight": 1
},
{
"state": "sleep",
"weight": 1
},
{
"state": "lick_paw",
"weight": 1
},
{
"state": "thirsty",
"weight": 1
}
],
"transitions": [],
"weight": 1,
"defer_triggers": false,
"ignore_triggers": true
},
"lick_paw": {
"name": "狗舔爪子",
"mode": "free_mode",
"sequence": [
{
"video_id": "anim_10",
"loop_count": 1,
"random_loop_range": null
}
],
"next_state": null,
"next_states": [
{
"state": "default",
"weight": 1
},
{
"state": "rest_lying",
"weight": 1
},
{
"state": "stand_active",
"weight": 1
},
{
"state": "sleep",
"weight": 1
},
{
"state": "thirsty",
"weight": 1
}
],
"transitions": [
{
"trigger": {
"voice": {
"keyword": "name"
}
},
"target_state": "called_name",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button1"
}
},
"target_state": "shake_hand",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "握手"
}
},
"target_state": "shake_hand",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button2"
}
},
"target_state": "feeding",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "吃饭"
}
},
"target_state": "feeding",
"priority": 10
},
{
"trigger": {
"button": {
"name": "button3"
}
},
"target_state": "drinking",
"priority": 10
},
{
"trigger": {
"voice": {
"keyword": "喝水"
}
},
"target_state": "drinking",
"priority": 10
},
{
"trigger": {
"sensor": {
"name": "touch"
}
},
"target_state": "pet_head",
"priority": 10
}
],
"weight": 1,
"defer_triggers": true,
"ignore_triggers": false
}
}
}
},
"remote_control": {
"enabled": true,
"host": "0.0.0.0",
"port": 5000
}
}