[๋ณธ ํฌ์คํ ์ Youtube ๊ณจ๋๋ฉํ๋์
'์ ๋ํฐ ๋ฑ์๋ผ์ดํฌ' ๊ฐ์ ์์์ ์ ๋ฆฌํ ํฌ์คํ ์ ๋๋ค.]
2D ์ ์ ๋๋ฉ์ด์ ์ ์์ ํ๊ธฐ ์ํด์๋ Unity์ Animator ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๊ฐํธํ๋ค.
Animator
๋จผ์ , ์์ฑํ๋ ค๋ Animation์ ์ ํํ์ฌ (Ctrl, Shift) ์ ๋๋ฉ์ด์ ์ ๋ฃ์ด์ค Hierarchy๋ก ๋๋๊ทธํ๋ฉด ์๋์ผ๋ก ์์ฑ๋๋ค.
๊ทธ๋ฌ๋ฉด ํด๋น ์ด๋ฆ์ Animator๋ ์๋์ผ๋ก ์์ฑ๋๊ฒ ๋๋ค.
์ฌ๊ธฐ์ ํด๋น Sprite์ ๊ธฐ๋ณธ Animation์ ์ฐํด๋ฆญํ์ฌ Set as Layer Default State๋ฅผ ํ๊ฒ ๋๋ฉด,
ํด๋น Animation์ด ๊ฒ์์ด ์คํํ์์ ๋ ์ฒ์์ผ๋ก ์คํ๋๊ฒ ๋๋ค.
๋ํ Dead Animation์ Player์ HP๊ฐ 0์ด ๋ ๋๋ง ์คํ๋๋ Animation์์ผ๋ก,
AnyState์์ Transition์ ์ฐ๊ฒฐํด ์ฃผ๋ฉด ๋๋ค. ( AnyState๋ ์ด๋ค ์ํ์์๋ ์คํํ๋ State์ด๋ค. )
์ฌ๊ธฐ์ ์ง์ ๋ Animation์ด ์คํํ๋ Parameter๋ฅผ ๋ง๋ค์ด์ฃผ๋ฉด ๋๋ค.
์ด๋ฒ ๊ฒ์์์ Player์๊ฒ ์ ์ฉ๋๋ Animation์ Stand, Run, Dead๊ฐ ์๋ค.
๊ฐ๋งํ ์์ ๋๋ Stand, ์์ง์ด๊ณ ์์๋๋ Run, Player๊ฐ ์ฌ๋งํ๋ฉด Dead๋ฅผ ์คํํ๋ฉด ๋๋ค.
๊ทธ๋ฌ๊ธฐ ์ํด์๋ Float ํํ์ Speed Parameter์ Trigger ํํ์ Dead Parameter์ ๋ง๋ค์ด์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ ๊ฒ Stand์์ Run์ผ๋ก, Run์์ Stand๋ก ์ด์ด์ฃผ๋ Transition์ ์ด์ด์ฃผ๊ณ ,
๊ฐ Transition์ Conditions๋ฅผ ํตํด ์์ฑํ๋ Speed Parameter์ ์ค์ ํ๋ฉด ๋๋ค.
Speed์์ Run์ผ๋ก ๊ฐ๋ Transition์ ์์ง์์ด ์๊ธธ ๋ ์คํ๋๋ Animation์์ผ๋ก Speed๊ฐ Greater(์ด์) ์ผ ๋,
Run์์ Speed์ผ๋ก ๊ฐ๋ Transition์ ์์ง์์ด ์์ ๋ ์คํ๋๋ Animation์์ผ๋ก Speed๊ฐ Less(์ดํ)๋ก ์ค์ ํ๋ฉด ๋๋ค.
Speed์ ํฌ๊ธฐ๋ 0์ด๋ 0.01๋ก ํ์ฌ๋ ๋ฌด๊ดํ๋ค.
๊ทธ๋ฆฌ๊ณ , ๋ชจ๋ Transition์์ ์ ์ฉํด์ผ ํ๋ ๋ถ๋ถ์ด Settings์์ Transition Duration์ 0์ผ๋ก ๋ณ๊ฒฝํด์ผ ํ๋ค.
3D ๊ฒ์์์ ๋ถ๋๋ฝ๊ฒ ์ ํํด ์ฃผ๋ Duration์ ์ ์ ๋๋ฉ์ด์ ์์๋ ์ต์ํํด์ผ ํ๋ค.
๋ํ, Has Exit Time ๋ํ ์ฒดํฌ๋ฅผ ํด์ ํ๋ฉด ๋๋ค. (์ด์ ์ ๋๋ฉ์ด์ ์ด ๋๋๊ณ ์คํํ๊ฒ ํ๋ ์ฒดํฌ๋ฐ์ค์ด๋ค.)
๋ง์ง๋ง์ผ๋ก Any State์์ Dead๋ก ์ฐ๊ฒฐ๋๋ Transition์ ๋ง๋ค์ด์ฃผ๊ณ Duration์ ์ต์ํ์ํค๋ฉฐ,
Conditions์์ Dead Trigger์ ์ถ๊ฐํด ์ฃผ๋ฉด ๋๋๊ฒ ๋๋ค.
์ด์ ์ค์ ํ๋ Animator๋ฅผ Script๋ ์ฐ๊ฒฐํ๋ ์ฝ๋๋ฅผ ์์ฑํด์ผ ํ๋ค.
๋จผ์ , Player Sctipt์์ Animator์ ์ ์ธํ๊ณ ์ด๊ธฐํ๋ฅผ ์งํํด์ผ ํ๋ค.
Animator anim;
anim = GetComponent<Animator>();
๊ทธ๋ฆฌ๊ณ , LateUpdate() ๋ถ๋ถ์์ Animation ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ฉด ๋๋ค.
anim.SetFloat("Speed",inputVec.magnitude);
ํ ๋ฌธ์ฅ์ด๋ฉด ์์ง์ด๋ ์ ๋๋ฉ์ด์ ์ด ๊ฐ๋ฅํ๋ฐ ํด๋น ์ฝ๋๋ฅผ ํด์ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
Floatํํ์ Speed๋ผ๋ ๊ฐ์ ์ค์ ํ๋๋ฐ ์ค์ ํ๋ ๊ฐ์ด inputVec.magnitude์ธ ๊ฒ์ด๋ค.
magnitude๋ Vector ์์ฒด์ ์์ํ ํฌ๊ธฐ ๊ฐ์ด๋ค.
Player์ y์ถ์ผ๋ก ์์ง์ด๋ , x์ถ์ผ๋ก ์์ง์ด๋ ์์ง์ด๋ฉด Vector์ ํฌ๊ธฐ์ ๋ณํ๊ฐ ์๊ธฐ๊ธฐ ๋๋ฌธ์,
Animation์ด ์คํ๋๋ ์๋ฆฌ์ด๋ค.
Animator Override
๋ง๋ค๋ ค๋ ๊ฒ์์๋ Player์ Charactor๋ ์ด 4๊ฐ์ง๊ฐ ์๋ค.
ํ๋ํ๋ ์ ๋๋ฉ์ดํฐ๋ฅผ ์ ์ํ๊ณ ์ฝ๋๋ฅผ ์ ์ํ๊ธฐ์๋ Charactor์ ์ข ๋ฅ๊ฐ ๋ง์ผ๋ฉด ๋ง์์๋ก ์ด๋ ค์์ง ๊ฒ์ด๋ค.
๊ทธ๋ ๊ธฐ์ Unity์์ ์ ๊ณตํ๋ Animator Override๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ํธ๋ฆฌํ๊ฒ ํด๊ฒฐํ ์ ์๋ค.
Animations Folder์์ + ๋ฒํผ์ ๋๋ฅด๊ฒ ๋๋ฉด Animator Override Controller๋ฅผ ํ์ธํ ์ ์๋ค.
์ด๋ค Animator์ Override ํ ๊ฒ์ธ์ง Override ํ Controller์ ๋ฃ์ด์ฃผ๊ณ ,
๊ธฐ์กด Animation์์ Overrideํ Animation์ ๋ฃ์ด์ฃผ๊ฒ ๋๋ฉด ๋์ด๋ค.
'๐ฎ Unity > Project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Unity] ๋ก๊ทธ๋ผ์ดํฌ ์์กด RPG (5) - ๋ชฌ์คํฐ ์ํ (0) | 2024.04.17 |
---|---|
[Unity] ๋ก๊ทธ๋ผ์ดํฌ ์์กด RPG (4) - ๋ชฌ์คํฐ ๋ง๋ค๊ธฐ (0) | 2024.03.13 |
[Unity] ๋ก๊ทธ๋ผ์ดํฌ ์์กด RPG (3) - ๋ฌดํ ๋งต ์ด๋ (1) | 2024.03.10 |
[Unity] ๋ก๊ทธ๋ผ์ดํฌ ์์กด RPG (1) - ํ๋ ์ด์ด ์ด๋ ๊ตฌํ (1) | 2024.02.07 |
๋ฌผ๋ฆฌ ์ด๋ ๊ตฌํ (1) | 2023.02.12 |