SystemController에 MagicaCloth2 시뮬레이션 리셋 기능 구현: - RefreshAllMagicaCloth(): 씬의 모든 MagicaCloth 시뮬레이션 리셋 - ResetAllMagicaCloth(): 초기 상태로 완전 리셋 - ResetAllMagicaClothKeepPose(): 현재 포즈 유지하며 리셋 - #if MAGICACLOTH2 조건부 컴파일로 의존성 처리 StreamDeck 플러그인 연동: - manifest.json에 MagicaCloth Refresh 액션 추가 - plugin/index.js에 버튼 핸들러 구현 - StreamDeckServerManager에 메시지 타입 등록 - magica_cloth_reload.png 아이콘 추가 WebSocket 명령어: - refresh_magica_cloth, reset_magica_cloth: 전체 리셋 - reset_magica_cloth_keep_pose: 포즈 유지 리셋 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
287 lines
8.1 KiB (Stored with Git LFS)
JSON
287 lines
8.1 KiB (Stored with Git LFS)
JSON
{
|
|
"Actions": [
|
|
{
|
|
"Icon": "images/camera_icon.png",
|
|
"Name": "Camera Controller",
|
|
"DisableAutomaticStates": true,
|
|
"States": [
|
|
{
|
|
"Image": "images/camera_icon.png",
|
|
"TitleAlignment": "bottom",
|
|
"FontSize": "12"
|
|
},
|
|
{
|
|
"Image": "images/camera_icon_inactive.png",
|
|
"TitleAlignment": "bottom",
|
|
"FontSize": "12"
|
|
}
|
|
],
|
|
"Settings": {
|
|
"cameraIndex": 0,
|
|
"autoSwitch": true,
|
|
"isUnityConnected": false,
|
|
"cameraList": [],
|
|
"currentCamera": null
|
|
},
|
|
"Controllers": ["Keypad"],
|
|
"UserTitleEnabled": true,
|
|
"SupportedInMultiActions": false,
|
|
"Tooltip": "Switch Unity camera via Streamingle",
|
|
"UUID": "com.mirabox.streamingle.camera",
|
|
"PropertyInspectorPath": "propertyInspector/camera/index.html"
|
|
},
|
|
{
|
|
"Icon": "images/item_icon.png",
|
|
"Name": "Item Controller",
|
|
"DisableAutomaticStates": true,
|
|
"States": [
|
|
{
|
|
"Image": "images/item_icon.png",
|
|
"TitleAlignment": "bottom",
|
|
"FontSize": "12"
|
|
},
|
|
{
|
|
"Image": "images/item_icon_inactive.png",
|
|
"TitleAlignment": "bottom",
|
|
"FontSize": "12"
|
|
}
|
|
],
|
|
"Settings": {
|
|
"itemId": "",
|
|
"isActive": false
|
|
},
|
|
"Controllers": ["Keypad"],
|
|
"UserTitleEnabled": true,
|
|
"SupportedInMultiActions": false,
|
|
"Tooltip": "Toggle Unity item via Streamingle",
|
|
"UUID": "com.mirabox.streamingle.item",
|
|
"PropertyInspectorPath": "propertyInspector/item/index.html"
|
|
},
|
|
{
|
|
"Icon": "images/event_icon.png",
|
|
"Name": "Event Controller",
|
|
"DisableAutomaticStates": true,
|
|
"States": [
|
|
{
|
|
"Image": "images/event_icon.png",
|
|
"TitleAlignment": "bottom",
|
|
"FontSize": "12"
|
|
}
|
|
],
|
|
"Settings": {
|
|
"eventIndex": 0,
|
|
"autoExecute": true,
|
|
"isUnityConnected": false,
|
|
"eventList": [],
|
|
"currentEvent": null
|
|
},
|
|
"Controllers": ["Keypad"],
|
|
"UserTitleEnabled": true,
|
|
"SupportedInMultiActions": false,
|
|
"Tooltip": "Execute Unity events via Streamingle",
|
|
"UUID": "com.mirabox.streamingle.event",
|
|
"PropertyInspectorPath": "propertyInspector/event/index.html"
|
|
},
|
|
{
|
|
"Icon": "images/avatar_outfit_icon.png",
|
|
"Name": "Avatar Outfit Controller",
|
|
"DisableAutomaticStates": true,
|
|
"States": [
|
|
{
|
|
"Image": "images/avatar_outfit_icon.png",
|
|
"TitleAlignment": "bottom",
|
|
"FontSize": "12"
|
|
},
|
|
{
|
|
"Image": "images/avatar_outfit_icon_inactive.png",
|
|
"TitleAlignment": "bottom",
|
|
"FontSize": "12"
|
|
}
|
|
],
|
|
"Settings": {
|
|
"avatarIndex": 0,
|
|
"outfitIndex": 0,
|
|
"isUnityConnected": false,
|
|
"avatarList": [],
|
|
"currentAvatar": null
|
|
},
|
|
"Controllers": ["Keypad"],
|
|
"UserTitleEnabled": true,
|
|
"SupportedInMultiActions": false,
|
|
"Tooltip": "Control Unity avatar outfits via Streamingle",
|
|
"UUID": "com.mirabox.streamingle.avatar_outfit",
|
|
"PropertyInspectorPath": "propertyInspector/avatar_outfit/index.html"
|
|
},
|
|
{
|
|
"Icon": "images/optitrack_marker_icon.png",
|
|
"Name": "OptiTrack Marker Toggle",
|
|
"DisableAutomaticStates": false,
|
|
"States": [
|
|
{
|
|
"Image": "images/optitrack_marker_icon.png",
|
|
"TitleAlignment": "bottom",
|
|
"FontSize": "12"
|
|
},
|
|
{
|
|
"Image": "images/optitrack_marker_icon_off.png",
|
|
"TitleAlignment": "bottom",
|
|
"FontSize": "12"
|
|
}
|
|
],
|
|
"Settings": {},
|
|
"Controllers": ["Keypad"],
|
|
"UserTitleEnabled": true,
|
|
"SupportedInMultiActions": true,
|
|
"Tooltip": "Toggle OptiTrack markers visibility",
|
|
"UUID": "com.mirabox.streamingle.optitrack_marker_toggle"
|
|
},
|
|
{
|
|
"Icon": "images/optitrack_reconnect_icon.png",
|
|
"Name": "OptiTrack Reconnect",
|
|
"DisableAutomaticStates": true,
|
|
"States": [
|
|
{
|
|
"Image": "images/optitrack_reconnect_icon.png",
|
|
"TitleAlignment": "bottom",
|
|
"FontSize": "12"
|
|
}
|
|
],
|
|
"Settings": {},
|
|
"Controllers": ["Keypad"],
|
|
"UserTitleEnabled": true,
|
|
"SupportedInMultiActions": true,
|
|
"Tooltip": "Reconnect to OptiTrack server",
|
|
"UUID": "com.mirabox.streamingle.optitrack_reconnect"
|
|
},
|
|
{
|
|
"Icon": "images/motion_record_icon.png",
|
|
"Name": "Motion Recording Toggle",
|
|
"DisableAutomaticStates": false,
|
|
"States": [
|
|
{
|
|
"Image": "images/motion_record_icon_off.png",
|
|
"TitleAlignment": "bottom",
|
|
"FontSize": "12"
|
|
},
|
|
{
|
|
"Image": "images/motion_record_icon.png",
|
|
"TitleAlignment": "bottom",
|
|
"FontSize": "12"
|
|
}
|
|
],
|
|
"Settings": {},
|
|
"Controllers": ["Keypad"],
|
|
"UserTitleEnabled": true,
|
|
"SupportedInMultiActions": true,
|
|
"Tooltip": "Toggle EasyMotion recording (start/stop)",
|
|
"UUID": "com.mirabox.streamingle.motion_recording_toggle"
|
|
},
|
|
{
|
|
"Icon": "images/facial_motion_reconnect_icon.png",
|
|
"Name": "Facial Motion Reconnect",
|
|
"DisableAutomaticStates": true,
|
|
"States": [
|
|
{
|
|
"Image": "images/facial_motion_reconnect_icon.png",
|
|
"TitleAlignment": "bottom",
|
|
"FontSize": "12"
|
|
}
|
|
],
|
|
"Settings": {},
|
|
"Controllers": ["Keypad"],
|
|
"UserTitleEnabled": true,
|
|
"SupportedInMultiActions": true,
|
|
"Tooltip": "Reconnect all Facial Motion Capture clients (iFacialMocap/FaceMotion3D)",
|
|
"UUID": "com.mirabox.streamingle.facial_motion_reconnect"
|
|
},
|
|
{
|
|
"Icon": "images/screenshot_icon.png",
|
|
"Name": "Screenshot Capture",
|
|
"DisableAutomaticStates": true,
|
|
"States": [
|
|
{
|
|
"Image": "images/screenshot_icon.png",
|
|
"TitleAlignment": "bottom",
|
|
"FontSize": "12"
|
|
}
|
|
],
|
|
"Settings": {},
|
|
"Controllers": ["Keypad"],
|
|
"UserTitleEnabled": true,
|
|
"SupportedInMultiActions": true,
|
|
"Tooltip": "Capture 4K screenshot",
|
|
"UUID": "com.mirabox.streamingle.screenshot"
|
|
},
|
|
{
|
|
"Icon": "images/screenshot_alpha_icon.png",
|
|
"Name": "Alpha Screenshot Capture",
|
|
"DisableAutomaticStates": true,
|
|
"States": [
|
|
{
|
|
"Image": "images/screenshot_alpha_icon.png",
|
|
"TitleAlignment": "bottom",
|
|
"FontSize": "12"
|
|
}
|
|
],
|
|
"Settings": {},
|
|
"Controllers": ["Keypad"],
|
|
"UserTitleEnabled": true,
|
|
"SupportedInMultiActions": true,
|
|
"Tooltip": "Capture 4K screenshot with alpha channel from NiloToon",
|
|
"UUID": "com.mirabox.streamingle.screenshot_alpha"
|
|
},
|
|
{
|
|
"Icon": "images/magica_cloth_reload.png",
|
|
"Name": "MagicaCloth Refresh",
|
|
"DisableAutomaticStates": true,
|
|
"States": [
|
|
{
|
|
"Image": "images/magica_cloth_reload.png",
|
|
"TitleAlignment": "bottom",
|
|
"FontSize": "12"
|
|
}
|
|
],
|
|
"Settings": {},
|
|
"Controllers": ["Keypad"],
|
|
"UserTitleEnabled": true,
|
|
"SupportedInMultiActions": true,
|
|
"Tooltip": "Refresh all MagicaCloth simulations",
|
|
"UUID": "com.mirabox.streamingle.magica_cloth_refresh"
|
|
}
|
|
],
|
|
"Profiles": [
|
|
{
|
|
"Name": "OptiTrack Controls",
|
|
"DeviceType": 0,
|
|
"ReadOnly": false,
|
|
"DontAutoSwitchWhenInstalled": false
|
|
}
|
|
],
|
|
"SDKVersion": 2,
|
|
"Author": "Streamingle",
|
|
"Name": "Streamingle Camera Controller",
|
|
"Icon": "images/plugin_logo.png",
|
|
"CodePathWin": "plugin/index.html",
|
|
"CodePathMac": "plugin/index.html",
|
|
"Description": "Control Unity cameras and items via Streamingle WebSocket",
|
|
"Category": "Streamingle",
|
|
"CategoryIcon": "images/plugin_logo.png",
|
|
"Version": "2.0.0",
|
|
"URL": "https://github.com/streamingle",
|
|
"OS": [
|
|
{
|
|
"Platform": "mac",
|
|
"MinimumVersion": "10.11"
|
|
},
|
|
{
|
|
"Platform": "windows",
|
|
"MinimumVersion": "7"
|
|
}
|
|
],
|
|
"Software": {
|
|
"MinimumVersion": "3.10.188.226"
|
|
},
|
|
"Nodejs": {
|
|
"Version": "20"
|
|
}
|
|
} |