๐ก ์ง๋๋ฒ Old Input System๊ณผ Enhanced Input System์ ๊ฐ๊ฐ ์ด์ฉํ์ฌ 3์ธ์นญ ์บ๋ฆญํฐ๋ฅผ ์กฐ์ํ ์ ์๋๋ก ๊ตฌํํ์๋ค.
์ด๋ฒ์ ํด๋น ์บ๋ฆญํฐ์ ์ ๋๋ฉ์ด์ ์ ์ ์ฉํด ์ข ๋ ์ญ๋์ ์ธ ํจ๊ณผ๋ฅผ ์ค๋ณด๊ฒ ๋ค.
์ด๋ฒ์๋ ์บ๋ฆญํฐ์ ์ ๋๋ฉ์ด์
์ ์ ์ฉํด๋ณด๊ฒ ๋ค.
์ฌ๋ฌ๊ฐ์ง ์๋ํฐ๋ฅผ ์๋ค ๊ฐ๋ค ํด์ผํด์ ๋ณต์กํ ์์
์ด ๋๊ฒ ์ง๋ง ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฐ๋ผ๊ฐ๋ณด์.
1. ์ ๋๋ฉ์ด์
๋ธ๋ฃจํ๋ฆฐํธ ์์ฑ
2. State Machine ์ถ๊ฐ
3. ์ ์ง
4. ๋ฌ๋ฆฌ๊ธฐ
5. ์ ํ
6. ๊ฐ์
์ธ๋ฆฌ์ผ ์์ง5 ์ ๋๋ฉ์ด์ ๋ธ๋ฃจํ๋ฆฐํธ ๊ณต์ ๋ฌธ์
โ์ด์ ํฌ์คํ
์์ ์ ์ํ 3์ธ์นญ ์บ๋ฆญํฐ๋ฅผ ์ด์ด์ ์ฌ์ฉํฉ๋๋คโ
โ์์ง์์ ํธ์๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์๋์ผ๋ก ์ค์ ๋๋ ๊ฒฝ์ฐ๋ ๋ชจ๋ ์ค๋ช
ํ๋ ์ฐธ๊ณ ๋ฐ๋๋๋คโ
์ฐ๋ฆฌ๊ฐ ์์ฑํ๋ [Blueprint] ํด๋๋ก ์ด๋ํ์.
๊ทธ๋ผ ์๋์ ๊ฐ์ด ์ค์ผ๋ ํค์ ์ ํํ๋ ์ฐฝ์ด ๋ฌ๋ค.
๋ณธ์ธ์ด ์ ํํ๋ BP_Player์ ์ค์ผ๋ ํค์ ์ ํํ์.
์ด๋ค๊ฑธ ์ ํํ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค๋ฉด ์๋ ์ฌ์ง์ ๋ฐ๋ผ์ ํ์ธํ์.
- BP_Player์ ๋ค์ด๊ฐ๋ค.
- Mesh ์ ํ
- [Details]์ [Mesh]์น์ ํ์ธ
์ค์ผ๋ ํค์ ์ ํํ๋ค๋ฉด ABP_Player๋ผ๊ณ ์ด๋ฆ์ ์ง์ด์ฃผ์.
ABP_Player๋ฅผ ์์ฑํ์ผ๋ BP_Player์์ ์ด๋ฅผ ์ฌ์ฉํ๋๋ก ์ค์ ํด์ค์ผ ํ๋ค.
BP_Player๋ฅผ ์ด์.
ABP_Player๋ฅผ ์ ํํ๋ฉด ์๋์ผ๋ก Class๋ฅผ ์๋ฏธํ๋ _C๊ฐ ์๋์ผ๋ก ๋ถ์ผ๋ ๋นํฉํ์ง ๋ง์.
์ด์ ABP_Player๋ฅผ ๋๋ธํด๋ฆญํด์ ์๋ํฐ๋ฅผ ์ด์ด์ฃผ์. ๐
์๋ํฐ์ ๋ค์ด์๋ค๋ฉด Anim Graph๋ก ์ด๋ํ์.
๊ทธ๋ผ Output Pose๋ผ๋ ๋
ธ๋๊ฐ ํ๋ ์์ ๊ฒ์ด๋ค.
๊ทธ ์์ State Machine์ ํ๋ ์ถ๊ฐํ์.
์์ฑํ๋ค๋ฉด ํด๋น State Machine์ ์ด๋ฆ์ Locomotion์ด๋ผ ์ง์ด์ฃผ๊ณ Output Pose์ ์ฐ๊ฒฐํด์ฃผ์
์ปดํ์ผ์ ํ๋ฉด ์๋ ์ฒ๋ผ ํ๋ฆ์ด ์ด๋ํ๋ ๊ฒ์ด ๋ณด์ธ๋ค.
์ด์ Locomotion์ ๋๋ธํด๋ฆญํด์ ์ด๋ํ์.
Locomotion์ ๋ค์ด์ค๋ฉด Entry๋ผ๋ ๊ฒ์ด ๋ณด์ธ๋ค.
์ฐ๋ฆฌ๋ 3๊ฐ์ง์ ์ํ๋ฅผ ์ฐ์ ๋ง๋ค ๊ฒ์ด๋ค.
- IDle
- Run
- Jump
ํ๋์ฉ ๋ง๋ค์ด ๋ณด๊ฒ ๋ค.
Idle ์ํ๋ฅผ ๋จผ์ ๋ง๋ค์.
๊ทธ๋ฆฌ๊ณ Idle์ ๋๋ธํด๋ฆญํด์ ์ด๋ํ์.
์ ๊ณผ์ ์ ๋๋ด๋ฉด ์ฐ๋ฆฌ์ ์บ๋ฆญํฐ๊ฐ ๋ง๋ถ์์์ IDle ๋ชจ์ต์ ํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ดํ ๋๋จธ์ง ๋ ธ๋๋ค๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์์ ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ Run์ ๋๋ธํด๋ฆญํด์ ์ด๋ํ์.
๊ทธ๋ฆฌ๊ณ Jump์ ๋๋ธํด๋ฆญํด์ ์ด๋ํ์.
์ด์ Locomotion์ ๋ค์ด์ค๋ฉด Idle, Run, Jump 3๊ฐ์ง์ ์ํ๋ฅผ ํ์ธํ ์ ์๋ค.
ํด๋น ์ ๋๋ฉ์ด์ ์ ์๋ก ํ๋ฆ์ ์ฐ๊ฒฐํด์ฃผ๊ณ ์ ํ๋๋ ์กฐ๊ฑด์ ์ถ๊ฐํด์ค์ผ ํ๋ค.
ํ๋์ฉ ๋ง๋ค์ด ๋ณด์.
์ธ์ Idle์ํ์์ Run์ผ๋ก ๋ณํ๋์ง๋ฅผ ์๊ฐํด๋ณด์.
์บ๋ฆญํฐ์ Speed๊ฐ 0์ด๋ฉด ์ ์ง(Idle)์ํ์ด๊ณ
0๋ณด๋ค ํฌ๋ฉด ๋ฌ๋ฆฌ๊ธฐ(Run)์ํ์ผ ๊ฒ์ด๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ Speed๋ฅผ ์ฒดํฌํ ๋ณ์๋ฅผ ํ๋ ๋ง๋ค ๊ฒ์ด๋ค.
๊ทผ๋ฐ ์ฐ๋ฆฌ๋ Speed๋ฅผ ์ ์ธ๋ง ํ์ง ์ ์๋ฅผ ํด์ฃผ์ง ์์๋ค.
Speed์ ๊ฐ์ ์บ๋ฆญํฐ ์ํ์ ๋ฐ๋ผ์ ๋ณ๊ฒฝํด์ฃผ์ด์ผ ํ๋ค.
ABP_Player์ [Event Graph]๋ก ์ด๋ํ์.
Try Get Pawn Owner๋
ธ๋์ ๋ฐํ๊ฐ์ ๋น๊ฒจ์ Get Velocity๋
ธ๋๋ฅผ ์ถ๊ฐํ๋ค.
Get Velocity๋
ธ๋์ ๋ฐํ๊ฐ์ ๋น๊ฒจ์ Vector Length๋
ธ๋๋ฅผ ์ถ๊ฐํ๋ค.
Set Speed๋
ธ๋๋ฅผ ๊ฐ์ ธ์จ๋ค. Alt๋ฅผ ๋๋ฅธ ์ํ๋ก ๋๋๊ทธํ๋ฉด ๋ฐ๋ก ์ถ๊ฐ๋๋ค.
๊ทธ ํ Vector Length์ ๊ฐ์ ์ฐ๊ฒฐํ๊ณ Event Blueprint Upate Animation๊ณผ ํ๋ฆ์ ์ด์ด์ค๋ค.
Idle์์ Run์ผ๋ก ๋ณํ๋ ์กฐ๊ฑด์ ์ถ๊ฐํ์.
Idle์์ Run์ผ๋ก ํ๋ฆ์ ์ฐ๊ฒฐํด์ฃผ์.
Idle > Run ํ๋ฆ์ ํด๋ฆญํด์ ์ค์ ์ฐฝ์ผ๋ก ์ด๋ํ๋ค.
๊ทธ๋ผ Idle > Run์ ์กฐ๊ฑด์ ์ค์ ํ๋ ์ฐฝ์ผ๋ก ์ด๋ํ๋ค.
โ์ปดํ์ผ ์ ์ฅโ์ ํด์ฃผ๊ณ ํ๋ ์ดํ๋ฉด ์บ๋ฆญํฐ๊ฐ ๋ฌ๋ฆฌ๋๊ฑธ ํ์ธํ ์ ์๋ค.
๋๋จธ์ง ์์
๋ ๋ง์ ์งํํ์.
Run์์ Idle์ผ๋ก ๋ณํ๋ ์กฐ๊ฑด์ ์ถ๊ฐํ์.
Run์์ Idle์ผ๋ก ํ๋ฆ์ ์ฐ๊ฒฐํด์ฃผ์.
Idle > Run๊ณผ ๋ฐ๋์ ์กฐ๊ฑด์ ํ๋ฉด ๋ ๊ฒ์ด๋ค.
โ์ปดํ์ผ ์ ์ฅโ์ ํด์ฃผ๊ณ ํ๋ ์ดํ๋ฉด ์บ๋ฆญํฐ๊ฐ ์ ๋ฌ๋ฆฌ๊ณ ๋ฉ์ถ๋ค.
์ฌ๊ธฐ๊น์ง ์บ๋ฆญํฐ์ Idle, Run ์ํ ์ ๋๋ฉ์ด์
์ ์ถ๊ฐํ๋ค.
Jump๋ ๋ค์ ํฌ์คํ
์ ์ด์ด์ ์์ฑํ๊ฒ ๋ค.
1. ์ ๋๋ฉ์ด์
๋ธ๋ฃจํ๋ฆฐํธ ์์ฑ
2. State Machine ์ถ๊ฐ
3. ์ ์ง
4. ๋ฌ๋ฆฌ๊ธฐ
5. ์ ํ
6. ๊ฐ์