Content Player

AI와 함께 읽기
전체 문서 한 파일로 (llms-full.txt)
ContentPlayer #Source #Node
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)・SpeedPlayingMedia Path는 상태의 미러로, 변화했을 때만 push됩니다. Reached End는 재생이 끝 지점에 도달한 순간의 트리거입니다.

파일 경로를 갖지 않는 라이브 소스(Spout / NDI / 다른 노드)의 할당도 저장되지만, 복원은 베스트 에포트입니다(Node 소스는 최대 180프레임 동안 찾다가 발견하지 못하면 포기합니다).

영상

입력 포트

Port ID타입
Media Pathstring
Playbool
Seekfloat
Speedfloat
To Starttrigger
To Endtrigger
Speed /2trigger
Speed Resettrigger
Speed *2trigger
Loopbool
Crossfade Loopbool
BPM Syncbool
BPM Sync Beatint
Reset Contenttrigger
Native Resolutionbool

출력 포트

Port ID타입
Render TextureRenderTexture
Positionfloat
Speedfloat
Playingbool
Loopbool
Crossfade Loopbool
BPM Syncbool
Media Pathstring
BPM Sync Beatint
Reached Endtrigger
Native Resolutionbool
Resolution Xint
Resolution Yint

스크립트에서 설정할 수 있는 멤버

경로타입
playInputbool
seekInputfloat
speedInputfloat
loopInputbool
crossfadeInputbool
bpmSyncInputbool
beatInputint
nativeResInputbool
pathInputstring
mediaPathstring

Synapse Apps (스크립팅)

await synapse.modules.create({ type: "ContentPlayer" })

이 페이지로 연결된 페이지