์ธ๋ฆฌ์ผ์ ์ฐจ์ธ๋ ๋ชจ์ ๊ธฐ์ ์ ๋ํด ์์๋ด ์๋ค.
๋ฉํํด๋จผ์ด ๋ฐ์ ํ๋ฉฐ, ์ด๋ฅผ ์ ์ดํ ๊ณ ๋์ ๋ชจ์ ๊ธฐ์ ์ด ํ์ํฉ๋๋ค.
๋ชจ์ ์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๋ ํฌ๊ฒ ์ธ ์ข ๋ฅ๋ก ๋๋ ์ง ์ ์๊ฒ ์ต๋๋ค.
์ฒซ ๋ฒ์งธ๋ ๋ฏธ๋ฆฌ ์ฐ์ด๋ ๋ชจ์ ์ ์ฌ์๋ง ํ๋ ๊ฒฝ์ฐ์ ๋๋ค.
์ํ๋ ๊ฒ์์ ์ปท์ฌ์ด ์ด ๋ฐฉ๋ฒ์ ์ด์ฉํฉ๋๋ค.
์ ๋ณด์ด๋๋ก ๋ฏธ๋ฆฌ ์นด๋ฉ๋ผ ์ฐ์ถ์ ํ๊ณ ์์ ํ ์ ์์ต๋๋ค.
๋ ๋ฒ์งธ๋ ์ฌ๋์ ๋ชจ์ ์ ์ค์๊ฐ์ผ๋ก ์บก์ณํ๋ ๊ฒฝ์ฐ์ ๋๋ค.
๋ฒํ๋ฒ๋ VR์ด ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
์นด๋ฉ๋ผ ์ฐ์ถ์ด๋ ์ข์ ์ฅ๋ฉด์ ์๋ํ๊ธฐ ์ฝ์ง ์์ง๋ง, ๋์ ์ค์๊ฐ์ ๋๋ค.
์ธ ๋ฒ์งธ๋ ์ค์๊ฐ์ผ๋ก ๋ชจ์ ์ด ์ ์ฐจ์ ์์ฑ๋๋ ๊ฒฝ์ฐ์ ๋๋ค.
์ค์๊ฐ์ผ๋ก ๋ฐ์ํ๋ NPC๋ ํ๋ ์ด์ด๊ฐ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
ํ์ ๋ ์ ๋ ฅ์ผ๋ก ์์ฐ์ค๋ฌ์ด ๋ชจ์ ๊ณผ ์ํธ์์ฉ์ ๊ตฌํํด์ผ ํด์ ์ด๋ ต์ต๋๋ค.
์ด๋ฒ์ ์ดํด๋ณผ ๋ด์ฉ์ ๋ชจ์ ์ ์ ์ฐจ์ ์์ฑ์ ๋๋ค.
Rig์ ๊ธฐ๋ณธ์ ์ธ ์ ์๋ถํฐ, Motion Matching๊น์ง ์ฐจ๊ทผ์ฐจ๊ทผ ์์๋ณด๊ฒ ์ต๋๋ค.
๋ชฉํ๋ Witcher 4 ๋ฐ๋ชจ๊ฐ ์ด๋ป๊ฒ ๋ง๋ค์ด์ก๋์ง ์ดํดํ๋ ๊ฒ์ ๋๋ค.
์ค์๊ฐ์ผ๋ก ๋ ์บ๋ฆญํฐ๊ฐ ๋๊ธฐํ๋ ์ํธ์์ฉ ๋ชจ์ ์ ๋ณด์ฌ์ฃผ๊ณ ๋ค์ ํค์ด์ง๋๋ค.
์ด ๋ชจ์ ์ ์ ์ฐจ์ ์ผ๋ก ์์ฑ๋์์ง๋ง, ๋งค์ฐ ๋์ ํ๋ฆฌํฐ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์์ต๋๋ค.
๊ธฐ์กด์ ๊ฒ์์์๋ ๋ณด๊ธฐ ํ๋ ํํ์ ๋์์์ ์ ์ ์์ต๋๋ค.
(ํ๋ ์ด์ด ์บ๋ฆญํฐ๋ ์๋๊ณ ๊ทธ๋ฅ ๋ฐฐ๊ฒฝ์ NPC์ ๋๋ค)
Rig: Bone + Weight
๋ชจ๋ 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)
FK๋ '์๋ฐฉํฅ'์ด๋ผ๋ ์ด๋ฆ์ฒ๋ผ, ๋ผ๋(Bone)์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ผ ๋ถ๋ชจ์์ ์์ ์์๋ก ์์ง์์ ์ ์ดํ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ด๊ณ ์ง๊ด์ ์ธ ๋ฐฉ์์ ๋๋ค.
1. ์ ํํ ์๋ ๋ฐฉ์
์ปดํจํฐ ๊ทธ๋ํฝ์ค์์ ์ค์ผ๋ ํค์ '๋ถ๋ชจ-์์' ๊ด๊ณ์ ๊ณ์ธต ๊ตฌ์กฐ(Hierarchy)๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ด๊นจ (๋ถ๋ชจ) -> ํ๊ฟ์น (์์) -> ์๋ชฉ (์์) ์์ ๋๋ค.
FK ๋ฐฉ์์์๋ ํญ์ ๋ถ๋ชจ๊ฐ ์์์ ์ด๋๋๋ค.
a)ย ์ ๋๋ฉ์ดํฐ๊ฐ ์ด๊นจ ๋ณธ์ ํ์ ์ํต๋๋ค.
b)ย ์ด๊นจ์ ์ฐ๊ฒฐ๋ ์์์ธ ํ๊ฟ์น์ ์๋ชฉ์ด ์ด๊นจ์ ์์ง์์ ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ๋๋ค.
c) ๊ทธ๋ค์ ์ ๋๋ฉ์ดํฐ๊ฐ ํ๊ฟ์น๋ฅผ ํ์ ์ํต๋๋ค.
d)ย ํ๊ฟ์น์ ์์์ธ ์๋ชฉ์ด ์ด๊นจ์ ํ์ ๊ฐ + ํ๊ฟ์น์ ํ์ ๊ฐ์ ๋ชจ๋ ๋ํ ์์ง์์ ๋ฐ๋ผ๊ฐ๋๋ค.
์ด์ฒ๋ผ ์ ๋๋ฉ์ด์ ๋ฐ์ดํฐ๊ฐ ๋ผ๋ ์ฒด์ธ(Chain)์ ๋ฃจํธ(Root)์์ ๋(End)์ผ๋ก ์์ฐจ์ ์ผ๋ก ์ ๋ฌ๋๋ค๊ณ ํด์ '์๋ฐฉํฅ(Forward)' ์ด๋ํ์ ๋๋ค.
2. ์ธ๋ฆฌ์ผ ์์ง์์์ ๊ตฌํ
์ธ๋ฆฌ์ผ ์์ง์ ๋ชจ๋ ์ ๋๋ฉ์ด์ ์ํ์ค(UAnimSequence)์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋ก FK์ ๋๋ค.
- ์ ๋๋ฉ์ด์ ์ํ์ค ์ ์ ์ ์ด์ด๋ณด๋ฉด ํ์๋ผ์ธ์ ๋ฐ๋ผ ๊ฐ ๋ณธ(Bone)์ ํธ๋์คํผ(์ฃผ๋ก ํ์ ๊ฐ)์ด ํคํ๋ ์์ผ๋ก ์ ์ฅ๋์ด ์์ต๋๋ค.
- ์ ๋๋ฉ์ด์ ๋ธ๋ฃจํ๋ฆฐํธ(AnimBP)์์ Output Pose๋ก ์ฐ๊ฒฐ๋๋ ๋ชจ๋ ์ ๋๋ฉ์ด์ ๋ฐ์ดํฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด FK ๋ฐ์ดํฐ๊ฐ ์ฌ์๋๋ ๊ฒ์ ๋๋ค.
Inverse Kinematics (IK)
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
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
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)๋ ์์ง์์ ๋ฐ๋ผ๊ฐ๋ฉฐ ๋งค์ฐ ์ฌ์ค์ ์ธ ํฉ๋ ๋ฆผ์ ํํํฉ๋๋ค.
์๋ ๊ธ ํ๋์ง๋ฆฐ์ธ๋ฐ ๋ญ ํค์๋๊ฐ ๊ฑธ๋ ค์ ๊ทธ๋ฐ์ง ๊ณ์ ์๋ ์ญ์ ๋ผ์ ๋๋ ์ ์ฌ๋ฆฌ๊ฒ ์ต๋๋ค.
์ธ๋ฆฌ์ผ์ ์ ๊ฒ ๋ค ๊ธฐ๋ณธ ๋ด์ฅ๋์ด์๊ตฌ๋ญ..
4๋์๋์ฌ์ ์ง์ ๋ง๋ค๋ ใ ๊ฐ์์
์ด์ ๋ฉํํด๋จผ๋ ๊ธฐ๋ณธ ์ ๊ณตํด์ ๋ชจ๋ธ๋ง๋ ์ฌ์์ง ๊ฒ ๊ฐ์์
์ ๋ณด๋ ์ถ์ฒ์ด์ผ