[UE5] ๐Ÿ”ซ 3์ธ์นญ ์กฐ์ค€์„ ํ•ด๋ณด์ž (2)

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

UE5 Blueprint

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

๊ฐœ์š”

๐Ÿ’ก ์ด์ „ ํฌ์ŠคํŒ…์—์„œ Input System๊ณผ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ ์šฉ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค.
์ถ”๊ฐ€๋กœ ์บ๋ฆญํ„ฐ๊ฐ€ ์ด์„ ์˜๊ธฐ ์ „ ์กฐ์ค€ํ•˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฐ ๋™์ž‘ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•ด์„œ ์ž‘์„ฑํ•˜๊ฒ ๋‹ค.

์บ๋ฆญํ„ฐ๊ฐ€ ์ด์„ ์˜๋ฉด ๋‹จ์ˆœํžˆ ์ด์•Œ๋งŒ ๋‚˜๊ฐ€๋Š” ๊ฒƒ์—์„œ ๊ทธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์กฐ์ค€ ๋ชจ์…˜, ๋ฐ”๋ผ๋ณด๋Š” ๋ฐฉํ–ฅ์— ๋”ฐ๋ฅธ ์บ๋ฆญํ„ฐ ํšŒ์ „ ๋“ฑ๋“ฑ..
๊ทธ๋ž˜์„œ ํ•„์š”์— ๋”ฐ๋ผ ์• ๋‹ˆ๋ฉ”์ด์…˜๋“ค์ด ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

1. ์‚ฌ์ „ ์„ค์ •
2. ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ชฝํƒ€์ฃผ ์‚ฌ์šฉ
3. ๋ฌด๊ธฐ ์žฅ์ฐฉ
4. ์šฐํด๋ฆญ์œผ๋กœ ์กฐ์ค€ ๋ชจ์…˜ ๊ตฌํ˜„
5. ๊ฐ๋„์— ๋”ฐ๋ฅธ ์—์ž„ ์กฐ์ค€ ๋ฐฉ๋ฒ•1
6. ๊ฐ๋„์— ๋”ฐ๋ฅธ ์—์ž„ ์กฐ์ค€ ๋ฐฉ๋ฒ•2

์•„๋ž˜์˜ ์—์…‹๋“ค์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„์„œ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ์ ํŠธ์™€ ๋ฒ„์ „์ด ๋‹ฌ๋ผ๋„ ํ˜ธํ™˜๋˜๋‹ˆ ๋ณ€๊ฒฝํ•ด์„œ ๋‹ค์šด๋ฐ›์•„ ์ฃผ์„ธ์š”!

์• ๋‹ˆ๋ฉ”์ด์…˜ ์Šคํƒ€ํ„ฐํŒฉ
์ด๊ธฐ ์—์…‹


๋ณธ๋ก 


๐Ÿ”ซ ๋ฌด๊ธฐ ์žฅ์ฐฉ

โ—์œ„์—์„œ ๋งํฌํ•œ ์—์…‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹คโ—

์Šค์ผˆ๋ ˆํ†ค ์ˆ˜์ •

์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋งˆ๋„คํ‚น์˜ ์Šค์ผˆ๋ ˆํ†ค ์ฐฝ์œผ๋กœ ๋“ค์–ด์˜ค์ž.
๊ทธ๋ฆฌ๊ณ  ์ƒ๋‹จ์˜ Preview Animation ํด๋ฆญ - fire_rifle_ironsights ๊ฒ€์ƒ‰ fire_rifle_ironsights ์• ๋‹ˆ๋ฉ”์ด์…˜ ์„ ํƒ ํ›„ ์•„๋ž˜์—์„œ ์ผ์‹œ์ •์ง€ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์ž.

์ด์ œ ์ขŒ์ธก์—์„œ ์—„์ฒญ๋‚œ ๋ผˆ๋“ค์ด ๋ณด์ด๋Š”๋ฐโ—ํ•จ๋ถ€๋กœ ์›€์ง์ด์ง€ ๋ง์žโ—

์ขŒ์ธก์—์„œ hand_r์„ ๊ฒ€์ƒ‰ํ•ด์„œ ์ฐพ์•„์ฃผ์ž.

์šฐ๋ฆฌ๋Š” ์˜ค๋ฅธ์†์„ ๊ธฐ์ค€์œผ๋กœ ์ด์„ ๋„ฃ์„ ๊ฒƒ์ด๋‹ค.
hand_r ๋ผˆ์—์„œ ์šฐํด๋ฆญ - Add Socket - Rifle๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ์„ ํ•ด์ฃผ์ž.

Rifle ์†Œ์ผ“์„ ์šฐํด๋ฆญ - Add Preview Asset - sk_ar4๋ฉ”์‹œ๋ฅผ ๋„ฃ์–ด์ฃผ์ž

์†Œ์ด์„ ์ ์ ˆํžˆ ์ด๋™, ํšŒ์ „ํ•ด์„œ ์•Œ๋งž๊ฒŒ ์ˆ˜์ •ํ•ด์ฃผ์ž.
์ง€๊ธˆ ์ž‘์—…์€ ์‹ค์ œ๋กœ ์บ๋ฆญํ„ฐ์—๊ฒŒ ์ด์ด ์ ์šฉ๋œ ๊ฒƒ์€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์ž!

์ง์ ‘ ๋ผˆ๋ฅผ ์›€์ง์ด๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด ์ •ํ™•ํžˆ ๋งž์ถ”๊ธฐ ์–ด๋ ค์šฐ๋‹ˆ ์ ๋‹นํžˆ ๋„˜์–ด๊ฐ€์ž.

โ—์ €์žฅโ—ํ•ด์ฃผ์ž

๐Ÿ“˜ Bluprint ์ˆ˜์ •

์ด์ œ ์‹ค์ œ๋กœ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ BP_Player์˜ Viewport๋กœ ์ด๋™ํ•˜์ž.

์ขŒ์ธก Components์—์„œ Mesh๋ฅผ ์„ ํƒ ํ›„ ์Šค์ผˆ๋ ˆํ†ค ๋ฉ”์‹œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์ž.
๊ทธ๋ฆฌ๊ณ  ์ด๋ฆ„์„ Rifle๋กœ ๋ณ€๊ฒฝํ•˜์ž.

โ—Components์˜ Rifle์„ ์„ ํƒํ•˜๊ณ  ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹คโ—

์šฐ์ธก Details์ฐฝ์—์„œ 2๊ฐ€์ง€๋ฅผ ์„ค์ •ํ•˜์ž.

  1. socket์ด๋ผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์•„๊นŒ ์ƒ์„ฑํ•œ Rifle ์†Œ์ผ“์œผ๋กœ ์ง€์ •ํ•˜์ž.
  1. Mesh์—์„œ SK_AR4 ๊ฐ™์€ ์ด์œผ๋กœ ์ง€์ •ํ•˜์ž.

โ—์ปดํŒŒ์ผ ์ €์žฅโ— ํ›„ ํ”Œ๋ ˆ์ดํ•˜์ž.
์บ๋ฆญํ„ฐ๊ฐ€ ์ด์„ ๋“ค๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


๐Ÿ–ฑ๏ธ ์šฐํด๋ฆญ์œผ๋กœ ์กฐ์ค€ ๋ชจ์…˜ ๊ตฌํ˜„

3์ธ์นญ ๊ฒŒ์ž„์—์„œ ์šฐํด๋ฆญ์„ ๋ˆ„๋ฅด๊ณ  ์žˆ์œผ๋ฉด ์บ๋ฆญํ„ฐ๊ฐ€ ์ด์„ ๋“ค๊ณ  ์žˆ๋Š” ๋ชจ์…˜์ด ๋‚˜์˜จ๋‹ค.

Blend Space๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์กฐ์ค€ ๋ชจ์…˜์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•ด๋ณด์ž.

๐Ÿ–ฑ๏ธ ์šฐํด๋ฆญ Input Action ์ถ”๊ฐ€

์šฐํด๋ฆญ ์ž…๋ ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ Input Action์„ ์ถ”๊ฐ€ํ•˜์ž.
IA_Aim์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  Digital (bool)๋กœ ์„ค์ •ํ•˜์ž

๊ทธ๋ฆฌ๊ณ  IMC์—์„œ ์šฐํด๋ฆญ์œผ๋กœ ๋งคํ•‘ํ•ด์ฃผ์ž.

๐Ÿ“˜ BP_Player ๋“ฑ๋ก

์šฐํด๋ฆญ ์ž…๋ ฅ์„ ๋ฐ›์•˜์œผ๋‹ˆ Blueprint์—์„œ ๋“ฑ๋ก

์ด์ œ ๊ธฐ์–ตํ•ฉ์‹œ๋‹ค.

BP_Player์˜ Event Graph๋กœ ๊ฐ‘์‹œ๋‹ค.

IA_Aim๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ๋“ฑ๋กํ•ด์ค๋‹ˆ๋‹ค.

์šฐํด๋ฆญ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•  isAiming (Boolean)๋ณ€์ˆ˜ ์ถ”๊ฐ€ํ•ด์ค์‹œ๋‹ค.

Set isAiming 2๊ฐœ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์„ค์ •ํ•ด์ค์‹œ๋‹ค.

  1. ์šฐํด๋ฆญ์ด ๋ˆŒ๋ฆฌ๋ฉด Started์™€ ํ๋ฆ„ ์—ฐ๊ฒฐ ํ›„ True๋กœ ์„ค์ •
  1. ์šฐํด๋ฆญ์ด ๋–จ์–ด์ง€๋ฉด Completed ํ๋ฆ„ ์—ฐ๊ฒฐ ํ›„ False๋กœ ์„ค์ •

โ—์ปดํŒŒ์ผ ์ €์žฅโ—ํ•ด์ฃผ์ž

๐Ÿ“™ Animation Blueprint ์„ค์ •

Event Graph

ABP_Player๋ฅผ ์ผœ์„œ Event Graph๋กœ ๊ฐ€์ž
์ด์ œ isAiming์„ ABP์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ABP์—์„œ๋„ isAiming (Boolean)๋ณ€์ˆ˜ ์ƒ์„ฑํ•ด์ค์‹œ๋‹ค.

Try Get Pawn Owner์—์„œ BP_Player๋ฅผ ์บ์ŠคํŠธํ•ด์„œ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.
Cast To BP_Player๋…ธ๋“œ ์ด์–ด์ค์‹œ๋‹ค.

์บ์ŠคํŠธ๋œ BP_Player์˜ ๋…ธ๋“œ์—์„œ isAiming ๊ฐ€์ ธ ์˜ต์‹œ๋‹ค.
Get is Aiming ๊ฒ€์ƒ‰ํ•ด์„œ ๋…ธ๋“œ ์ถ”๊ฐ€ํ•ฉ์‹œ๋‹ค.

โ—Get isAiming์€ BP_Player์˜ ๋ณ€์ˆ˜โ—
โ—Set isAiming์€ ABP_Player์˜ ๋ณ€์ˆ˜โ—

ํ๋ฆ„ ์—ฐ๊ฒฐ๋„ ์žŠ์ง€ ๋ง๊ณ  ํ•ด์ค์‹œ๋‹ค.

Anim Graph

์ด์ œ Anim Graph๋กœ ๋„˜์–ด๊ฐ€์„œ ์ž‘์—…ํ•ด์ค์‹œ๋‹ค.

State machine ๋…ธ๋“œ ํ•˜๋‚˜ ์ถ”๊ฐ€ ํ›„ RifleLocomotion์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝํ•ด์ค์‹œ๋‹ค.

RifleLocomotion

๊ทธ๋ฆฌ๊ณ  RifleLocomotion ์œผ๋กœ ๋“ค์–ด๊ฐ€์„œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ถ”๊ฐ€ํ•ด์ค์‹œ๋‹ค.

์• ๋‹ˆ๋ฉ”์ด์…˜์€ 2๊ฐœ ๋„ฃ์„ ๊ฒ๋‹ˆ๋‹ค.
Asset Browser์—์„œ ๊ฒ€์ƒ‰ํ•ด์„œ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”

  1. ์ด์„ ๋‚ด๋ฆฐ ์ƒํƒœ / idle_rifle_hip
  2. ์กฐ์ค€ ์ƒํƒœ / idle_rifle_ironsights

๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ด์ฃผ์„ธ์š”.

  1. Idle_Rifle_Hip > RifleIdle
  2. Idle_Rifle_Ironsights > RifleAim

์„  ์ „๋ถ€ ์ด์–ด ์ค์‹œ๋‹ค!

์ „ํ™˜ ์กฐ๊ฑด์€ ๊ฐ„๋‹จํ•˜์ฃ ?
isAiming์ด True์ผ ๋•Œ RifleAim์ƒํƒœ
isAiming์ด False์ผ ๋•Œ RifleIdle์ƒํƒœ

โ—์ปดํŒŒ์ผ ์ €์žฅโ—ํ•ด์ฃผ์ž

๋‹ค์‹œ Anim Graph๋กœ

๋‹ค์‹œ Anim Graph๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

RifleLocomotion์„ RifleLocomotion์œผ๋กœ ์บ์‹œ ์ƒ์„ฑํ•ด์ฃผ์ž.

๊ทธ๋ฆฌ๊ณ  ๋งŒ๋“ค์—ˆ๋˜ Fire์บ์‹œ์˜ ์ธํ’‹์— Locomotion๋Œ€์‹  RifleLocomotion์„ ๋„ฃ์ž!

โ—์ปดํŒŒ์ผ ์ €์žฅโ—ํ•˜๊ณ  ํ”Œ๋ ˆ์ดํ•ด๋ณด์ž

๋งค์šฐ ์ž˜๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


๋งˆ๋ฌด๋ฆฌ

์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ํ๋ฆ„์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐœ๋…์ด ์‰ฝ๊ฒŒ ์ดํ•ด๊ฐ€ ๊ฐ€์ง€ ์•Š๋Š”๋‹ค.

์ž๋ฃŒ๋ฅผ ๋งŽ์ด ์ฐพ์•„๋ณด๊ณ  ๊ณต๋ถ€ํ•˜์ž.

๋‹ค์Œ์—๋Š” ๊ฐ๋„์— ๋”ฐ๋ผ์„œ ์บ๋ฆญํ„ฐ๊ฐ€ ๋ฐ”๋ผ๋ณด๋„๋ก ์ˆ˜์ •ํ•ด๋ณด๊ฒ ๋‹ค

1. ์‚ฌ์ „ ์„ค์ •
2. ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ชฝํƒ€์ฃผ ์‚ฌ์šฉ
3. ๋ฌด๊ธฐ ์žฅ์ฐฉ
4. ์šฐํด๋ฆญ์œผ๋กœ ์กฐ์ค€ ๋ชจ์…˜ ๊ตฌํ˜„
5. ๊ฐ๋„์— ๋”ฐ๋ฅธ ์—์ž„ ์กฐ์ค€ ๋ฐฉ๋ฒ•1
6. ๊ฐ๋„์— ๋”ฐ๋ฅธ ์—์ž„ ์กฐ์ค€ ๋ฐฉ๋ฒ•2

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

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