user 34564f0f50 ADD: MagicaCloth 시뮬레이션 전체 리프레시 기능 추가
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>
2026-01-22 22:50:04 +09:00

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"
}
}