Adaptive Mosaic
複数の映像入力を1枚のモザイクに敷き詰め、Shuffleやビートでレイアウトと主役を組み替えるノードです。レイアウトは毎回その場で生成されます。まず主役(Hero)の矩形を5種のプリセットから選び、その周囲に残った4つの帯を面積比で割り当てて、面積の大きい矩形から順に再帰的に分割していきます。前のレイアウトから新しいレイアウトへは、矩形も表示ソースも滑らかにモーフィングします。
ソース入力
ノードUIの Sources の - / + でSource入力ポートを増減します(1〜12、新規作成時は6本、1本未満にはできません)。ポート名は Source 1, Source 2, …(PortIDは source_0, source_1, …)で、1ポートにつき1接続です。
タイルには実際に接続されているソースだけが割り当てられます。各タイルはFill方式(アスペクト維持で切り取り)で敷かれます。
演奏操作
- Shuffle — レイアウトだけを組み替えます(主役は変えません)
- NextFocus — 主役を次の接続済みソースへ送ってからレイアウトを組み替えます
- Beat — ビートのパルス入力。
currentBeatInterval回(1〜16、初期値4)ごとにNextFocus相当の組み替えが起きます - Auto BPM — ONでグローバルテンポのビートを自分でカウントします。初期値ON(
AutoBeat入力 /autoBeatInput/currentAutoBeat)
パラメータ
- TileCount — タイル数。1〜32にクランプ、初期値18(
TileCount入力 /tileCountInput/currentTileCount) - FocusSource — 主役のスロット番号(1始まり)。1〜12にクランプ、初期値1(
FocusSource入力 /focusSourceInput/currentFocusSource) - FocusAmount — 主役タイルの大きさ。0〜1、初期値0.72(
FocusAmount入力 /focusAmountInput/currentFocusAmount) - Transition — モーフィングの秒数。0〜4にクランプ(UIスライダーは0〜2)、初期値0.45(
Transition入力 /transitionInput/currentTransitionSeconds) - Pause — ONでドリフトのアニメーションが止まります。初期値OFF(
Pause入力 /pauseInput/currentPauseMotion) - FocusOutline — ONで主役タイルの縁がアクセント色(水色)に染まります。初期値OFF(
FocusOutline入力 /focusOutlineInput/currentFocusOutline) - currentRandomness — レイアウト分割のばらつき。0〜1、初期値0.78。UIスライダー名は「Random」
- currentGap — タイル間の隙間。0〜0.04にクランプ(UIスライダーは0〜0.025)、初期値0.006
- currentDrift — タイル内のUVがゆっくり漂う量。0〜1、初期値0.18
- currentRoundness — タイル角の丸み。0〜0.3にクランプ、初期値0.09。ノードUIにスライダーはありません(スクリプト/コントロールから設定します)
- currentAccent — 主役の縁取りの強さ。0〜1、初期値0.75。FocusOutlineがOFFのときは無効です。こちらもノードUIにスライダーはありません
FocusAmountが0.05以下のときは主役タイルが作られません。 レイアウトは主役なしの均等分割になり、FocusOutlineも効かなくなります。
PauseがONの間はビートによる組み替えも止まります(ドリフトだけでなくレイアウトの更新も抑止されます)。
Beat入力はAuto BPMのON/OFFに関わらず効きます。 Auto BPMはグローバルテンポの自動カウントだけを制御します。両方使うとビートが二重に数えられます。
FocusSourceに未接続のスロットを指定した場合は、接続済みの最初のスロットに自動で寄せられます(FocusSourceの値自体も書き換わります)。
出力解像度はグローバル解像度です。レイアウトが未生成の間は黒を出力します。
入力ポート
| Port ID | 型 |
|---|---|
Shuffle | trigger |
NextFocus | trigger |
Beat | trigger |
FocusSource | int |
TileCount | int |
FocusAmount | float |
Transition | float |
AutoBeat | bool |
Pause | bool |
FocusOutline | bool |
出力ポート
| Port ID | 型 |
|---|---|
Out | RenderTexture |
スクリプトから設定可能なメンバー
| パス | 型 |
|---|---|
focusSourceInput | int |
tileCountInput | int |
focusAmountInput | float |
transitionInput | float |
autoBeatInput | bool |
pauseInput | bool |
focusOutlineInput | bool |
currentTileCount | int |
currentFocusSource | int |
currentBeatInterval | int |
currentFocusAmount | float |
currentTransitionSeconds | float |
currentRandomness | float |
currentGap | float |
currentRoundness | float |
currentDrift | float |
currentAccent | float |
currentAutoBeat | bool |
currentPauseMotion | bool |
currentFocusOutline | bool |
Synapse Apps(スクリプティング)
await synapse.modules.create({ type: "AdaptiveMosaic" }) 

