Content Player
미디어를 재생하여 RenderTexture를 출력하는 노드입니다. 재생의 실체는 Layer와 같은 ContentPlayer 코어이므로, 코덱 판정(이미지 / 동영상 / HAP / VLC / 셰이더)은 자동으로 이루어집니다. MediaBrowser에서의 드래그 앤 드롭은 노드의 미리보기 영역에서 받으며, Preview 토글을 켜 두면 MediaBrowser의 썸네일 클릭으로도 할당됩니다. Media Path에 문자열을 흘려보내도 같은 경로로 로드됩니다.
트랜스포트
- Play — true면 Play, false면 Pause
- Seek — 0~1의 정규화된 위치
- Speed — 재생 레이트. -5~5로 클램프되며, 음수 값은 역재생(지원 여부는 각 코덱 쪽에 따라 다름)입니다. 0은 “미지정”으로 간주되어 무시됩니다
- To Start / To End — 처음으로 / 끝으로. To End는 종료 이벤트의 오발동을 피하기 위해 엄밀한 끝 지점이 아니라
(duration - 0.1) / duration으로 이동합니다 - Speed /2・Speed Reset・Speed *2 — 현재 레이트의 절반 / 1.0 / 2배
- Reset Content — 재생 정지 + 출력을 검정으로 클리어 + 경로를 빈 상태로 되돌림
루프와 BPM 동기화
- Loop — 기본값 ON. 노드 UI에 토글은 없고 In/Out 포트만 있습니다. 콘텐츠 전환으로 코덱 쪽의 루프 상태가 바뀌어도, 매 프레임 이 노드의 값으로 강제로 되돌려집니다
- Crossfade Loop — HAP / UnityVideo / VLC 3가지 구현 각각의 크로스페이드 루프를 동시에 전환합니다
- BPM Sync / BPM Sync Beat — 속도 컨트롤러의 동기화를 활성화합니다. 박 수는 0 이하를 “미지정”으로 간주하여 무시합니다
BPM Sync Beat는 소재의 메타데이터(HAP 콘텐츠의 beat 등)로 로드 시 덮어씌워지는 사양입니다. 그 때문에 표시와
BPM Sync Beat출력은 입력값이 아니라, 활성 컨트롤러의 실제 값을 폴링한 결과를 출력합니다.
출력 해상도(Native Resolution)
기본값은 Native=ON이며, 출력 RT는 콘텐츠의 실제 크기가 됩니다. OFF로 하면 마스터 해상도를 따라가는 고정 RT로 매 프레임 스케일 Blit됩니다. 현재 출력 RT의 크기는 Resolution X / Resolution Y에서 얻을 수 있습니다.
Native에서 네이티브 크기를 판정할 수 없는 소스(셰이더, Node 소스 등)는, 직전 소재가 바꾼 RT 크기가 남지 않도록 마스터 해상도로 되돌아갑니다.
그 외의 출력
Position(0~1)・Speed・Playing・Media Path는 상태의 미러로, 변화했을 때만 push됩니다. Reached End는 재생이 끝 지점에 도달한 순간의 트리거입니다.
파일 경로를 갖지 않는 라이브 소스(Spout / NDI / 다른 노드)의 할당도 저장되지만, 복원은 베스트 에포트입니다(Node 소스는 최대 180프레임 동안 찾다가 발견하지 못하면 포기합니다).
영상
입력 포트
| Port ID | 타입 |
|---|---|
Media Path | string |
Play | bool |
Seek | float |
Speed | float |
To Start | trigger |
To End | trigger |
Speed /2 | trigger |
Speed Reset | trigger |
Speed *2 | trigger |
Loop | bool |
Crossfade Loop | bool |
BPM Sync | bool |
BPM Sync Beat | int |
Reset Content | trigger |
Native Resolution | bool |
출력 포트
| Port ID | 타입 |
|---|---|
Render Texture | RenderTexture |
Position | float |
Speed | float |
Playing | bool |
Loop | bool |
Crossfade Loop | bool |
BPM Sync | bool |
Media Path | string |
BPM Sync Beat | int |
Reached End | trigger |
Native Resolution | bool |
Resolution X | int |
Resolution Y | int |
스크립트에서 설정할 수 있는 멤버
| 경로 | 타입 |
|---|---|
playInput | bool |
seekInput | float |
speedInput | float |
loopInput | bool |
crossfadeInput | bool |
bpmSyncInput | bool |
beatInput | int |
nativeResInput | bool |
pathInput | string |
mediaPath | string |
Synapse Apps (스크립팅)
await synapse.modules.create({ type: "ContentPlayer" }) 



