ํฌ์ŠคํŠธ

Unity Art Asset

Unity Art Asset

๐Ÿ’ซ ๋จธ๋ฆฌ๋ง


๐Ÿ’ซ ์•„ํŠธ ๊ด€๋ จ Package


UNITE Seoul 2025
Keijiro Takahashi ๋‹˜์˜ ์„ฑ๊ณต์ ์ธ Unity ์•„ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ 6๊ฐ€์ง€ ๊ฐ•๋ ฅํ•œ ํŒจํ‚ค์ง€ ์„ธ์…˜ ๊ธฐ๋ฐ˜.

๐Ÿซง VFX Graph

Unity ๋‚ด์žฅ Package
GPU๋ฅผ ์ด์šฉํ•ด์„œ ์›€์ง์ด๋Š” ํŒŒํ‹ฐํด์„ ๊ทธ๋ž˜ํ”„๋ฅผ ์จ์„œ ์ œ์ž‘ ๊ฐ€๋Šฅ

์„ ๋Šฅ ์ข‹๊ณ , ์“ฐ๊ธฐ ์‰ฌ์šด GUI ๋“ฑ

์ตœ๋Œ€ ์žฅ์ ์œผ๋กœ๋Š” ๋‹ค๋“ฌ์–ด์ง„ ๊ธฐ์ˆ  ์„ค๊ณ„
ํŒŒํ‹ฐํด ์“ด ์‚ฌ๋žŒ ์•Œ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ์šฉ๋„ ๋‹ค์–‘ํ•˜๊ณ  ์„ฑ๋Šฅ ์ข‹๊ณ  ๊ทธ๋Ÿฐ ๊ฒŒ ๋งŽ์ด ์—†๋‹ค
๋ฐ˜๋ฉด VFX Graph ๊ธฐ์ˆ ์ ์œผ๋กœ ์šฐ์ˆ˜ํ•ด์„œ ๊ณ„์† ์“ฐ๊ฒŒ ๋œ๋‹ค.

ํŠนํžˆ ์•„ํŠธ ๋ถ„์•ผ์—์„œ๋Š” ํ™œ์šฉ์ด ๋‘๋“œ๋Ÿฌ์ง„๋‹ค
Unity ๋ณด๋‹ค๋„ VFX ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์“ด๋‹ค๋Š” ๋А๋‚Œ
๊ทธ๋งŒํผ ์ค‘์š”ํ•˜๊ฒŒ ๋А๊ปด์ง„๋‹ค

๐Ÿซง VFX Graph Assets Package

๊ทธ๋ž˜์„œ VFX Graph Assets Package

ํ‘œ์ค€ ๊ธฐ๋Šฅ์—๋Š” ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์ด ์žˆ๋‹ค
๊ทธ๋Ÿฐ๊ฑด ์ปค์Šคํ„ฐ๋งˆ์ด์ง•

์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ์—์„œ ๊ณต์œ ํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ณตํ†ต ๋ถ€๋ถ„์ด ํฌํ•จ๋จ.

TextureLess Particle Shader

Parameter ๋งŒ์œผ๋กœ Particle ์šฉ ํ…์Šค์ณ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š”.
๋‹จ์ˆœํ•œ ํŒŒํ‹ฐํด์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ…์Šค์ณ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋น„ํšจ์œจ.

Depth of Field - Particle Shader

๋ณด์ผ€/๋ธ”๋Ÿฌ๋ฅผ ๋งŒ๋“œ๋Š” ์‰์ด๋”
์ด๋ฅผ ํ†ตํ•ด ๊นŠ์ด๊ฐ ์žˆ๋Š” ์ดํŽ™ํŠธ๋ฅผ ์‰์ด๋”๋กœ
+ ๋ธ”๋Ÿฌ

Exponential Random

๋‚œ์ˆ˜/ ์ง€์ˆ˜ํ•จ์ˆ˜์ ์ธ ํŽธํ–ฅ์„ ์ฃผ๋Š” ํ•จ์ˆ˜

์˜ˆ๋ฅผ ๋“ค์–ด ํ™”๋ฉด์— 0~100 ํฌ๊ธฐ์˜ ์›์„ ๋žœ๋คํ•˜๊ฒŒ ๊ทธ๋ฆฐ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ,
์ผ๋ฐ˜ ๋žœ๋ค์€ ํฐ ํŒŒํ‹ฐํด์ด ๋ˆˆ์— ๋„๊ฒŒ ๋งŽ์ด ๋ณด์ด๊ฒŒ ๋œ๋‹ค
์ž‘์€ ๊ฑด ๊ทธ ๊ทธ๋ฆผ์ž์— ๊ฐ€๋ ค์ ธ์„œ ์ž˜ ์•ˆ๋ณด์ธ๋‹ค

์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ด ํ•จ์ˆ˜ (Exponential Random)๊ฐ€ ์“ฐ์ธ๋‹ค
ํ•จ์ˆ˜์— ํŽธํ–ฅ์„ ์ค˜์„œ ์ž‘์€ ํŒŒํ‹ฐํด๋„ ์ž˜ ๋ณด์ด๊ฒŒ
์ธ์ƒ์ด ํ‰๊ตฐํ™”๋˜์–ด ์žˆ๋‹ค
ํฐ ํŒŒํ‹ฐํด์ด ๋น„๊ต์  ๋“ฌ์„ฑ๋“ฌ์„ฑ ์žˆ๋Š”

Particle Lifetime์—๋„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค
์ž„ํŽ™ํŠธ๋ฅผ ์ฃผ๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ, Particle์ด ๊ณ„์† ๋‚จ์•„์žˆ๋Š” ๊ฒฝ์šฐ ์ข€ ๊ทธ๋ ‡๋‹ค
์—ฌ์šด์„ ๋‚จ๊ธฐ๋Š” ๊ฒƒ์€ ์ด ๋…ธ๋“œ๋ฅผ ์“ฐ๋Š” ํŽธ์ด

SetRandom Angle, SetRandom Angular, Velocity

๋‹จ์ˆœํžˆ ๊ฐ๋„๋ฅผ ๋žœ๋คํ™”ํ•˜๋ฉด
(๊ตฌ์ฒด) ์•„๋ž˜์™€ ๊ฐ€์šด๋ฐ์— ํŽธํ–ฅ์„ฑ์ด ์ƒ๊ธด๋‹ค
์ด๊ฑธ ์ด์šฉํ•˜๋ฉด ํ‰๊ท ํ™”๋œ๋‹ค (ํŽธํ–ฅ์—†์ด ๋ถ„ํฌ๊ฐ€ ๋œ๋‹ค)

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋žœ๋ค ๋ฒกํ„ฐ๋„ ๋žœ๋ค์„ ์“ฐ๋ฉด ํŽธํ–ฅ์ด ์ƒ๊ธฐ๋Š”๋ฐ
RandomVector/Sphere๊ฐ€ ์žˆ๋‹ค

๊ทธ ์™ธ

๊ทธ ์™ธ์—๋„ ์—ฌ๋Ÿฌ ๋…ธ๋“œ

  • Tween
  • Axis Rotation
  • Divergence-FreeNoiseField
  • Low Frequency Field
  • โ€ฆ

๐Ÿซง VJUITK

VJUITK
VJ UI for UI Toolkit

๊ฐ„๋‹จํ•˜๊ฒŒ
BUtton, Knob, Toggle์— ๋Œ€ํ•œ ์ปจํŠธ๋กค

Dense Layout Support
๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์ปจ์…‰์„ ์œ„ํ•ด ์„ค๊ณ„๋œ ๊ฒƒ

๋ฐ€๋„๊ฐ€ ๋†’์€ ๋ ˆ์ด์•„์›ƒ์—
UX๋ฅผ ํฌ์ƒํ•˜๋”๋ผ๋„ ์–ด์จŒ๋“  ๋งŽ์€ ํŒŒ๋ผ๋ฉ”ํ„ฐ๋ฅผ ์กฐ์ž‘ํ•ด์•ผ
์ปดํŒฉํŠธํ•˜๊ฒŒ ์ค„ ์„ธ์šฐ๊ธฐ ์ข‹์€ ๋””์ž์ธ์„ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์žˆ๋‹ค

์Šฌ๋ผ์ด๋” ์—ฌ๋Ÿฌ ๊ฐœ ๋ณด๋‹ค๋Š” Knob ์“ฐ๋Š” ๊ฒƒ์ด ์ข‹๊ฒ ๋‹ค

์ด๋Ÿฐ ์ปจํŠธ๋กค์€ ๋ฉ€ํ‹ฐ ์กฐ์ž‘์ด ๊ฐ€๋Šฅํ•ด์•ผ
ํ•œ ์ชฝ์€ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ, ํ•œ ์ชฝ์„ ๊ฒฉ๋ ฌํ•˜๊ฒŒ ์กฐ์ž‘ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ
2๊ฐœ ์ด์ƒ์˜ ์ปจํŠธ๋กค์„ ๋™์‹œ์— ์ปจํŠธ๋กค ํ•  ์ˆ˜ ์žˆ์–ด์•ผ
์ด๊ฒƒ์€ UI Toolkit์—์„œ? ์ด๋ฏธ ์ง€์›๋˜๊ณ  ์žˆ์–ด์„œ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์žˆ์—ˆ๋‹ค

Enhanced Visibility
์‹œ์ธ์„ฑ์ด ์ข‹์€๊ฐ€ <- ์ค‘์š”

UI๋ž‘ Preview๊ฐ€ ์„œ๋กœ ๊ฒน์ณ์„œ ์ž˜ ๋ณด์ด๋„๋ก ์‹œ์ธ์„ฑ์ด ์ข‹์•„์•ผ
Preview๋ž‘ UI๋ฅผ ๋ถ„๋ฆฌํ•ด๋„ ๋˜๋Š”๋ฐ,
๋ˆˆ ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋Š”๊ฒƒ์ด ๋ถˆํŽธ
๊ทธ๋ž˜์„œ ์š”์ฆ˜์€ ๊ฐ€๋Šฅํ•˜๋ฉด ๋‘˜์„ ๊ฒน์ณ์„œ ๋ณด๊ธฐ
๋ณด๋ฉด์„œ ๋™์‹œ์— ํŒŒ๋ผ๋ฉ”ํ„ฐ ์กฐ์ • ๊ฐ€๋Šฅ

VJ UI for Unity GUI (uGUI)
๊ฐ™์€ ๊ธฐ๋Šฅ์„ UGUI์—๋„ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ์ง€๊ธˆ์€ (๋”) ์ง€์› ์•ˆํ•จ (UI Toolkit ์จ์„œ)
์ค„ ์„ธ์šฐ๊ธฐ ๊ฐ™์€ UI๋Š” Toolkit์ด ์ข‹๋‹ค

๐Ÿซง Minis

Minis
MIDI Input for new Input System

VJ๊ฐ™์ด ๋ฆฌ์–ผํƒ€์ž„ ๊ฐ๊ฐ์ ์ธ ํŒŒ๋ผ๋ฉ”ํ„ฐ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ
MIDI ์ปจํŠธ๋กค๋Ÿฌ
์ด๋Ÿฐ ์™ธ๋ถ€ ํ•˜๋“œ์›จ์–ด

InputSystem์„ MIDI์— ๋Œ€์‘์‹œํ‚ค๋Š”

์ง€์›ํ•˜๋Š” ํƒ€์ž…

  • Midi Notes
    • 128Notes
    • Velocity ๊ฑด๋ฐ˜ ๋ˆŒ๋ €์„ ๋•Œ์˜ ๊ฐ•๋„ (pressure)
  • MiDI Control Change (CC)
    • 128 control (์“ฐ๋กœํ‹€, ๋ณดํ†ต LR ์ขŒ์šฐ๋งŒ ์žˆ๋Š”๋ฐ, 128๊ฐœ๋ฉด ๋Œ€๋‹จํ•˜์ฃ  - ์ฃผ์š” ์ด์œ )
    • 7 bit value 127

MIDI : ๊ฑด๋ฐ˜์„ ๋ˆŒ๋ €์„ ๋•Œ ์ •๋ณด (์–ด๋–ค ํŠธ๋ฆฌ๊ฑฐ์ ์ธ ์ด๋ฒคํŠธ)
CC๋Š” ๊ฐ’์˜ ๋ณ€ํ™” ๋…ธ๋“œ/ํŽ˜์ด๋”๋กœ ์ž…๋ ฅํ•˜๊ฒŒ ๋œ๋‹ค

์ด๊ฒƒ์„ nodeGraph๋กœ ์ž˜ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๋ณ€ํ™˜

C#์—์„œ ์–ด์ผ€ ์“ธ๊นŒ?

PlayInput ๊ฐ™์€ ๊ฑธ ์“ธ ์ˆ˜ ์žˆ๋Š”๋ฐ,
์ด๋Ÿฐ๊ฑด ์ธ๊ฒŒ์ž„์„ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์ด๋ผ
์•„ํŠธ ์ž‘์—…์—๋Š” ์“ฐ๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋‹ค

๋Œ€์‹  InputAction์„ ์“ธ ์ˆ˜ ์žˆ๋‹ค
์ด๋Š” ๋ฒ”์šฉ์ 
์ž…๋ ฅ ๊ฒ€์ถœ ๊ฐ€๋Šฅ, ๋ฌผ๋ก  MIDI ์ปจํŠธ๋กค๋Ÿฌ์— ๋Œ€ํ•œ ๊ฒƒ๋„ ์ˆ˜์šฉ ๊ฐ€๋Šฅ

์‹ค์ œ ์‚ฌ์šฉ๋ฐฉ๋ฒ•

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public InputAction ~;
// ๋ฐ”์ธ๋”ฉ ์ธํ„ฐํŽ˜์ด์Šค ๋„์šฐ๊ธฐ ๊ฐ€๋Šฅ  
// ์ด ๋“œ๋กญ๋‹ค์šด์—์„œ AddBinding
// ๋”๋ธ” ํด๋ฆญํ•˜๋ฉด Dialog๊ฐ€ ๋‚˜์˜ค๊ณ  ๊ฒฝ๋กœ๋ฅผ ํด๋ฆญํ•˜๊ณ , Listen์„ ๋ˆ„๋ฅด๋ฉด ์ž…๋ ฅ ๋Œ€๊ธฐ ์ƒํƒœ
// ์ด ์ƒํƒœ์—์„œ ๋ฏธ๋”” ์ปจํŠธ๋กค๋Ÿฌ ๋ˆ„๋ฅด๋ฉด ์ž๋™์œผ๋กœ ์„ค์ •๋œ

// ์ž๋™ ๊ฒ€์ถœ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ
// T๋ฅผ ๋ˆŒ๋Ÿฌ์„œ Path๋ฅผ ์ด์šฉํ•ด ๋ชจ์‹œ๊บตํ•  ์ˆ˜ ์žˆ๋‹ค

// ๋ฌธ๋ฒ•
// #(Display)/Name -> ๋ณต์ˆ˜ ์—ฌ๋Ÿฌ ๊ฐœ ๋™์‹œ์— ์„ค์ • ๊ฐ€๋Šฅ

// (*Channel)/note060
// (*Channel)/note* -> ์™€์ป๋“œ ์ปจํŠธ๋กค๋กค

testAction.ReadValue<float>();

testAction.Enable();
testAction.performed += _ => ~vfx.Play()

// ๋ฏธ๋””
// ํ‚ค๋ณด๋“œ
// ํ˜น์€ ๋‘˜ ๋‹ค ์“ฐ๋Š” ๋“ฑ
// ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ ๊ฐ€๋Šฅ

์•…๊ธฐ ๋ณธ๋ž˜์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๋„ ์“ธ ์ˆ˜ ์žˆ๋Š”
์•…๊ธฐ์˜ ์—ฐ์ฃผ๋ฅผ ๋ฆฌ์–ผํƒ€์ž„ ๋น„์ฃผ์–ผ ํ™œ์šฉ ๊ฐ€๋Šฅ

MIDI๋Š” ์•…๊ธฐ๋ฅผ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ
์ด๊ฒƒ์ด ๋ณธ๋ž˜์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์ผ ๊ฒƒ

์Œ์•…/๋น„์ฃผ์–ผ
์™„์ „ํžˆ ์‹ฑํฌ๋˜๋Š” ๊ฒƒ์€ ๋ณดํ†ต ์–ด๋ ค์šด๋ฐ, ์ž˜ ํ•  ์ˆ˜ ์žˆ๋‹ค

๐Ÿซง LASP

LASP
Low-Latency Audio Signal Processing Plugin

์ง์ ‘ ์Œ์•…(์Œํ˜•/ํŒŒํ˜•)์„ ์ด์šฉํ•ด์„œ ๋น„์ฃผ์–ผ๋ผ์ด์ œ์ด์…˜

์ €์‹œํ˜„ ์˜ค๋””์˜ค ์ž…๋ ฅ/๊ฐ„๋‹จํ•œ ํŒŒํ˜• ๋ถ„์„์„ ์ง€์›ํ•˜๋Š”

์œ ๋‹ˆํ‹ฐ ๋‚ด์žฅ ์˜ค๋””์˜ค ์‹œ์Šคํ…œ X libsoundio ๋ผ๋Š” ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ
์‹ค์‹œ๊ฐ„์„ฑ ๋†’์€ ์˜ค๋””์˜ค ์ฒ˜๋ฆฌ
๋ฉ€ํ‹ฐ ํŒจ๋„ ์ฒ˜๋ฆฌ๋„ ๊ฐ€๋Šฅ (์ด๊ฒƒ์€ ์˜ˆ์ˆ  ๋ถ„์•ผ์—์„œ๋Š” ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ)

Audio Level Tracker Component
์ž…๋ ฅ์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š”?

ํ”„๋กœํผํ‹ฐ ๋ฐ”์ธ๋”๋ฅผ ์ด์šฉํ•ด์„ถ ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค

Frequency filters
๊ณ ์Œ/์ €์Œ ํ•„ํ„ฐ๋ง๋„ ๊ฐ€๋Šฅ

Spectrum Analyzer FFT Component
์ž์„ธํžˆ ์ฃผํŒŒ์ˆ˜ ์„ฑ๋ถ€ ๋ถ„์„

LASP VFX

LASP VFX

์ƒ˜ํ”Œ ์ „ํ˜€ C# ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ
LASP์™€ VFX๋งŒ ์จ์„œ

๐Ÿซง KlakNDI

KlakNDI
NDI Video Connection Plugin

๋žœ ์ƒ์œผ๋กœ ๋น„๋””์˜ค ์†ก์‹ 
NDI๋ฅผ ์œ ๋‹ˆํ‹ฐ ๋‚ด์—์„œ..?

(๋ฒˆ์—ญ ์ œ๋Œ€๋กœ ๋ชป ๋“ค์Œ)

์–ด๋–ค ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ๊ฐ€

Camera -> HDMI Capture -> COmputer - HDMI - Computer
์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ์บก์ฒ˜๋ณด๋“œ ๋“ฑ์„ ์จ์•ผํ•˜๋Š”๋ฐ
์ด๋Ÿฐ๊ฒŒ ๋งŽ์•„์ง€๋ฉด ๋ณต์žกํ•˜๊ณ , ๋ฌธ์ œ ๊ฐ€๋Šฅ์„ฑ๋„ ๋†’์•„์ง

๊ทธ๋ฆผ์œผ๋กœ๋Š” ์ผ์ž์ด์ง€๋งŒ, ํ˜„์žฅ์€ ๋” ๋ณต์žกํ•˜๊ฒŒ ํ•จ
์ผ€์ด๋ธ” ๊ธธ์ด ์ œํ•œ๋„ ์žˆ๊ณ  ์ž์œ ๋กญ์ง€ ์•Š๋‹ค

์ด๋ฅผ ํ•œ ๊ฐœ์˜ ๊ฐ™์€ ๊ฒƒ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค (Like ์ค‘์•™์ง‘์ค‘์ฒ˜๋ฆฌ๋ฐฉ์‹)
์–ด์จŒ๋“  ๊ฐ™์€ ๊ฒƒ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด ํ†ต์‹  ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—
์‰ฝ๊ฒŒ ์ถ”๊ฐ€๋„ ๊ฐ€๋Šฅํ•˜๋‹ค

์ด๋Ÿฐ ๊ฒƒ์€ ๊ธธ์ด ์ž์œ ๊ฐ€ ์žˆ๊ณ , Wifi๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
(ํฐ ๊ณต์—ฐ์žฅ์€ ์–ด๋ ต์ง€๋งŒ, ์ž‘์€ ํ์‡ ๋œ ๊ณณ์ด๋ผ๋ฉด)

iphone Video๋ฅผ ์œ ๋‹ˆํ‹ฐ์— (๊ฐ™์€ ๋žœ)
Ndi Receiver ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋˜๋Š”
NDI Name ์—์„œ ์„ ํƒํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค

์ด๋ ‡๊ฒŒ ๊ฐ„ํŽธํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค

์œ ์‚ฌํ•œ ํ”„๋กœํ† ์ฝœ์ด ์žˆ๊ธดํ•œ๋ฐ, NDI ํ”„๋กœํ† ์ฝœ ์žฅ์ 
์„ค์ •์ด ๊ฐ„๋‹จํ•˜๋‹ค
๊ฐ™์€ ๋žœ ์ด๊ธฐ๋งŒ ํ•˜๋ฉด ๊ทธ ์ž์ฒด๋กœ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅํ•˜๋‹ค

์—์ฝ” ์‹œ์Šคํ…œ (๊ฐœ๋ฐœ ํ™˜๊ฒฝ/์ƒํƒœ๊ณ„)
NDI ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ๋งŽ๋‹ค

์Šค๋งˆํŠธํฐ์—์„œ ์“ธ ์ˆ˜ ์žˆ๋Š” NDI ์•ฑ์ด ์žˆ๋‹ค?
= ์‰ฝ๊ฒŒ ์นด๋ฉ”๋ผ๋ฅผ ๋Š˜๋ฆด ์ˆ˜ ์žˆ๋‹ค?

๊ฐœ์ธ์ ์œผ๋กœ ์ค‘์š”ํ•œ
PowerFrame ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ

์ด๋ฏธ์ง€ ๋ฟ๋งŒ์•„๋‹ˆ๋ผ metaData๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ณ , ์ž์œ ๋Ÿฝ๊ฒŒ ์ •์˜ ๊ฐ€๋Šฅ (์‚ฌ์šฉ์ž๊ฐ€)
XML ํ˜•์‹์ด๋ผ๋ฉด ๋ญ๋“ ์ง€ ๊ฐ€๋Šฅํ•˜๋‹ค ๋ผ๋Š” ๋А๋‚Œ

์œ„์น˜ ํšŒ์ „ ์ถ”์  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ™์ด ๋ณด๋‚ธ๋‹ค๋˜์ง€
ํ™”๋ฉด UI ์ž…๋ ฅ ์ •๋ณด๋ฅผ ๊ฐ™์ด ๋ณด๋‚ธ๋‹ค๋˜์ง€

์‹ฑํฌ ๊นจ์งˆ ์—ผ๋ ค๊ฐ€ ์—†๋‹ค
์—„๊ฒฉํ•˜๊ฒŒ ๋™๊ธฐํ™” ๊ฐ€๋Šฅ

์–ด๋–ค ์˜๋ฏธ์ธ๊ฐ€?

ํŠธ๋ž˜ํ‚น ๊ฐ™์€ ํ™•์žฅ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š”
๋…์ง‘๋œ ๋ณ„๊ฐœ์˜ ์ŠคํŠธ๋ฆผ์„ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค
2๊ฐœ ์žˆ๋‹ค๋Š” ๊ฒƒ
์ด๊ฒƒ์€ ์—„๊ฒฉํ•˜๊ฒŒ ์‹ฑํฌ๋กœ ๋˜์–ด ์žˆ์–ด์•ผ
์ฐจ์ด๊ฐ€ ์žˆ๋‹ค๋ฉด ์–ด์ƒ‰ํ•ด๋ณด์ธ๋‹ค

ํƒ€์ž„ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜, ๋ฒ„ํผ๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜
๊ทธ๋Ÿฐ ๋ณต์žกํ•œ ๋ฐฉ๋ฒ•์„ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š”๋ฐ

์ด๋ฏธ์ง€์— ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜๋กœ ๋ชจ์ด๊ฒŒ ๋˜๋ฉด
๋™๊ธฐํ™”๊ฐ€ ์–ด๊ธ‹๋‚  ๋ชจ์‹œ๊บต์ด ์—†๋‹ค

AR ๊ด€๋ จ ํ”Œ์ ํŠธ์—์„œ ๋งŽ์ด ์“ด๋‹ค

Color
Depth
Human Stencil ์ด๋ฏธ์ง€

๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ์—๋Š” Camera Position + Rotation + UI Input Data
์ด๋Ÿฐ ๊ฒƒ๋“ค์„ Base64 Encoding ํ•ด์„œ XML๋กœ ๋ณด๋‚ด๊ณ 

์ด๋Ÿฐ ๊ฑธ ์ด์šฉํ•ด์„œ ๋ณผ๋ฅ˜๋ฉ”ํŠธ๋ฆญ ๋น„๋””์˜ค๋ฅผ

๋™๊ธฐํ™”๊ฐ€ ์–ด๊ธ‹๋‚  ์ผ๋„ ์—†๊ณ , ์ŠคํŠธ๋ฆผ 1๊ฐœ, ์—ฐ๊ฒฐ๋„ ๊ฐ„ํŽธํ•˜๋‹ค (๋žœ)

๐Ÿซง Procedural Motion Package

Procedural Motion

๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜์ง€๋งŒ
๊ฐ€์žฅ ๋งŽ์€ ๊ณณ์—์„œ ์“ฐ์ด๋Š”

์ ˆ์ฐจ์ ์ธ ์›€์ง์ž„ ์ปดํฌ๋„ŒํŠธ

  • Brownian
    • ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋А
    • Noise, ๋ฌด์ž‘์œ„ ์ ์ธ ์›€์ง์ž„
    • ์ฃผํŒŒ์ˆ˜, ์˜ฅํƒ€๋ธŒ ์ˆ˜๋ฅผ ์กฐ์ •ํ•ด์„œ ์„ธ๋ฐ€ํ•˜๊ฒŒ, ๋งˆ๊ตฌ์žก์ด๋กœ ์›€์ง์ด๋Š” ๋‹ค์–‘ํ•œ ์›€์ง์ž„ ๊ตฌํ˜„
    • ์นด๋ฉ”๋ผ ๋žœ๋ค ์›€์ง์ž„ (๋Œ€ํ‘œ์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€)
    • ์†์œผ๋กœ ๋“ค๊ณ  ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ•ํ•œ ์›€์ง์ž„
    • ํ˜น์€ ํฌ๋ ˆ์ธ ๋“ฑ์„ ์ด์šฉํ•œ ๋ถ€๋“œ๋Ÿฌ์šด (์•ฝํ•˜๊ฒŒ)
  • Natural Animation
    • ์งง์„ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์“ฐ๋ฉด ๋ถ€์ž์—ฐ์Šค๋Ÿฌ์šด
    • ์˜๋ฏธ๋Š” ์—†์ง€๋งŒ, ๋ถ€๋“œ๋Ÿฝ๊ฒŒ -> ์ž์—ฐ์ ์ธ ๊ฒƒ ๋“ฑ์—์„œ ์“ฐ๊ธฐ ์ ์ ˆํ•˜๊ฒŒ ๊ฐ„ํŽธํ•˜๋‹ค
    • ๋‚˜๋น„ ์›€์ง์ž„
    • ํ’ํ–ฅ๊ณ„ ์›€์ง์ž„์„ ์ด์šฉํ•œ
  • ์ข€ ๋” ๋ณต์žกํ•œ
    • Human Idle
    • ์ •์ง€ํ•œ ์ธ๊ฐ„์˜ ์ž์—ฐ์Šค๋Ÿฌ์šด ์›€์ง์ž„
    • ๋ฌด์ค‘๋ ฅ ์ƒํƒœ ๋“ฑ์—์„œ
    • ๊ฐ„๋‹จํ•œ ๊ตฌ์กฐ์ด์ง€๋งŒ, ์„ค๋“๋ ฅ ์žˆ๋Š” ์›€์ง์ž„์„ ๋ณด์ธ๋‹ค๋‹ค

cyclic
Linear
Random

  • Smooth Motion
    • Exponential
    • Spring
    • Damped Spring
    • @ Ease ๊ฐ™์€?

Procedural Motion Tack Package

Timeline์œผ๋กœ ์“ธ ์ˆ˜ ์žˆ๋„๋ก
๋˜๊ฐ๊ธฐ / ๋ฐ˜๋ณต / Fade(Cross) ๊ฐ€๋Šฅ

(์„ธ์…˜ ์‹œ๊ฐ„ ๋ถ€์กฑ์œผ๋กœ 4๊ฐ€์ง€ ์†Œ๊ฐœ ํ•˜๊ณ  ์ƒ๋žต)

๐Ÿ’ซ ๋ฉ”๋ชจ


๐Ÿซง ์ฐธ๊ณ 

์ด ๊ธฐ์‚ฌ๋Š” ์ €์ž‘๊ถŒ์ž์˜ CC BY 4.0 ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.