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



