Adaptive Mosaic
여러 영상 입력을 하나의 모자이크에 채워 넣고, Shuffle이나 비트로 레이아웃과 메인(Hero)을 재구성하는 노드입니다. 레이아웃은 매번 그 자리에서 생성됩니다. 먼저 메인(Hero) 사각형을 5종의 프리셋 중에서 선택하고, 그 주위에 남은 4개의 띠를 면적 비율로 배분한 뒤, 면적이 큰 사각형부터 순서대로 재귀적으로 분할해 나갑니다. 이전 레이아웃에서 새 레이아웃으로 전환될 때는 사각형과 표시 소스 모두 부드럽게 모핑됩니다.
소스 입력
노드 UI의 Sources의 - / +로 Source 입력 포트를 늘리거나 줄일 수 있습니다(1~12, 새로 생성 시 6개, 1개 미만으로는 만들 수 없습니다). 포트 이름은 Source 1, Source 2, …(PortID는 source_0, source_1, …)이며, 1포트당 1개 연결입니다.
타일에는 실제로 연결되어 있는 소스만 할당됩니다. 각 타일은 Fill 방식(종횡비를 유지하며 잘라내기)으로 채워집니다.
연주 조작
- Shuffle — 레이아웃만 재구성합니다(메인(Hero)은 바꾸지 않습니다)
- NextFocus — 메인(Hero)을 다음 연결된 소스로 넘긴 뒤 레이아웃을 재구성합니다
- Beat — 비트 펄스 입력.
currentBeatInterval회(1~16, 초깃값 4)마다 NextFocus에 해당하는 재구성이 일어납니다 - Auto BPM — ON이면 글로벌 템포의 비트를 스스로 카운트합니다. 초깃값 ON(
AutoBeat입력 /autoBeatInput/currentAutoBeat)
파라미터
- TileCount — 타일 수. 1~32로 클램프, 초깃값 18(
TileCount입력 /tileCountInput/currentTileCount) - FocusSource — 메인(Hero)의 슬롯 번호(1부터 시작). 1~12로 클램프, 초깃값 1(
FocusSource입력 /focusSourceInput/currentFocusSource) - FocusAmount — 메인(Hero) 타일의 크기. 0~1, 초깃값 0.72(
FocusAmount입력 /focusAmountInput/currentFocusAmount) - Transition — 모핑에 걸리는 초. 0
4로 클램프(UI 슬라이더는 02), 초깃값 0.45(Transition입력 /transitionInput/currentTransitionSeconds) - Pause — ON이면 드리프트 애니메이션이 멈춥니다. 초깃값 OFF(
Pause입력 /pauseInput/currentPauseMotion) - FocusOutline — ON이면 메인(Hero) 타일의 가장자리가 강조 색상(하늘색)으로 물듭니다. 초깃값 OFF(
FocusOutline입력 /focusOutlineInput/currentFocusOutline) - currentRandomness — 레이아웃 분할의 편차. 0~1, 초깃값 0.78. UI 슬라이더 이름은 “Random”
- currentGap — 타일 간 간격. 0
0.04로 클램프(UI 슬라이더는 00.025), 초깃값 0.006 - currentDrift — 타일 내 UV가 천천히 흔들리는 양. 0~1, 초깃값 0.18
- currentRoundness — 타일 모서리의 둥글기. 0~0.3으로 클램프, 초깃값 0.09. 노드 UI에는 슬라이더가 없습니다(스크립트/컨트롤에서 설정합니다)
- currentAccent — 메인(Hero)의 테두리 강도. 0~1, 초깃값 0.75. FocusOutline이 OFF일 때는 적용되지 않습니다. 이 항목도 노드 UI에 슬라이더가 없습니다
FocusAmount가 0.05 이하일 때는 메인(Hero) 타일이 만들어지지 않습니다. 레이아웃은 메인(Hero) 없는 균등 분할이 되며, 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" }) 

