- 모든 컨트롤러 에디터를 IMGUI → UI Toolkit(UXML/USS)으로 전환 (Camera, Item, Event, Avatar, System, StreamDeck, OptiTrack, Facial) - StreamingleCommon.uss 공통 테마 + 개별 에디터 USS 스타일시트 - SystemController 서브매니저 분리 (OptiTrack, Facial, Recording, Screenshot 등) - 런타임 컨트롤 패널 (ESC 토글, 좌측 오버레이, 150% 스케일) - 웹 대시보드 서버 (StreamingleDashboardServer) + 리타게팅 통합 - 설정 도구(StreamingleControllerSetupTool) UXML 재작성 + 원클릭 설정 - SimplePoseTransfer UXML 에디터 추가 - 전체 UXML 한글화 + NanumGothic 폰트 적용 - Streamingle.Debug → Streamingle.Debugging 네임스페이스 변경 (Debug.Log 충돌 해결) - 불필요 코드 제거 (rawkey.cs, RetargetingHTTPServer, OptitrackSkeletonAnimator 등) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
60 lines
3.1 KiB
Plaintext
60 lines
3.1 KiB
Plaintext
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements">
|
|
|
|
<!-- Title Bar -->
|
|
<ui:VisualElement name="titleBar" class="facial-title-bar">
|
|
<ui:Label text="Streamingle Facial Receiver" class="facial-title-text"/>
|
|
<ui:VisualElement name="statusContainer" class="facial-status-container">
|
|
<ui:VisualElement name="statusDot" class="facial-status-dot"/>
|
|
<ui:Label name="statusLabel" text="LIVE" class="facial-status-label"/>
|
|
</ui:VisualElement>
|
|
</ui:VisualElement>
|
|
|
|
<!-- Basic Settings -->
|
|
<ui:VisualElement class="section">
|
|
<ui:Foldout text="Basic Settings" value="true" class="section-foldout">
|
|
<uie:PropertyField binding-path="faceMeshRenderers" label="Face Mesh Renderers"/>
|
|
<ui:VisualElement name="autoFindRow" class="facial-auto-find-row">
|
|
<ui:Button name="autoFindBtn" text="Auto Find ARKit Meshes" class="facial-auto-find-btn"/>
|
|
<ui:Label name="autoFindResult" class="facial-auto-find-result"/>
|
|
</ui:VisualElement>
|
|
<uie:PropertyField binding-path="mirrorMode" label="Mirror Mode (L/R Flip)"/>
|
|
</ui:Foldout>
|
|
</ui:VisualElement>
|
|
|
|
<!-- Port Hot-Swap (port buttons built dynamically in C#) -->
|
|
<ui:VisualElement class="section">
|
|
<ui:Foldout text="Port Hot-Swap" value="true" class="section-foldout">
|
|
<ui:VisualElement name="activePortRow" class="facial-active-port-row">
|
|
<ui:Label text="Active Port" class="facial-port-label"/>
|
|
<ui:Label name="activePortValue" text="---" class="facial-port-value"/>
|
|
</ui:VisualElement>
|
|
<ui:VisualElement name="portButtonsContainer" class="facial-port-buttons"/>
|
|
<uie:PropertyField binding-path="availablePorts" label="Port List"/>
|
|
</ui:Foldout>
|
|
</ui:VisualElement>
|
|
|
|
<!-- Data Filtering -->
|
|
<ui:VisualElement class="section">
|
|
<ui:Foldout text="Data Filtering" value="true" class="section-foldout">
|
|
<uie:PropertyField binding-path="enableFiltering" label="Enable"/>
|
|
<ui:VisualElement name="filteringFields">
|
|
<uie:PropertyField binding-path="smoothingFactor" label="Smoothing"/>
|
|
<uie:PropertyField binding-path="maxBlendShapeDelta" label="Max BlendShape Delta"/>
|
|
<uie:PropertyField binding-path="maxRotationDelta" label="Max Rotation Delta"/>
|
|
<uie:PropertyField binding-path="fastBlendShapeMultiplier" label="Fast BS Multiplier"/>
|
|
<uie:PropertyField binding-path="spikeToleranceFrames" label="Spike Tolerance"/>
|
|
</ui:VisualElement>
|
|
</ui:Foldout>
|
|
</ui:VisualElement>
|
|
|
|
<!-- Facial Intensity -->
|
|
<ui:VisualElement class="section">
|
|
<ui:Foldout text="Facial Intensity" value="true" class="section-foldout">
|
|
<uie:PropertyField binding-path="globalIntensity" label="Global Intensity"/>
|
|
<ui:VisualElement class="facial-separator"/>
|
|
<uie:PropertyField binding-path="blendShapeIntensityOverrides" label="Per-BlendShape Overrides"/>
|
|
</ui:Foldout>
|
|
</ui:VisualElement>
|
|
|
|
</ui:UXML>
|