[UE5] ๐Ÿƒโ€โ™‚ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ ์šฉ (1)

Singery00ยท2024๋…„ 3์›” 27์ผ
0

UE5 Blueprint

๋ชฉ๋ก ๋ณด๊ธฐ
7/29
post-thumbnail

๊ฐœ์š”

๐Ÿ’ก ์ง€๋‚œ๋ฒˆ Old Input System๊ณผ Enhanced Input System์„ ๊ฐ๊ฐ ์ด์šฉํ•˜์—ฌ 3์ธ์นญ ์บ๋ฆญํ„ฐ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค.
์ด๋ฒˆ์—” ํ•ด๋‹น ์บ๋ฆญํ„ฐ์— ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ ์šฉํ•ด ์ข€ ๋” ์—ญ๋™์ ์ธ ํšจ๊ณผ๋ฅผ ์ค˜๋ณด๊ฒ ๋‹ค.

์ด๋ฒˆ์—๋Š” ์บ๋ฆญํ„ฐ์— ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ ์šฉํ•ด๋ณด๊ฒ ๋‹ค.
์—ฌ๋Ÿฌ๊ฐ€์ง€ ์—๋””ํ„ฐ๋ฅผ ์™”๋‹ค ๊ฐ”๋‹ค ํ•ด์•ผํ•ด์„œ ๋ณต์žกํ•œ ์ž‘์—…์ด ๋˜๊ฒ ์ง€๋งŒ ์ฐจ๊ทผ์ฐจ๊ทผ ๋”ฐ๋ผ๊ฐ€๋ณด์ž.

1. ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์ƒ์„ฑ
2. State Machine ์ถ”๊ฐ€
3. ์ •์ง€
4. ๋‹ฌ๋ฆฌ๊ธฐ
5. ์ ํ”„
6. ๊ฐœ์„ 

์–ธ๋ฆฌ์–ผ ์—”์ง„5 ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ๊ณต์‹ ๋ฌธ์„œ

์–ธ๋ฆฌ์–ผ ์—”์ง„5 ์• ๋‹ˆ๋ฉ”์ด์…˜ ์—๋””ํ„ฐ ๊ณต์‹ ๋ฌธ์„œ

โ—์ด์ „ ํฌ์ŠคํŒ…์—์„œ ์ œ์ž‘ํ•œ 3์ธ์นญ ์บ๋ฆญํ„ฐ๋ฅผ ์ด์–ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹คโ—
โ—์—”์ง„์—์„œ ํŽธ์˜๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ž๋™์œผ๋กœ ์„ค์ •๋˜๋Š” ๊ฒฝ์šฐ๋„ ๋ชจ๋‘ ์„ค๋ช…ํ•˜๋‹ˆ ์ฐธ๊ณ ๋ฐ”๋ž๋‹ˆ๋‹คโ—


๋ณธ๋ก 


๐Ÿ“˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์ƒ์„ฑ

์šฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑํ–ˆ๋˜ [Blueprint] ํด๋”๋กœ ์ด๋™ํ•˜์ž.

  1. ๋นˆ ๊ณณ์—์„œ ์šฐํด๋ฆญ
  2. Animation ์„น์…˜
  3. Animation Blueprint ์„ ํƒ

๊ทธ๋Ÿผ ์•„๋ž˜์™€ ๊ฐ™์ด ์Šค์ผˆ๋ ˆํ†ค์„ ์„ ํƒํ•˜๋Š” ์ฐฝ์ด ๋œฌ๋‹ค.

๋ณธ์ธ์ด ์„ ํƒํ–ˆ๋˜ BP_Player์˜ ์Šค์ผˆ๋ ˆํ†ค์„ ์„ ํƒํ•˜์ž.
์–ด๋–ค๊ฑธ ์„ ํƒํ–ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด ์•„๋ž˜ ์‚ฌ์ง„์„ ๋”ฐ๋ผ์„œ ํ™•์ธํ•˜์ž.

  1. BP_Player์— ๋“ค์–ด๊ฐ„๋‹ค.
  2. Mesh ์„ ํƒ
  3. [Details]์˜ [Mesh]์„น์…˜ ํ™•์ธ

์Šค์ผˆ๋ ˆํ†ค์„ ์„ ํƒํ–ˆ๋‹ค๋ฉด ABP_Player๋ผ๊ณ  ์ด๋ฆ„์„ ์ง€์–ด์ฃผ์ž.

ABP_Player๋ฅผ ์ƒ์„ฑํ–ˆ์œผ๋‹ˆ BP_Player์—์„œ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

BP_Player๋ฅผ ์—ด์ž.

  1. ์ขŒ์ธก [Components] ํƒญ์—์„œ BP_Player ์„ ํƒ
  2. ์šฐ์ธก [Details] ํƒญ์—์„œ Animation ์„น์…˜ ํ™•์ธ
  3. Animation Mode๋ฅผ Use Animation Blueprint ์„ ํƒ
  4. Anim Class๋ฅผ ABP_Player๋กœ ์„ ํƒ

ABP_Player๋ฅผ ์„ ํƒํ•˜๋ฉด ์ž๋™์œผ๋กœ Class๋ฅผ ์˜๋ฏธํ•˜๋Š” _C๊ฐ€ ์ž๋™์œผ๋กœ ๋ถ™์œผ๋‹ˆ ๋‹นํ™ฉํ•˜์ง€ ๋ง์ž.

์ด์ œ ABP_Player๋ฅผ ๋”๋ธ”ํด๋ฆญํ•ด์„œ ์—๋””ํ„ฐ๋ฅผ ์—ด์–ด์ฃผ์ž. ๐Ÿ‘


๐Ÿฆฟ State Machine ์ถ”๊ฐ€

์—๋””ํ„ฐ์— ๋“ค์–ด์™”๋‹ค๋ฉด Anim Graph๋กœ ์ด๋™ํ•˜์ž.
๊ทธ๋Ÿผ Output Pose๋ผ๋Š” ๋…ธ๋“œ๊ฐ€ ํ•˜๋‚˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
๊ทธ ์˜†์— State Machine์„ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•˜์ž.

์–ธ๋ฆฌ์–ผ ์—”์ง„5 ์ƒํƒœ ๊ธฐ๊ณ„ ๊ณต์‹ ๋ฌธ์„œ

์ƒ์„ฑํ–ˆ๋‹ค๋ฉด ํ•ด๋‹น State Machine์˜ ์ด๋ฆ„์„ Locomotion์ด๋ผ ์ง€์–ด์ฃผ๊ณ  Output Pose์™€ ์—ฐ๊ฒฐํ•ด์ฃผ์ž

์ปดํŒŒ์ผ์„ ํ•˜๋ฉด ์•„๋ž˜ ์ฒ˜๋Ÿผ ํ๋ฆ„์ด ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ๋ณด์ธ๋‹ค.

์ด์ œ Locomotion์„ ๋”๋ธ”ํด๋ฆญํ•ด์„œ ์ด๋™ํ•˜์ž.


Locomotion ์ƒํƒœ ์ถ”๊ฐ€

Locomotion์— ๋“ค์–ด์˜ค๋ฉด Entry๋ผ๋Š” ๊ฒƒ์ด ๋ณด์ธ๋‹ค.
์šฐ๋ฆฌ๋Š” 3๊ฐ€์ง€์˜ ์ƒํƒœ๋ฅผ ์šฐ์„  ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค.

  1. IDle
  2. Run
  3. Jump

ํ•˜๋‚˜์”ฉ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ๋‹ค.


๐Ÿง Idle ์ƒํƒœ ์ถ”๊ฐ€

Idle ์ƒํƒœ๋ฅผ ๋จผ์ € ๋งŒ๋“ค์ž.

  1. ๋นˆ ๊ณณ์„ ์šฐํด๋ฆญ
  2. Add State ์„ ํƒ
  3. IDle๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ
  4. Entry์˜ ํ๋ฆ„ ์—ฐ๊ฒฐ

๊ทธ๋ฆฌ๊ณ  Idle์„ ๋”๋ธ”ํด๋ฆญํ•ด์„œ ์ด๋™ํ•˜์ž.

  1. ์šฐ์ธก ํ•˜๋‹จ์˜ Asset Browser์—์„œ MM_Idle์ด๋ผ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์• ๋‹ˆ๋ฉ”์ด์…˜ ์—์…‹์ด ์žˆ๋‹ค.
  2. MM_Idle์„ ๋“œ๋ž˜๊ทธํ•ด์„œ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
  3. ํ๋ฆ„ ์—ฐ๊ฒฐ ํ›„ ์ปดํŒŒ์ผ

์œ„ ๊ณผ์ •์„ ๋๋‚ด๋ฉด ์šฐ๋ฆฌ์˜ ์บ๋ฆญํ„ฐ๊ฐ€ ๋ง๋ถ€์„์—์„œ IDle ๋ชจ์Šต์„ ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ดํ›„ ๋‚˜๋จธ์ง€ ๋…ธ๋“œ๋“ค๋„ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ž‘์—…๋ฉ๋‹ˆ๋‹ค.


๐Ÿƒ Run ์ƒํƒœ ์ถ”๊ฐ€

  1. ๋นˆ ๊ณณ์„ ์šฐํด๋ฆญ
  2. Add State ์„ ํƒ
  3. Run๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ

๊ทธ๋ฆฌ๊ณ  Run์„ ๋”๋ธ”ํด๋ฆญํ•ด์„œ ์ด๋™ํ•˜์ž.

  1. ์šฐ์ธก ํ•˜๋‹จ์˜ Asset Browser์—์„œ MM_Run_Fwd์ด๋ผ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์• ๋‹ˆ๋ฉ”์ด์…˜ ์—์…‹์ด ์žˆ๋‹ค.
  2. MM_Run_Fwd์„ ๋“œ๋ž˜๊ทธํ•ด์„œ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
  3. ํ๋ฆ„ ์—ฐ๊ฒฐ ํ›„ ์ปดํŒŒ์ผ


๐Ÿฆ˜ Jump ์ƒํƒœ ์ถ”๊ฐ€

  1. ๋นˆ ๊ณณ์„ ์šฐํด๋ฆญ
  2. Add State ์„ ํƒ
  3. Jump๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ

๊ทธ๋ฆฌ๊ณ  Jump์„ ๋”๋ธ”ํด๋ฆญํ•ด์„œ ์ด๋™ํ•˜์ž.

  1. ์šฐ์ธก ํ•˜๋‹จ์˜ Asset Browser์—์„œ MM_Jump์ด๋ผ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์• ๋‹ˆ๋ฉ”์ด์…˜ ์—์…‹์ด ์žˆ๋‹ค.
  2. MM_Jump์„ ๋“œ๋ž˜๊ทธํ•ด์„œ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
  3. ํ๋ฆ„ ์—ฐ๊ฒฐ ํ›„ ์ปดํŒŒ์ผ


์ƒํƒœ ์ „ํ™˜ ํ๋ฆ„ ์—ฐ๊ฒฐ

์ด์ œ Locomotion์— ๋“ค์–ด์˜ค๋ฉด Idle, Run, Jump 3๊ฐ€์ง€์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•ด๋‹น ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์„œ๋กœ ํ๋ฆ„์„ ์—ฐ๊ฒฐํ•ด์ฃผ๊ณ  ์ „ํ™˜๋˜๋Š” ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

ํ•˜๋‚˜์”ฉ ๋งŒ๋“ค์–ด ๋ณด์ž.


Run ์กฐ๊ฑด ๋ณ€์ˆ˜ ์ƒ์„ฑ

์–ธ์ œ Idle์ƒํƒœ์—์„œ Run์œผ๋กœ ๋ณ€ํ•˜๋Š”์ง€๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž.
์บ๋ฆญํ„ฐ์˜ Speed๊ฐ€ 0์ด๋ฉด ์ •์ง€(Idle)์ƒํƒœ์ด๊ณ 
0๋ณด๋‹ค ํฌ๋ฉด ๋‹ฌ๋ฆฌ๊ธฐ(Run)์ƒํƒœ์ผ ๊ฒƒ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” Speed๋ฅผ ์ฒดํฌํ•  ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค.

  1. ์šฐ์ธก ํ•˜๋‹จ [My Blueprint] ํƒญ
  2. Add ๋ฒ„ํŠผ ํด๋ฆญ
  3. Variable ์„ ํƒ
  4. Speed๋กœ ์ด๋ฆ„ ์„ค์ •
  5. Float ํ˜•์œผ๋กœ ๋ณ€๊ฒฝ

๊ทผ๋ฐ ์šฐ๋ฆฌ๋Š” Speed๋ฅผ ์„ ์–ธ๋งŒ ํ–ˆ์ง€ ์ •์˜๋ฅผ ํ•ด์ฃผ์ง€ ์•Š์•˜๋‹ค.
Speed์˜ ๊ฐ’์„ ์บ๋ฆญํ„ฐ ์ƒํƒœ์— ๋”ฐ๋ผ์„œ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

ABP_Player์˜ [Event Graph]๋กœ ์ด๋™ํ•˜์ž.

  1. Try Get Pawn Owner๋…ธ๋“œ์˜ ๋ฐ˜ํ™˜๊ฐ’์„ ๋‹น๊ฒจ์„œ Get Velocity๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

  2. Get Velocity๋…ธ๋“œ์˜ ๋ฐ˜ํ™˜๊ฐ’์„ ๋‹น๊ฒจ์„œ Vector Length๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

  3. Set Speed๋…ธ๋“œ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. Alt๋ฅผ ๋ˆ„๋ฅธ ์ƒํƒœ๋กœ ๋“œ๋ž˜๊ทธํ•˜๋ฉด ๋ฐ”๋กœ ์ถ”๊ฐ€๋œ๋‹ค.
    ๊ทธ ํ›„ Vector Length์™€ ๊ฐ’์„ ์—ฐ๊ฒฐํ•˜๊ณ  Event Blueprint Upate Animation๊ณผ ํ๋ฆ„์„ ์ด์–ด์ค€๋‹ค.

Idle > Run

Idle์—์„œ Run์œผ๋กœ ๋ณ€ํ•˜๋Š” ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•˜์ž.

Idle์—์„œ Run์œผ๋กœ ํ๋ฆ„์„ ์—ฐ๊ฒฐํ•ด์ฃผ์ž.

Idle > Run ํ๋ฆ„์„ ํด๋ฆญํ•ด์„œ ์„ค์ •์ฐฝ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.

๊ทธ๋Ÿผ Idle > Run์˜ ์กฐ๊ฑด์„ ์„ค์ •ํ•˜๋Š” ์ฐฝ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.

  1. ์šฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑํ•œ Speed๋ณ€์ˆ˜๋ฅผ Get Speed๋กœ ๊ฐ€์ ธ์˜จ๋‹ค.
    Ctrl์„ ๋ˆ„๋ฅธ ์ƒํƒœ๋กœ ๋“œ๋ž˜๋“œํ•˜๋ฉด ๋ฐ”๋กœ Get Speed๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
  2. Greater ( > ) ๋…ธ๋“œ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
  3. < Speed๊ฐ€ 0๋ณด๋‹ค ํฌ๋‹ค๋ฉด > ์ด๋ผ๋Š” ์กฐ๊ฑด์„ ๋งŒ๋“ ๋‹ค.
  4. ์กฐ๊ฑด ์—ฐ๊ฒฐ

โ—์ปดํŒŒ์ผ ์ €์žฅโ—์„ ํ•ด์ฃผ๊ณ  ํ”Œ๋ ˆ์ดํ•˜๋ฉด ์บ๋ฆญํ„ฐ๊ฐ€ ๋‹ฌ๋ฆฌ๋Š”๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
๋‚˜๋จธ์ง€ ์ž‘์—…๋„ ๋งˆ์ € ์ง„ํ–‰ํ•˜์ž.

Run > Idle

Run์—์„œ Idle์œผ๋กœ ๋ณ€ํ•˜๋Š” ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•˜์ž.

Run์—์„œ Idle์œผ๋กœ ํ๋ฆ„์„ ์—ฐ๊ฒฐํ•ด์ฃผ์ž.

Idle > Run๊ณผ ๋ฐ˜๋Œ€์˜ ์กฐ๊ฑด์„ ํ•˜๋ฉด ๋  ๊ฒƒ์ด๋‹ค.

  1. Idle > Run์˜ ์กฐ๊ฑด ๋ณต์‚ฌ
  2. Not Boolean ๋…ธ๋“œ ์ถ”๊ฐ€
  3. Greater ์กฐ๊ฑด์„ Not Boolean์— ์—ฐ๊ฒฐ
  4. ์ตœ์ข… ์กฐ๊ฑด ์—ฐ๊ฒฐ

โ—์ปดํŒŒ์ผ ์ €์žฅโ—์„ ํ•ด์ฃผ๊ณ  ํ”Œ๋ ˆ์ดํ•˜๋ฉด ์บ๋ฆญํ„ฐ๊ฐ€ ์ž˜ ๋‹ฌ๋ฆฌ๊ณ  ๋ฉˆ์ถ˜๋‹ค.


๋งˆ๋ฌด๋ฆฌ

์—ฌ๊ธฐ๊นŒ์ง€ ์บ๋ฆญํ„ฐ์˜ Idle, Run ์ƒํƒœ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค.
Jump๋Š” ๋‹ค์Œ ํฌ์ŠคํŒ…์— ์ด์–ด์„œ ์ž‘์„ฑํ•˜๊ฒ ๋‹ค.

1. ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์ƒ์„ฑ
2. State Machine ์ถ”๊ฐ€
3. ์ •์ง€
4. ๋‹ฌ๋ฆฌ๊ธฐ
5. ์ ํ”„
6. ๊ฐœ์„ 

profile
๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์–ด๋ณด์ž

0๊ฐœ์˜ ๋Œ“๊ธ€