Content Player

AIと読む
全ドキュメントを1ファイルで(llms-full.txt)
ContentPlayer #Source #ノード
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" })

このページへのリンク