Animation Optimization - zzragida/UnityDocs GitHub Wiki
๋ณธ(Bone)์ ์
๋ง์ ๋ณธ์ ์ฌ์ฉํ์ฌ ์บ๋ฆญํฐ๋ฅผ ๋ง๋ค์ด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
(์๋ฅผ ๋ค๋ฉด ์ปค์คํ
๊ฐ๋ฅํ ๋ถ์ฐฉ๋ฌผ(Attachments)๋ค) ์ด ๊ฒฝ์ฐ, ํ์ํ ์ถ๊ฐ ๋ณธ์ ์์ ๋ฐ๋ผ ๋น๋ ํฌ๊ธฐ๊ฐ ์ปค์ ธ, ์ถ๊ฐ ๋ณธ ์์ ๋น๋กํ์ฌ ์ฒ๋ฆฌ ๋น์ฉ์ด ๋์ด๋ ๊ฒ์ผ๋ก ์๊ฐํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, Generic ๋ชจ๋์์ ์ด๋ฏธ 30์ ๋ณธ์ด ์๋ Rig์ 15์ ๋ณธ์ ์ถ๊ฐํ๋ฉด 50%์ ์ถ๊ฐ ์๊ฐ์ด ์์๋ฉ๋๋ค.
Generic ๋ฐ Humanoid๋ชจ๋์์ ์ถ๊ฐ ๋ณธ์ ๊ฐ์ง ์ ์์์ ์ ์ํ์ญ์์ค.
์ถ๊ฐ ๋ณธ์ ์ฌ์ฉํ๊ณ ์์ด๋ ์ฌ์ ํ ์ ๋๋ฉ์ด์
์ด ์๋ ๊ฒฝ์ฐ, ์ฒ๋ฆฌ ๋น์ฉ์ ์ฆ๊ฐ๋ ๋ฌด์ํ ์ ์๋ ์ ๋์
๋๋ค.
๋ถ์ฐฉ๋ฌผ(attachmets)์ด ์กด์ฌํ์ง ์๊ฑฐ๋ ์จ์ด์๋ ๊ฒฝ์ฐ์๋ ์ถ๊ฐ ์ฒ๋ฆฌ ๋น์ฉ์ ๋ฎ์์ง๋๋ค.
์ฌ๋ฌ ๊ฐ์ ์คํจ ๋งค์ฌ
๊ฐ๋ฅํ ํ ์คํจ ๋ฉ์ฌ๋ ๊ฒฐํฉ(combine)ํ์ญ์์ค.
์บ๋ฆญํฐ๋ฅผ ๋๊ฐ์ ์คํจ ๋ฉ์ฌ ๋ ๋๋ฌ(class-SkinnedMeshRenderer)๋ก ๋๋๋ ๊ฒ์ ํผํฌ๋จผ์ค ๊ด์ ์์๋ ์ข์ ์ผ์ด ์๋๋๋ค.
์บ๋ฆญํฐ์ ํ๋์ ๋ฉํฐ๋ฆฌ์ผ์ ์ฌ์ฉํ๋๊ฒ ๋ ์ข์ง๋ง, ์ค์ ๋ก๋ ์ฌ๋ฌ ๋ฉํ
๋ฆฌ์ผ์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํฉ๋๋ค.
์ปจํธ๋กค๋ฌ
์ ๋๋ฉ์ดํฐ/Animator๋ [์ปจํธ๋กค๋ฌ/Controller (class-AnimatorController)๊ฐ ์ค์ ๋์ด ์์ง ์์ผ๋ฉด ์ฒ๋ฆฌ ์๊ฐ์ด ์ฆ๊ฐํ์ง ์์ต๋๋ค.
์ฌํ ์๋๋ฉ์ด์
๋ธ๋ ๋ฉ์ด ์๋ ํ๋์ ์ ๋๋ฉ์ด์
ํด๋ฆฝ๋ฅผ ์ฌ์ํ๋ฉด ๋ฉ์นด๋์ด ๋ ๊ฑฐ์ ์ ๋๋ฉ์ด์
์์คํ
๋ณด๋ค ๋๋ ค์ง ์ ์์ต๋๋ค.
์ค๋๋ ์์คํ
์ ์ง์ ์ ์ด๋ฉฐ, ์ปค๋ธ๋ฅผ ์ํ๋งํ์ฌ Transform์ ์ง์ ๊ธฐ๋ก์ ์คํํ๊ณ ์์ต๋๋ค.
๋ฉ์นด๋์ ๋ธ๋ ๋ฉ์ ์ฌ์ฉํ๋ ์์ ๋ฒํผ๊ฐ ์์ผ๋ฉฐ, ์ํ๋ง๋ ์ปค๋ธ ๋ฐ ๊ธฐํ ๋ฐ์ดํฐ์ ๋ณต์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ฉ์นด๋ ๋ ์ด์์์ ์ ๋๋ฉ์ด์
๋ธ๋ ๋ฉ๊ณผ ๋ณด๋ค ๋ณต์กํ ์ค์ ์ ์ต์ ํ ๋์ด ์์ต๋๋ค.
์ค์ผ์ผ ์ปค๋ธ(Scale Curve)
Animating scale curves is more expensive than animating translation and rotation curves. To improve performance, avoid scale animations.
Note: This does not apply to constant curves (curves that have the same value for the length of the Animation Clip ). * * Constant curves are optimized, and are less expensive that normal curves.
๋ ์ด์ด(Layer)
๋ฉ์นด๋ ์ฒ๋ฆฌ ์๊ฐ์ ๋๋ถ๋ถ์ ์ ๋๋ฉ์ด์
์ ํ๊ฐ์ ์ฌ์ฉ๋๊ณ ์๊ธฐ ๋๋ฌธ์, AnimationLayers ๋ฐ AnimationStateMachines์ ์ค๋ฒ ํค๋๋ ์ต์ํ์ผ๋ก ์ ์ง ๋ฉ๋๋ค.
์ถ๊ฐ ๋ ์ด์ด๋ฅผ ์ ๋๋ฉ์ดํฐ์ ์ถ๊ฐํ๋ ๋น์ฉ์ ๋๊ธฐํ๋์ด ์๋์ง ์ฌ๋ถ์ ์๊ด์์ด ์ด๋ค ์ ๋๋ฉ์ด์
๋ฐ ๋ธ๋ ๋ ํธ๋ฆฌ๊ฐ ๋ ์ด์ด์ ์ํด ์ฌ์๋๊ณ ์๋์ง์ ์์กดํ๊ณ ์์ต๋๋ค.
๋ ์ด์ด ์จ์ดํธ๊ฐ ์ ๋ก๋ฉด ๋ ์ด์ด์ ์
๋ฐ์ดํธ๋ ์๋ต๋ฉ๋๋ค.
ํด๋จธ๋
ธ์ด๋ vs Generic ๋ชจ๋
ํด๋ชจ๋
ธ์ด๋ ์๋๋ฉ์ด์
์ ์ํฌํธํ ๋, ๋ฐ๋ ๋ง์คํฌ๋ฅผ ์ฌ์ฉํ์ฌ IK Goals ๋๋ ๋ถํ์ํ ์๊ฐ๋ฝ์ ์๋๋ฉ์ด์
์ ์ ์ธ ํจ
Generic์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ root motion์ ์ฌ์ฉํ๋ฉด ์ฒ๋ฆฌ ๋ถํ๊ฐ ์ฆ๊ฐ. root motion์ ์ฌ์ฉํ์ง ์๋ ์๋๋ฉ์ด์
์ ๊ฒฝ์ฐ root bone์ด ์ ํ๋์ด ์์ง ์์์ง ํ์ธ
๋ฉ์นด๋ ์ฌ
Animator์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฟผ๋ฆฌํ ๋๋ ๋ฌธ์์ด ๋์ ์ ํด์(Hash)๋ฅผ ์ฌ์ฉํจ
Animator๋ฅผ ์ ์ดํ๋ AI ๋ ์ด์ด๋ฅผ ์ถ์ ๊ตฌํํจ. OnStateChange, OnTransitionBegin ๋ฑ๋ฑ์ ์ํด ๊ฐ๋จํ ์ฝ๋ฐฑ์ด ์ ๊ณต๋จ
State ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ AI ์ํ ๋จธ์ ์ด ๋ฉ์นด๋ ์ํ ๋จธ์ ์ ์ผ์นํ๋๋ก ํจ
์ด๋ฒคํธ๋ฅผ ์๋ฎฌ๋ ์ด์
ํ๊ธฐ ์ํด ์ถ๊ฐ์ ์ธ ์ปค๋ธ๋ฅผ ์ฌ์ฉํจ
์ถ๊ฐ์ ์ธ ์ปค๋ธ๋ฅผ ์ฌ์ฉํ์ฌ ์๋๋ฉ์ด์
์ ๋งํฌ์
(Mark Up)ํจ. Target Matching๊ณผ ํจ๊ป ์ฌ์ฉ
๋ฐํ์ ์ต์ ํ
์๋๋ฉ์ดํฐ Culling Mode๋ฅผ Based on Renderers๋ก ์ค์ ํ์ฌ ์คํจ ๋ฉ์ฌ ๋ ๋๋ฌ์ Update When Offscreen ํ๋กํผํฐ๋ฅผ ํด์ ํจ์ผ๋ก์จ ์๋๋ฉ์ด์
์ ํญ์ ์ต์ ํ ํ ์ ์์
๊ฒฐ๊ณผ์ ์ผ๋ก ์บ๋ฆญํฐ๊ฐ ํ์๋์ง ์์ ๋๋ Update๋์ง ์์
๐๏ธ Page Index for this GitHub Wiki