{ "display": { "fullscreen": true, "window_title": "Hologram Player - Cat", "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": 1.5, "background_suppress": 0.3, "threshold": 30 } }, "playlist": [ { "id": "anim_0", "path": "../../宠物嵌入式开发视频3/1.动画0.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_1", "path": "../../宠物嵌入式开发视频3/2.趴着休息/动画1.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_2", "path": "../../宠物嵌入式开发视频3/2.趴着休息/动画2.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_3", "path": "../../宠物嵌入式开发视频3/2.趴着休息/动画3.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_4", "path": "../../宠物嵌入式开发视频3/3.犯困眯眼/动画4.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_5", "path": "../../宠物嵌入式开发视频3/3.犯困眯眼/动画5.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_6", "path": "../../宠物嵌入式开发视频3/3.犯困眯眼/动画6.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_7", "path": "../../宠物嵌入式开发视频3/4.趴下睡觉/动画7.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_8", "path": "../../宠物嵌入式开发视频3/4.趴下睡觉/动画8.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_9", "path": "../../宠物嵌入式开发视频3/4.趴下睡觉/动画9.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_10", "path": "../../宠物嵌入式开发视频3/5.猫舔爪子 动画10.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_11", "path": "../../宠物嵌入式开发视频3/6.口渴动画/动画11.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_12", "path": "../../宠物嵌入式开发视频3/6.口渴动画/动画12.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_13", "path": "../../宠物嵌入式开发视频3/6.口渴动画/动画13.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_14", "path": "../../宠物嵌入式开发视频3/7.被叫名字1/动画14.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_15", "path": "../../宠物嵌入式开发视频3/7.被叫名字1/动画15.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_16", "path": "../../宠物嵌入式开发视频3/7.被叫名字1/动画16.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_17", "path": "../../宠物嵌入式开发视频3/8.握手/动画17.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_18", "path": "../../宠物嵌入式开发视频3/9.喂食动画/动画18.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_19", "path": "../../宠物嵌入式开发视频3/10.玩逗猫棒/动画19.mp4", "duration": null, "loop_count": 1, "random_loop_range": null }, { "id": "anim_20", "path": "../../宠物嵌入式开发视频3/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": { "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 }, "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 }, "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 }, "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 }, "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 }, "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 }, "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 }, "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 }, "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": [ 50, 300 ] }, { "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 }, "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 }, "lick_paw": { "name": "猫舔爪子", "mode": "free_mode", "sequence": [ { "video_id": "anim_10", "loop_count": null, "random_loop_range": [2, 10] } ], "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 } }