์–ธ๋ฆฌ์–ผ์˜ ์ฐจ์„ธ๋Œ€ ๋ชจ์…˜ ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค.

๋ฉ”ํƒ€ํœด๋จผ์ด ๋ฐœ์ „ํ•˜๋ฉฐ, ์ด๋ฅผ ์ œ์–ดํ•  ๊ณ ๋„์˜ ๋ชจ์…˜ ๊ธฐ์ˆ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.


๋ชจ์…˜์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ํฌ๊ฒŒ ์„ธ ์ข…๋ฅ˜๋กœ ๋‚˜๋ˆ ์งˆ ์ˆ˜ ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค.


์ฒซ ๋ฒˆ์งธ๋Š” ๋ฏธ๋ฆฌ ์ฐ์–ด๋‘” ๋ชจ์…˜์„ ์žฌ์ƒ๋งŒ ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

์˜ํ™”๋‚˜ ๊ฒŒ์ž„์˜ ์ปท์”ฌ์ด ์ด ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.

์ž˜ ๋ณด์ด๋„๋ก ๋ฏธ๋ฆฌ ์นด๋ฉ”๋ผ ์—ฐ์ถœ์„ ํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋‘ ๋ฒˆ์งธ๋Š” ์‚ฌ๋žŒ์˜ ๋ชจ์…˜์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์บก์ณํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

๋ฒ„ํŠœ๋ฒ„๋‚˜ VR์ด ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์นด๋ฉ”๋ผ ์—ฐ์ถœ์ด๋‚˜ ์ข‹์€ ์žฅ๋ฉด์„ ์˜๋„ํ•˜๊ธฐ ์‰ฝ์ง€ ์•Š์ง€๋งŒ, ๋Œ€์‹  ์‹ค์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.


์„ธ ๋ฒˆ์งธ๋Š” ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ์…˜์ด ์ ˆ์ฐจ์  ์ƒ์„ฑ๋˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ˜์‘ํ•˜๋Š” NPC๋‚˜ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ•œ์ •๋œ ์ž…๋ ฅ์œผ๋กœ ์ž์—ฐ์Šค๋Ÿฌ์šด ๋ชจ์…˜๊ณผ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•ด์„œ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.


์ด๋ฒˆ์— ์‚ดํŽด๋ณผ ๋‚ด์šฉ์€ ๋ชจ์…˜์˜ ์ ˆ์ฐจ์  ์ƒ์„ฑ์ž…๋‹ˆ๋‹ค.

Rig์˜ ๊ธฐ๋ณธ์ ์ธ ์ •์˜๋ถ€ํ„ฐ, Motion Matching๊นŒ์ง€ ์ฐจ๊ทผ์ฐจ๊ทผ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


๋ชฉํ‘œ๋Š” Witcher 4 ๋ฐ๋ชจ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์กŒ๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.





์‹ค์‹œ๊ฐ„์œผ๋กœ ๋‘ ์บ๋ฆญํ„ฐ๊ฐ€ ๋™๊ธฐํ™”๋œ ์ƒํ˜ธ์ž‘์šฉ ๋ชจ์…˜์„ ๋ณด์—ฌ์ฃผ๊ณ  ๋‹ค์‹œ ํ—ค์–ด์ง‘๋‹ˆ๋‹ค.

์ด ๋ชจ์…˜์€ ์ ˆ์ฐจ์ ์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ์ง€๋งŒ, ๋งค์šฐ ๋†’์€ ํ€„๋ฆฌํ‹ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


๊ธฐ์กด์˜ ๊ฒŒ์ž„์—์„œ๋Š” ๋ณด๊ธฐ ํž˜๋“  ํ˜•ํƒœ์˜ ๋™์ž‘์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(ํ”Œ๋ ˆ์ด์–ด ์บ๋ฆญํ„ฐ๋„ ์•„๋‹ˆ๊ณ  ๊ทธ๋ƒฅ ๋ฐฐ๊ฒฝ์˜ NPC์ž…๋‹ˆ๋‹ค)




Rig: Bone + Weight



7cf3c028e2f206a26d81f6e04e80756531



๋ชจ๋“  3D ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ์‹œ์ž‘์€ ๋ฆฌ๊น…(Rigging)์ž…๋‹ˆ๋‹ค. ๋ฆฌ๊น…์€ ์ฐฐํ™์ฒ˜๋Ÿผ ์ •์ง€ํ•ด ์žˆ๋Š” 3D ๋ชจ๋ธ(๋ณดํ†ต '๋ฉ”์‹œ(Mesh)' ๋˜๋Š” '์Šคํ‚จ(Skin)'์ด๋ผ ๋ถ€๋ฆ„)์— ์›€์ง์ผ ์ˆ˜ ์žˆ๋Š” ๋ผˆ๋Œ€๋ฅผ ์‹ฌ๊ณ , ์ด ๋ผˆ๋Œ€๊ฐ€ ์‚ด(๋ฉ”์‹œ)์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์›€์ง์ด๋„๋ก ์—ฐ๊ฒฐํ•˜๋Š” ์ „์ฒด ๊ณผ์ •์„ ๋งํ•ฉ๋‹ˆ๋‹ค.


์•„๋ฌด๋ฆฌ ์ •๊ตํ•˜๊ฒŒ ๋ชจ๋ธ๋ง ๋œ ์บ๋ฆญํ„ฐ๋ผ๋„ ๋ฆฌ๊น…์ด ๋˜์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด ๋‹จ์ˆœํ•œ ๋””์ง€ํ„ธ ์กฐ๊ฐ์ƒ์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ๊น…์€ ์ด ์กฐ๊ฐ์ƒ์— ์ƒ๋ช…์„ ๋ถˆ์–ด๋„ฃ์–ด ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ํ•  ์ˆ˜ ์žˆ๋Š” '๋””์ง€ํ„ธ ์ธํ˜•(Puppet)'์œผ๋กœ ๋งŒ๋“œ๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.


์ด ๊ณผ์ •์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ํ•ต์‹ฌ ์š”์†Œ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.


1. Bone (๋ณธ / ์Šค์ผˆ๋ ˆํ†ค)

๋ณธ(Bone)์€ ์บ๋ฆญํ„ฐ๋ฅผ ์›€์ง์ด๊ธฐ ์œ„ํ•ด ๋‚ด๋ถ€์— ์‹ฌ๋Š” ๋ผˆ๋Œ€(Skeleton)์ž…๋‹ˆ๋‹ค. ๊ด€์ ˆ(Joint)์ด๋ผ๊ณ ๋„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค.


ํ•ต์‹ฌ์€ '๊ณ„์ธต ๊ตฌ์กฐ (Hierarchy)':

ย  ย  ๋ณธ์€ ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, '๋ถ€๋ชจ-์ž์‹' ๊ด€๊ณ„์˜ ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ์—„๊ฒฉํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์‹ค์ œ ์ƒ๋ฌผ์˜ ๋ผˆ๋Œ€์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ย  ย  - ๊ณจ๋ฐ˜(Root) ๋ณธ์ด ๋ถ€๋ชจ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

ย  ย  - ์–ด๊นจ ๋ณธ์€ ๊ณจ๋ฐ˜์˜ ์ž์‹์ž…๋‹ˆ๋‹ค.

ย  ย  - ํŒ”๊ฟˆ์น˜ ๋ณธ์€ ์–ด๊นจ์˜ ์ž์‹์ž…๋‹ˆ๋‹ค.

ย  ย  - ์†๋ชฉ ๋ณธ์€ ํŒ”๊ฟˆ์น˜์˜ ์ž์‹์ž…๋‹ˆ๋‹ค.


ย  ย  ์ด ๊ณ„์ธต ๊ตฌ์กฐ ๋•Œ๋ฌธ์—, ๋ถ€๋ชจ์ธ ์–ด๊นจ๋ฅผ ํšŒ์ „์‹œํ‚ค๋ฉด ์ž์‹์ธ ํŒ”๊ฟˆ์น˜์™€ ์†๋ชฉ์ด ์ž๋™์œผ๋กœ ํ•จ๊ป˜ ๋”ฐ๋ผ ์›€์ง์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ชจ๋“  ๋ผˆ๋Œ€ ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ๊ฐ€์žฅ ๊ทผ๋ณธ์ ์ธ ์›๋ฆฌ์ž…๋‹ˆ๋‹ค.


2. Weight (์›จ์ดํŠธ / ์Šคํ‚ค๋‹)

๋ผˆ๋Œ€๋ฅผ ์‹ฌ์—ˆ๋‹ค๊ณ  ํ•ด์„œ ๋ฉ”์‹œ๊ฐ€ ๋ฐ”๋กœ ๋”ฐ๋ผ ์›€์ง์ด์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋ผˆ(Bone)์™€ ์‚ด(Mesh)์„ ์—ฐ๊ฒฐํ•ด ์ฃผ๋Š” ์ž‘์—…์ด ํ•„์š”ํ•œ๋ฐ, ์ด๋ฅผ ์Šคํ‚ค๋‹(Skinning) ๋˜๋Š” ์›จ์ดํŠธ ํŽ˜์ธํŒ…(Weight Painting)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.


'์˜ํ–ฅ๋ ฅ'์„ ํ• ๋‹นํ•˜๋Š” ๊ณผ์ •:

ย  ย  ์›จ์ดํŠธ๋Š” 3D ๋ชจ๋ธ์˜ ํ‘œ๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ์ˆ˜๋งŽ์€ ์ •์ (Vertex) ๊ฐ๊ฐ์— ๋Œ€ํ•ด, '์–ด๋–ค ๋ณธ์— ์˜ํ•ด ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์˜ํ–ฅ์„ ๋ฐ›์„์ง€'๋ฅผ ์ˆซ์ž๋กœ ์ •์˜ํ•˜๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ด ์˜ํ–ฅ๋ ฅ์˜ ์ดํ•ฉ์€ ํ•ญ์ƒ 1(100%)์ด ๋ฉ๋‹ˆ๋‹ค.


์˜ˆ์‹œ (ํŒ”๊ฟˆ์น˜):

ย  ย  - ํŒ”๊ฟˆ์น˜ ๊ด€์ ˆ ๋ถ€๋ถ„์˜ ํ•œ ์ •์ ์€ ์–ด๊นจ ๋ณธ(๋ถ€๋ชจ)๊ณผ ํŒ”๊ฟˆ์น˜ ๋ณธ(์ž์‹)์˜ ์ค‘๊ฐ„์— ์žˆ์Šต๋‹ˆ๋‹ค.

ย  ย  - ์ด ์ •์ ์— '์–ด๊นจ ๋ณธ ์˜ํ–ฅ๋ ฅ 50%, ํŒ”๊ฟˆ์น˜ ๋ณธ ์˜ํ–ฅ๋ ฅ 50%'๋ผ๊ณ  ์›จ์ดํŠธ ๊ฐ’์„ ํ• ๋‹นํ•˜๋ฉด, ๋‘ ๋ผˆ๊ฐ€ ์›€์ง์ผ ๋•Œ ๊ทธ ์ •์ ์€ ๋‘ ์›€์ง์ž„์˜ ์ค‘๊ฐ„ ์ง€์ ์œผ๋กœ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

ย  ย  - ๋งŒ์•ฝ '์–ด๊นจ ๋ณธ 100%'๋กœ ์„ค์ •ํ•˜๋ฉด, ํŒ”๊ฟˆ์น˜๋ฅผ ๊ตฝํ˜€๋„ ์ด ์ •์ ์€ ์–ด๊นจ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ๋กœ๋ด‡์ฒ˜๋Ÿผ ๊ฐ์ง€๊ฒŒ ๊บพ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๋ฆฌ๊น…์ด๋ž€, ๋ชจ๋ธ์— ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ๋ผˆ(Bone)๋ฅผ ๋งŒ๋“ค๊ณ , ์ด ๋ผˆ๊ฐ€ ๋ฉ”์‹œ์˜ ๊ฐ ์ •์ ์— ์–ผ๋งˆ๋‚˜ ์˜ํ–ฅ์„ ๋ฏธ์น ์ง€ ์›จ์ดํŠธ(Weight)๋ฅผ ์„ค์ •ํ•˜์—ฌ, ๋ชจ๋ธ์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ณ€ํ˜•(Deform)๋˜๋ฉฐ ์›€์ง์ผ ์ˆ˜ ์žˆ๋„๋ก ์ค€๋น„ํ•˜๋Š” ์ „์ฒด ๊ณผ์ •์ž…๋‹ˆ๋‹ค.


์ด๋ ‡๊ฒŒ ๋ผˆ๋Œ€์™€ ์›จ์ดํŠธ ์„ค์ •์ด ์™„๋ฃŒ๋œ '๋ฆฌ๊ทธ(Rig)'๊ฐ€ ์ค€๋น„๋˜์–ด์•ผ, ๋น„๋กœ์†Œ ์šฐ๋ฆฌ๋Š” ์ด ๋ผˆ๋Œ€๋ฅผ ์–ด๋–ป๊ฒŒ '์ œ์–ด'ํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ์ด์ž ๊ธฐ๋ณธ์ ์ธ ์ œ์–ด ๋ฐฉ์‹์ด ๋ฐ”๋กœ ์ˆœ๋ฐฉํ–ฅ ์šด๋™ํ•™(FK)์ž…๋‹ˆ๋‹ค.




Forward Kinematics (FK)


2fb2de23e8d336af7eaadab402d82b33572373684f9a872e7c890d1a981a67c7e29a1d9c



FK๋Š” '์ˆœ๋ฐฉํ–ฅ'์ด๋ผ๋Š” ์ด๋ฆ„์ฒ˜๋Ÿผ, ๋ผˆ๋Œ€(Bone)์˜ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ผ ๋ถ€๋ชจ์—์„œ ์ž์‹ ์ˆœ์„œ๋กœ ์›€์ง์ž„์„ ์ œ์–ดํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๊ณ  ์ง๊ด€์ ์ธ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.


1. ์ •ํ™•ํ•œ ์ž‘๋™ ๋ฐฉ์‹

์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์Šค์—์„œ ์Šค์ผˆ๋ ˆํ†ค์€ '๋ถ€๋ชจ-์ž์‹' ๊ด€๊ณ„์˜ ๊ณ„์ธต ๊ตฌ์กฐ(Hierarchy)๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์–ด๊นจ (๋ถ€๋ชจ) -> ํŒ”๊ฟˆ์น˜ (์ž์‹) -> ์†๋ชฉ (์†์ž) ์ˆœ์ž…๋‹ˆ๋‹ค.


FK ๋ฐฉ์‹์—์„œ๋Š” ํ•ญ์ƒ ๋ถ€๋ชจ๊ฐ€ ์ž์‹์„ ์ด๋•๋‹ˆ๋‹ค.

a)ย  ์• ๋‹ˆ๋ฉ”์ดํ„ฐ๊ฐ€ ์–ด๊นจ ๋ณธ์„ ํšŒ์ „์‹œํ‚ต๋‹ˆ๋‹ค.

b)ย  ์–ด๊นจ์— ์—ฐ๊ฒฐ๋œ ์ž์‹์ธ ํŒ”๊ฟˆ์น˜์™€ ์†๋ชฉ์ด ์–ด๊นจ์˜ ์›€์ง์ž„์„ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ผ๊ฐ‘๋‹ˆ๋‹ค.

c) ๊ทธ๋‹ค์Œ ์• ๋‹ˆ๋ฉ”์ดํ„ฐ๊ฐ€ ํŒ”๊ฟˆ์น˜๋ฅผ ํšŒ์ „์‹œํ‚ต๋‹ˆ๋‹ค.

d)ย  ํŒ”๊ฟˆ์น˜์˜ ์ž์‹์ธ ์†๋ชฉ์ด ์–ด๊นจ์˜ ํšŒ์ „ ๊ฐ’ + ํŒ”๊ฟˆ์น˜์˜ ํšŒ์ „ ๊ฐ’์„ ๋ชจ๋‘ ๋”ํ•œ ์›€์ง์ž„์„ ๋”ฐ๋ผ๊ฐ‘๋‹ˆ๋‹ค.


์ด์ฒ˜๋Ÿผ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ผˆ๋Œ€ ์ฒด์ธ(Chain)์˜ ๋ฃจํŠธ(Root)์—์„œ ๋(End)์œผ๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ์ „๋‹ฌ๋œ๋‹ค๊ณ  ํ•ด์„œ '์ˆœ๋ฐฉํ–ฅ(Forward)' ์šด๋™ํ•™์ž…๋‹ˆ๋‹ค.


2. ์–ธ๋ฆฌ์–ผ ์—”์ง„์—์„œ์˜ ๊ตฌํ˜„

์–ธ๋ฆฌ์–ผ ์—”์ง„์˜ ๋ชจ๋“  ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œํ€€์Šค(UAnimSequence)์˜ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๋กœ FK์ž…๋‹ˆ๋‹ค.

- ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œํ€€์Šค ์• ์…‹์„ ์—ด์–ด๋ณด๋ฉด ํƒ€์ž„๋ผ์ธ์— ๋”ฐ๋ผ ๊ฐ ๋ณธ(Bone)์˜ ํŠธ๋žœ์Šคํผ(์ฃผ๋กœ ํšŒ์ „๊ฐ’)์ด ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ์ €์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

- ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ(AnimBP)์—์„œ Output Pose๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๋ชจ๋“  ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฐ์ดํ„ฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด FK ๋ฐ์ดํ„ฐ๊ฐ€ ์žฌ์ƒ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.




Inverse Kinematics (IK)


39a8c47fabd531a04e81d2b628f1756e4351e964ee66


1. FK์˜ ํ•œ๊ณ„์ 

FK๋Š” ํŒ”์„ ํœ˜๋‘๋ฅด๊ฑฐ๋‚˜ ๊ผฌ๋ฆฌ๋ฅผ ํ”๋“œ๋Š” ๋“ฑ, ํ˜ธ๋ฅผ ๊ทธ๋ฆฌ๋Š”(Arc-based) ์›€์ง์ž„์—๋Š” ๋งค์šฐ ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํŠน์ • ๋ชฉํ‘œ ์ง€์ ์„ ์ •ํ™•ํžˆ ์งš์–ด์•ผ ํ•  ๋•Œ ์น˜๋ช…์ ์ธ ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.


๋ฌธ์ œ: ์บ๋ฆญํ„ฐ์˜ ์†์„ ๋ฌธ๊ณ ๋ฆฌ ์œ„์น˜์— ์ •ํ™•ํžˆ ๊ฐ€์ ธ๋‹ค ๋†“์œผ๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”? FK ๋ฐฉ์‹์œผ๋กœ๋Š” ์–ด๊นจ๋ฅผ ๋ช‡ ๋„, ํŒ”๊ฟˆ์น˜๋ฅผ ๋ช‡ ๋„ ๋Œ๋ ค์•ผ ํ• ์ง€ ์ผ์ผ์ด ์ˆ˜๋™์œผ๋กœ ๊ณ„์‚ฐํ•˜๊ณ  ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋งค์šฐ ๋น„์ง๊ด€์ ์ด๊ณ  ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.


ํ•ต์‹ฌ ํ•œ๊ณ„: ๋ผˆ๋Œ€ ์ฒด์ธ์˜ ๋๋ถ€๋ถ„(End-Effector)์„ ํŠน์ • ์ขŒํ‘œ์— ๊ณ ์ •(Pinning)ํ•˜๊ธฐ๊ฐ€ ๊ทน๋„๋กœ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.


2. IK์˜ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

IK๋Š” '์—ญ๋ฐฉํ–ฅ'์ด๋ผ๋Š” ์ด๋ฆ„์ฒ˜๋Ÿผ, FK์™€ ์ •๋ฐ˜๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ผˆ๋Œ€ ์ฒด์ธ์˜ ๋๋ถ€๋ถ„(End-Effector)์„ ๋จผ์ € ์ง€์ •ํ•˜๋ฉด, ์‹œ์Šคํ…œ์ด ์ค‘๊ฐ„ ๊ด€์ ˆ๋“ค์˜ ํšŒ์ „ ๊ฐ’์„ ์ž๋™์œผ๋กœ ๊ณ„์‚ฐํ•˜์—ฌ ๋ผˆ๋Œ€ ์ฒด์ธ์˜ ๋ฃจํŠธ(Root) ๋ฐฉํ–ฅ์œผ๋กœ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€๋ฉฐ ํฌ์ฆˆ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.


3. ์ •ํ™•ํ•œ ์ž‘๋™ ๋ฐฉ์‹

a)ย  ๊ตฌ์„ฑ ์š”์†Œ:

ย  ย  - IK ์ฒด์ธ: IK๋ฅผ ์ ์šฉํ•  ๋ผˆ๋Œ€ ๋ฒ”์œ„ (์˜ˆ: ์–ด๊นจ๋ถ€ํ„ฐ ์†๋ชฉ๊นŒ์ง€)

ย  ย  - ์—”๋“œ ์ดํŽ™ํ„ฐ (End-Effector): ์ฒด์ธ์˜ ๋. ์šฐ๋ฆฌ๊ฐ€ ์ œ์–ดํ•˜๋ ค๋Š” ๋Œ€์ƒ (์˜ˆ: ์†๋ชฉ)

ย  ย  - IK ๊ณจ (Goal / Target): ์—”๋“œ ์ดํŽ™ํ„ฐ๊ฐ€ ๋„๋‹ฌํ•ด์•ผ ํ•  ๋ชฉํ‘œ ์œ„์น˜ (์˜ˆ: ๋ฌธ๊ณ ๋ฆฌ์˜ 3D ์ขŒํ‘œ)

ย  ย  - IK ์†”๋ฒ„ (Solver): ์ด ๋ชจ๋“  ๊ฒƒ์„ ๊ณ„์‚ฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜.


b)ย  ๊ณ„์‚ฐ: ์• ๋‹ˆ๋ฉ”์ดํ„ฐ๊ฐ€ IK ๊ณจ์„ ์›€์ง์ด๋ฉด, IK ์†”๋ฒ„๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ "์—”๋“œ ์ดํŽ™ํ„ฐ(์†๋ชฉ)๋ฅผ ์ด ๊ณจ ์œ„์น˜์— ๋„๋‹ฌ์‹œํ‚ค๋ ค๋ฉด ์–ด๊นจ์™€ ํŒ”๊ฟˆ์น˜๊ฐ€ ๋ช‡ ๋„๋กœ ํšŒ์ „ํ•ด์•ผ ํ•˜๋Š”๊ฐ€?"๋ผ๋Š” ๋ฐฉ์ •์‹์„ ํ’‰๋‹ˆ๋‹ค.


c)ย  ํด ๋ฒกํ„ฐ (Pole Vector): IK์˜ ์œ ์ผํ•œ ๋ฌธ์ œ๋Š” '๋ชจํ˜ธ์„ฑ'์ž…๋‹ˆ๋‹ค. ์†์ด ํŠน์ • ์ง€์ ์„ ํ–ฅํ•  ๋•Œ, ํŒ”๊ฟˆ์น˜๊ฐ€ ์œ„๋กœ ๊บพ์ผ ์ˆ˜๋„, ์•„๋ž˜๋กœ ๊บพ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. (์‚ฌ๋žŒ์˜ ๋ฌด๋ฆŽ์€ ๋’ค๋กœ๋งŒ ๊บพ์—ฌ์•ผ ํ•จ) ํด ๋ฒกํ„ฐ๋Š” ์ด ๋ชจํ˜ธ์„ฑ์„ ํ•ด๊ฒฐํ•ด์ฃผ๋Š” 'ํžŒํŠธ'์ž…๋‹ˆ๋‹ค. ํŒ”๊ฟˆ์น˜๋‚˜ ๋ฌด๋ฆŽ ๊ฐ™์€ ์ค‘๊ฐ„ ๊ด€์ ˆ์ด ํ•ญ์ƒ ๋ฐ”๋ผ๋ด์•ผ ํ•  ๋ฐฉํ–ฅ์„ ์ง€์ •ํ•ด์ฃผ๋Š” ๋ณ„๋„์˜ ์ปจํŠธ๋กค๋Ÿฌ(๋˜๋Š” ์ขŒํ‘œ)์ž…๋‹ˆ๋‹ค.


4. ์–ธ๋ฆฌ์–ผ ์—”์ง„์—์„œ์˜ ๊ตฌํ˜„

IK๋Š” ์ฃผ๋กœ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ(AnimBP)์˜ '์• ๋‹˜ ๊ทธ๋ž˜ํ”„(Anim Graph)'์—์„œ ์ ˆ์ฐจ์ (Procedural)์œผ๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.


- ์ฃผ์š” ๋…ธ๋“œ:

ย  ย  - Two-Bone IK: ๊ฐ€์žฅ ๋ณดํŽธ์ ์ธ ๋…ธ๋“œ. ํŒ”, ๋‹ค๋ฆฌ์ฒ˜๋Ÿผ 2๊ฐœ์˜ ๋ผˆ๋กœ ๊ตฌ์„ฑ๋œ ๊ด€์ ˆ(์˜ˆ: ์–ด๊นจ-ํŒ”๊ฟˆ์น˜-์†๋ชฉ ๋˜๋Š” ํ—ˆ๋ฒ…์ง€-์ •๊ฐ•์ด-๋ฐœ)์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. '๋ฐœ'์„ ์—”๋“œ ์ดํŽ™ํ„ฐ๋กœ, ๋•…๋ฐ”๋‹ฅ์˜ ์œ„์น˜๋ฅผ 'IK ๊ณจ'๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์šธํ‰๋ถˆํ‰ํ•œ ์ง€ํ˜•์—์„œ๋„ ๋ฐœ์ด ๋•…์— ๋”ฑ ๋ถ™๊ฒŒ(Foot Planting) ๋งŒ๋“ญ๋‹ˆ๋‹ค.

ย  ย - FABRIK (Forward And Backward Reaching Inverse Kinematics): ๋ผˆ ๊ฐœ์ˆ˜์— ์ƒ๊ด€์—†์ด ์—ฌ๋Ÿฌ ๊ด€์ ˆ๋กœ ์ด๋ฃจ์–ด์ง„ ์ฒด์ธ(์˜ˆ: ์ฒ™์ถ”, ๊ผฌ๋ฆฌ, ์ด‰์ˆ˜)์— ์œ ์šฉํ•œ, ๋” ์œ ์—ฐํ•˜๊ณ  ์„ฑ๋Šฅ์ด ์ข‹์€ IK ์†”๋ฒ„์ž…๋‹ˆ๋‹ค.




Control Rig


2bbfd92df5d32bb53fff9eba18dd2d33efaf77096a9c9306386604cd66c70961586c576a8dae5f0f3118580c9c95668819e034a4a6ab053e


1. FK์™€ IK์˜ ํ•œ๊ณ„์ 

FK์™€ IK๋Š” ๊ฐ•๋ ฅํ•œ '๋ฐฉ์‹'์ด์ง€๋งŒ, ๊ทธ ์ž์ฒด๋กœ๋Š” ์• ๋‹ˆ๋ฉ”์ดํ„ฐ์—๊ฒŒ ์นœ์ ˆํ•œ '๋„๊ตฌ'๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.


- ๋ฌธ์ œ 1 (๋ณต์žก์„ฑ): ์‹ค์ œ ์บ๋ฆญํ„ฐ ๋ฆฌ๊ทธ๋Š” ์ˆ˜๋ฐฑ ๊ฐœ์˜ ๋ผˆ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ๋‹ˆ๋ฉ”์ดํ„ฐ๊ฐ€ ๋งค๋ฒˆ 'L_Clavicle_01', 'L_UpperArm_02' ๊ฐ™์€ ๋ผˆ๋ฅผ ์ง์ ‘ ์„ ํƒํ•˜๊ณ , FK/IK ์†”๋ฒ„๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๋น„ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

- ๋ฌธ์ œ 2 (์›Œํฌํ”Œ๋กœ์šฐ): ์ „ํ†ต์ ์œผ๋กœ ์ด๋Ÿฐ '๋ฆฌ๊น…(Rigging)' ์ž‘์—…์€ Maya๋‚˜ Blender ๊ฐ™์€ ์™ธ๋ถ€ DCC ํˆด์—์„œ๋งŒ ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ธ๋ฆฌ์–ผ ์—”์ง„์€ ์™„์„ฑ๋œ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ '์žฌ์ƒ'ํ•˜๋Š” ๊ณณ์ด์—ˆ์ง€, '์ œ์ž‘'ํ•˜๋Š” ๊ณณ์ด ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค.

- ํ•ต์‹ฌ ํ•œ๊ณ„: FK์™€ IK๋ผ๋Š” ์ €์ˆ˜์ค€(Low-level)์˜ ๋ฐฉ์‹์„ ์• ๋‹ˆ๋ฉ”์ดํ„ฐ๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ๊ณ ์ˆ˜์ค€(High-level)์˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ถ”์ƒํ™”ํ•˜๊ณ  ํ†ตํ•ฉํ•  ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•์ด ์—”์ง„ ๋‚ด๋ถ€์— ์—†์—ˆ์Šต๋‹ˆ๋‹ค.


2. ์ปจํŠธ๋กค ๋ฆญ์˜ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

์ปจํŠธ๋กค ๋ฆญ(Control Rig)์€ ์Šค์ผˆ๋ ˆํ†ค์˜ ๋ณต์žกํ•œ ๋ผˆ ๊ตฌ์กฐ ์œ„์— ์• ๋‹ˆ๋ฉ”์ดํ„ฐ๋ฅผ ์œ„ํ•œ ์กฐ์ž‘๊ณ„(Interface)๋ฅผ ํ•œ ์ธต ๋” ์”Œ์šด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋™์‹œ์— ์–ธ๋ฆฌ์–ผ ์—”์ง„ ๋‚ด๋ถ€์—์„œ ์ง์ ‘ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ '์ œ์ž‘(Authoring)'ํ•˜๊ณ  '์ˆ˜์ •'ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฐ•๋ ฅํ•œ ๋…ธ๋“œ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.


3. ์ •ํ™•ํ•œ ์ž‘๋™ ๋ฐฉ์‹

์ปจํŠธ๋กค ๋ฆญ์€ '๋ผˆ(Bone)'๋ฅผ ์ง์ ‘ ์กฐ์ž‘ํ•˜๋Š” ๋Œ€์‹ , '์ปจํŠธ๋กค๋Ÿฌ(Controller)'๋ผ๋Š” ๊ฐ€์ƒ์˜ ์ œ์–ด์ ์„ ์กฐ์ž‘ํ•ฉ๋‹ˆ๋‹ค.


a)ย  ์ถ”์ƒํ™”: ์• ๋‹ˆ๋ฉ”์ดํ„ฐ๋Š” ๋” ์ด์ƒ ๋ผˆ๋ฅผ ๋ณด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์† ์œ„์น˜์— ์žˆ๋Š” ์›(Circle) ๋ชจ์–‘ ์ปจํŠธ๋กค๋Ÿฌ, ๋ฐœ ์œ„์น˜์— ์žˆ๋Š” ๋ฐ•์Šค(Box) ๋ชจ์–‘ ์ปจํŠธ๋กค๋Ÿฌ๋งŒ ์„ ํƒํ•˜๊ณ  ์›€์ง์ž…๋‹ˆ๋‹ค.

b)ย  ๋กœ์ง ๋‚ด์žฅ: ์ด ์ปจํŠธ๋กค๋Ÿฌ ๋‚ด๋ถ€์—๋Š” ๋ณต์žกํ•œ ๋กœ์ง์ด ์ˆจ๊ฒจ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

ย  ย  - ๋ฐœ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์›€์ง์ด๋ฉด, ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ํ•ด๋‹น ์œ„์น˜๋ฅผ IK ๊ณจ๋กœ ์‚ผ๋Š” IK ์†”๋ฒ„๊ฐ€ ์ž๋™์œผ๋กœ ์ž‘๋™ํ•˜์—ฌ ๋‹ค๋ฆฌ๋ผˆ๋“ค(ํ—ˆ๋ฒ…์ง€, ์ •๊ฐ•์ด)์˜ ํšŒ์ „ ๊ฐ’์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

ย  ย  - ํŒ” ์ปจํŠธ๋กค๋Ÿฌ์—๋Š” FK/IK ์ „ํ™˜ ์Šค์œ„์น˜๊ฐ€ ๋‹ฌ๋ ค์žˆ์–ด์„œ, ์• ๋‹ˆ๋ฉ”์ดํ„ฐ๊ฐ€ ์Šฌ๋ผ์ด๋” ํ•˜๋‚˜๋กœ FK ๋ชจ๋“œ(ํŒ” ํœ˜๋‘๋ฅด๊ธฐ)์™€ IK ๋ชจ๋“œ(๋ฒฝ ์งš๊ธฐ)๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์˜ค๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


3.ย  ๊ณ„์ธต ๊ตฌ์กฐ: ์ปจํŠธ๋กค๋Ÿฌ๋“ค๋ผ๋ฆฌ๋„ ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์†๊ฐ€๋ฝ ์ปจํŠธ๋กค๋Ÿฌ๋“ค์€ ์† ์ปจํŠธ๋กค๋Ÿฌ์˜ ์ž์‹์ด ๋˜์–ด ํ•จ๊ป˜ ์›€์ง์ž…๋‹ˆ๋‹ค.


4. ์–ธ๋ฆฌ์–ผ ์—”์ง„์—์„œ์˜ ๊ตฌํ˜„

์–ธ๋ฆฌ์–ผ ์—”์ง„ 5์˜ ์ปจํŠธ๋กค ๋ฆญ(Control Rig)์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ๊ณ ์œ ํ•œ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.


- ๋…ธ๋“œ ๊ธฐ๋ฐ˜ ๊ทธ๋ž˜ํ”„: ๋ธ”๋ฃจํ”„๋ฆฐํŠธ์™€ ์œ ์‚ฌํ•œ ๋น„์ฃผ์–ผ ์Šคํฌ๋ฆฝํŒ… ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , Get Bone Transform, Set Bone Transform, FABRIK IK ๋…ธ๋“œ ๋“ฑ์„ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฆฌ๊น… ๋กœ์ง์„ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

- ์ฃผ์š” ์‚ฌ์šฉ์ฒ˜ 1 (์• ๋‹ˆ๋ฉ”์ด์…˜ ์ œ์ž‘): ์‹œํ€€์„œ(Sequencer)์—์„œ ์ปจํŠธ๋กค ๋ฆญ์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ, ๋งˆ์น˜ Maya์ฒ˜๋Ÿผ ์–ธ๋ฆฌ์–ผ ์—”์ง„ ๋ ˆ๋ฒจ ์•ˆ์—์„œ ์ง์ ‘ ์บ๋ฆญํ„ฐ์˜ ํฌ์ฆˆ๋ฅผ ์žก๊ณ  ํ‚คํ”„๋ ˆ์ž„ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ œ์ž‘(Authoring)ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- ์ฃผ์š” ์‚ฌ์šฉ์ฒ˜ 2 (์ ˆ์ฐจ์  ์• ๋‹ˆ๋ฉ”์ด์…˜): ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ์—์„œ Control Rig ๋…ธ๋“œ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ์กด์˜ Two-Bone IK ๋…ธ๋“œ๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, '์ง€ํ˜•์— ๋”ฐ๋ผ ๋ฐœ์„ ๋งž์ถ”๊ณ , ๋ฐœ ์œ„์น˜์— ๋”ฐ๋ผ ๊ณจ๋ฐ˜์˜ ๋†’๋‚ฎ์ด๋„ ์กฐ์ ˆํ•˜๋ฉฐ, ์‹œ์„  ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ์ฒ™์ถ”๋ฅผ ์‚ด์ง ๋น„ํŠธ๋Š”' ๋ณต์žกํ•œ ์ ˆ์ฐจ์  ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋กœ์ง์„ ํ•˜๋‚˜์˜ ์ปจํŠธ๋กค ๋ฆญ ๊ทธ๋ž˜ํ”„๋กœ ๊น”๋”ํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.




Physics Based: Chaos


2ba8dc2adad73caf7ab0c4fb06df23730f2c138feb489b43013854f0191ceba3



1. ์ปจํŠธ๋กค ๋ฆญ (FK/IK)์˜ ํ•œ๊ณ„์ 

์ปจํŠธ๋กค ๋ฆญ์€ ์• ๋‹ˆ๋ฉ”์ดํ„ฐ์—๊ฒŒ '์™„๋ฒฝํ•œ ํ†ต์ œ๊ถŒ'์„ ์ค๋‹ˆ๋‹ค. ์ด๋Š” ์šด๋™ํ•™(Kinematics, ํž˜์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๋Š” ์›€์ง์ž„)์˜ ์ •์ ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์„ธ์ƒ ๋ชจ๋“  ์›€์ง์ž„์„ ์• ๋‹ˆ๋ฉ”์ดํ„ฐ๊ฐ€ ํ†ต์ œํ•ด์•ผ ํ• ๊นŒ์š”?


- ๋ฌธ์ œ: ์บ๋ฆญํ„ฐ๊ฐ€ ๊ฐ‘์ž๊ธฐ ๋ฉˆ์ถฐ ์„ค ๋•Œ, ๊ทธ์˜ ๋งํ†  ์ž๋ฝ์ด๋‚˜ ๊ธด ๋จธ๋ฆฌ์นด๋ฝ, ํ˜น์€ ํ—ˆ๋ฆฌ์— ์ฐฌ ์ฒด์ธ์˜ ์›€์ง์ž„์„ ์ƒ๊ฐํ•ด ๋ณด์‹ญ์‹œ์˜ค. ์ด ์ˆ˜๋ฐฑ ๊ฐœ์˜ ๋งํ†  ์ฃผ๋ฆ„๊ณผ ๋จธ๋ฆฌ์นด๋ฝ ํ•œ ์˜ฌ, ์ฒด์ธ ๋งํฌ ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ์• ๋‹ˆ๋ฉ”์ดํ„ฐ๊ฐ€ ์ปจํŠธ๋กค ๋ฆญ์œผ๋กœ '์ง์ ‘' ํ‚คํ”„๋ ˆ์ž„์„ ์žก๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์‚ฌ์‹ค์ ์ด์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค.

- ํ•ต์‹ฌ ํ•œ๊ณ„: ์ปจํŠธ๋กค ๋ฆญ์€ '์˜๋„๋œ' ์›€์ง์ž„์—๋Š” ์™„๋ฒฝํ•˜์ง€๋งŒ, ์บ๋ฆญํ„ฐ์˜ ์›€์ง์ž„์ด๋‚˜ ์™ธ๋ถ€ ํž˜(๋ฐ”๋žŒ, ์ค‘๋ ฅ)์— '๋ฐ˜์‘ํ•˜๋Š”' 2์ฐจ์ ์ธ(Secondary) ์›€์ง์ž„์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.


2. ์นด์˜ค์Šค ๋ฌผ๋ฆฌ์˜ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

์นด์˜ค์Šค ๋ฌผ๋ฆฌ(Chaos Physics)๋Š” ๋™์—ญํ•™(Dynamics) ๊ธฐ๋ฐ˜์˜ ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์• ๋‹ˆ๋ฉ”์ดํ„ฐ๊ฐ€ ์›€์ง์ž„์˜ '๊ฒฐ๊ณผ(ํฌ์ฆˆ)'๋ฅผ ์ง์ ‘ ๋งŒ๋“œ๋Š” ๋Œ€์‹ , ์˜ค๋ธŒ์ ํŠธ์˜ '๋ฌผ๋ฆฌ์  ์†์„ฑ(๊ทœ์น™)' (์˜ˆ: ์งˆ๋Ÿ‰, ๋ปฃ๋ปฃํ•จ, ๋งˆ์ฐฐ๋ ฅ)์„ ์ •์˜ํ•˜๊ณ , ๋ฌผ๋ฆฌ ์—”์ง„์ด '๊ฒฐ๊ณผ(์›€์ง์ž„)'๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‹œ๋ฎฌ๋ ˆ์ด์…˜(๊ณ„์‚ฐ)ํ•˜๋„๋ก ๋งก๊น๋‹ˆ๋‹ค.


3. ์ •ํ™•ํ•œ ์ž‘๋™ ๋ฐฉ์‹ (์นด์˜ค์Šค ์˜ท)

a)ย  ์งˆ์ -์Šคํ”„๋ง ๋ชจ๋ธ: ์นด์˜ค์Šค ์˜ท(Chaos Cloth)์€ 3D ๋ฉ”์‹œ๋ฅผ '๋ผˆ'๊ฐ€ ์•„๋‹Œ, ์ˆ˜๋งŽ์€ '์งˆ์ (Particle, ์งˆ๋Ÿ‰์„ ๊ฐ€์ง)'๊ณผ ์ด๋“ค์„ ์—ฐ๊ฒฐํ•˜๋Š” '์Šคํ”„๋ง(Spring, ์ œ์•ฝ์กฐ๊ฑด)'์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋ด…๋‹ˆ๋‹ค.

b)ย  ์†์„ฑ ์ •์˜: ์• ๋‹ˆ๋ฉ”์ดํ„ฐ๋Š” ์ด ์Šคํ”„๋ง์˜ ์†์„ฑ์„ ์กฐ์ ˆํ•˜์—ฌ ์žฌ์งˆ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

ย  ย  - Stretch(์‹ ์ถ•) ๊ฐ•๋„: ์–ผ๋งˆ๋‚˜ ์ž˜ ๋Š˜์–ด๋‚˜๋Š”๊ฐ€ (์ฒญ๋ฐ”์ง€ vs. ์ŠคํŒ๋ฑ์Šค)

ย  ย  - Bend(๊ตฝํž˜) ๊ฐ•๋„: ์–ผ๋งˆ๋‚˜ ๋ปฃ๋ปฃํ•œ๊ฐ€ (๊ฐ€์ฃฝ vs. ์‹คํฌ)

c)ย  ์‹œ๋ฎฌ๋ ˆ์ด์…˜: ๊ฒŒ์ž„์ด ์‹คํ–‰๋˜๋ฉด, ์นด์˜ค์Šค ์—”์ง„์€ ๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค ์ค‘๋ ฅ, ๋ฐ”๋žŒ, ๊ทธ๋ฆฌ๊ณ  ์บ๋ฆญํ„ฐ ๋ณธ์ฒด์˜ ์›€์ง์ž„(์ด๊ฒƒ์ด '์ถฉ๋Œ์ฒด' ์—ญํ• ์„ ํ•จ)์„ ๋ฐ›์•„ ์ด ์งˆ์ ๋“ค์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์Šคํ”„๋ง ์ œ์•ฝ์กฐ๊ฑด์„ ํ’€์–ด์„œ(Solve) ๊ฐ ์งˆ์ ์˜ ๋‹ค์Œ ์œ„์น˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

d)ย  ์›จ์ดํŠธ ํŽ˜์ธํŒ… (๊ณ ์ •): ์ปจํŠธ๋กค ๋ฆญ์˜ ์›จ์ดํŠธ(์Šคํ‚ค๋‹)์™€๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์นด์˜ค์Šค ์˜ท์˜ ์›จ์ดํŠธ ํŽ˜์ธํŒ…์€ "์–ด๋А ๋ถ€๋ถ„์ด ์‹œ๋ฎฌ๋ ˆ์ด์…˜์—์„œ ์ œ์™ธ๋ ์ง€(๊ณ ์ •๋ ์ง€)"๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: ์…”์ธ ์˜ ์–ด๊นจ์„ ์ด๋‚˜ ๋ฐ”์ง€์˜ ํ—ˆ๋ฆฌ๋  ๋ถ€๋ถ„์€ ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์—†์ด ์บ๋ฆญํ„ฐ ๋ผˆ๋ฅผ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ผ๊ฐ€์•ผ ํ•จ)


4. ์–ธ๋ฆฌ์–ผ ์—”์ง„์—์„œ์˜ ๊ตฌํ˜„

- Chaos Cloth:

ย  ย  - ์Šค์ผˆ๋ ˆํƒˆ ๋ฉ”์‹œ ์—๋””ํ„ฐ ๋‚ด์—์„œ ํŠน์ • ๋จธํ‹ฐ๋ฆฌ์–ผ ์Šฌ๋กฏ์— 'ํด๋กœ์Šค ๋ฐ์ดํ„ฐ(Cloth Data)'๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

ย  ย  - ๋ฐ์ดํ„ฐํ”Œ๋กœ์šฐ(Dataflow) ๊ทธ๋ž˜ํ”„๋ผ๋Š” ์ƒˆ๋กœ์šด ๋…ธ๋“œ ๊ธฐ๋ฐ˜ ์—๋””ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒœ์˜ ๋ฌผ๋ฆฌ ์†์„ฑ์„ ๋งค์šฐ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์„ค์ •ํ•˜๊ณ , ์›จ์ดํŠธ ๋งต์„ ์น ํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ๋น„ํŒŒ๊ดด์ ์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

- Chaos Hair (Groom):

ย  ย  - ์ˆ˜์‹ญ๋งŒ ๊ฐ€๋‹ฅ์˜ ๋จธ๋ฆฌ์นด๋ฝ(Render Strands)์„ ๋ชจ๋‘ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

ย  ย  - ๋Œ€์‹ , ๋ˆˆ์— ๋ณด์ด์ง€ ์•Š๋Š” ์†Œ์ˆ˜์˜ '๊ฐ€์ด๋“œ ๊ฐ€๋‹ฅ(Guide Strands)'๋งŒ์„ ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค.

ย  ย  - ๋‚˜๋จธ์ง€ ์ˆ˜๋งŽ์€ '๋ Œ๋” ๊ฐ€๋‹ฅ'๋“ค์€ ์ฃผ๋ณ€ '๊ฐ€์ด๋“œ ๊ฐ€๋‹ฅ'์˜ ์›€์ง์ž„์„ ์ฐธ์กฐํ•˜์—ฌ ๋ณด๊ฐ„(Interpolation)๋œ ์›€์ง์ž„์„ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ๋งค์šฐ ์‚ฌ์‹ค์ ์ธ ํฉ๋‚ ๋ฆผ์„ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.






์›๋ž˜ ๊ธ€ ํ•˜๋‚˜์งœ๋ฆฐ์ธ๋ฐ ๋ญ” ํ‚ค์›Œ๋“œ๊ฐ€ ๊ฑธ๋ ค์„œ ๊ทธ๋Ÿฐ์ง€ ๊ณ„์† ์ž๋™ ์‚ญ์ œ๋ผ์„œ ๋‚˜๋ˆ ์„œ ์˜ฌ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.