[UE5] ๐Ÿ•น๏ธ Enhanced Input System์œผ๋กœ 3์ธ์นญ ์กฐ์ž‘ ๊ตฌํ˜„ (1)

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

UE5 Blueprint

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

๊ฐœ์š”

๐Ÿƒ ์ง€๋‚œ ํฌ์ŠคํŒ…์— ์–ธ๋ฆฌ์–ผ ์—”์ง„5์˜ Old Input System์„ ์‚ฌ์šฉํ•˜์—ฌ 3์ธ์นญ ์บ๋ฆญํ„ฐ ์กฐ์ž‘ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•ด๋ณด์•˜๋‹ค.

์ด๋ฒˆ์—๋Š” ๐Ÿ•น๏ธ Enhanced Input System์œผ๋กœ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ๋ณผ ๊ฒƒ์ด๋‹ค.

์•„๋ž˜ ๋‹จ๊ณ„๋กœ ์ฐจ๊ทผ์ฐจ๊ทผ ๋”ฐ๋ผ๊ฐ€๋ณด์ž

1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ
2. ํ”„๋กœ์ ํŠธ ์„ค์ •
3. IA ์ƒ์„ฑ
4. IMC ์ƒ์„ฑ
5. ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์ฝ”๋”ฉ
6. ๊ฐœ์„ 

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


๋ณธ๋ก 


ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

โ—Old Input System ํฌ์ŠคํŒ…์„ ๋”ฐ๋ผ์„œ ์‹ค์Šตํ•ด๋ณด์…จ๋‹ค๋ฉด ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์€ ๋„˜์–ด๊ฐ€์…”๋„ ๋ฉ๋‹ˆ๋‹คโ—

์—๋””ํ„ฐ์—์„œ Third Person์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜์ž.
BLUEPRINT ์„ ํƒ, StartContent๋ฅผ ์ฒดํฌ
์ด๋ฆ„์€ ๋Œ€์ถฉ Practice๋กœ ์„ค์ • ํ›„ Create

ํ”„๋กœ์ ํŠธ ์„ค์ •์„ ๋จผ์ € ํ•ด์ฃผ์ž.
Project Settings ์ฐฝ์„ ์ผœ์ฃผ๊ณ 

๊ฒ€์ƒ‰์ฐฝ์— direct๋ฅผ ์ž…๋ ฅ ํ›„ ์ญˆ์šฑ ๋‚ด๋ ค์ฃผ๋ฉด

[Platforms - Windows] ๋ผ๋Š” ์„ค์ •์ฐฝ์ด ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ DirectX๋ฅผ 11๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์ž.
์•ˆ๊ทธ๋Ÿฌ๋ฉด ์ดํ›„ Blueprint ์ง„ํ–‰ ์ค‘ ๋š ๊บผ์งˆ ์ˆ˜ ์žˆ๋‹ค.
์•„์ง DirectX 12์˜ ์•ˆ์ •์„ฑ ์ด์Šˆ๊ฐ€ ์žˆ๋Š” ๋“ฏ ํ•˜๋‹ค.

[Project Settings] ๋ฅผ ๋„์ง€ ๋ง๊ณ  ์ขŒ์ธก์—์„œ [Engine] ์„น์…˜์˜ [Input] ์„ค์ •์„ ์ฐพ์•„์„œ ํ‚ค์ž!

โš™๏ธŽ ํ”„๋กœ์ ํŠธ ์„ค์ • (Project Settings)

ํ”„๋กœ์ ํŠธ ์„ค์ •์— ๋“ค์–ด๊ฐ€์„œ [Input] ์„น์…˜์˜ [Default Classes] ์—์„œ Default Player Input Class์™€ Default Input Component Class๋ฅผ ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

๊ฐ๊ฐ EnhancedPlayerInput๊ณผ EnhancedInputComponent๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์ž


๐ŸŽฎ Input Action ์ƒ์„ฑ

[Content Drawer] ์— [Input]ํด๋”๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์ž. ํ•ซํ•‘ํฌ๋กœ ์ƒ‰์„ ์ง€์ •ํ•ด์ฃผ์—ˆ๋‹ค.

[Input] ํด๋”๋กœ ์ด๋™ ํ›„ Input Action์„ ์ƒ์„ฑํ•ด์ฃผ์ž

  1. ์šฐํด๋ฆญ
  2. Input ์„น์…˜
  3. Input Action์„ ํƒ

3๊ฐ€์ง€์˜ Input Action์„ ๋งŒ๋“ค์–ด์ฃผ์ž

  1. IA_Move
  2. IA_Look
  3. IA_Jump

ํ•˜๋‚˜ํ•˜๋‚˜ ์„ค์ •์„ ํ•ด๋ณด์ž.
์ขŒ์ธก๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒ ๋‹ค.

๐ŸŽฎ Input Action ์„ค์ •

1. IA_Jump ์„ค์ •

IA_Jump๋ฅผ ๋”๋ธ”ํด๋ฆญํ•˜์—ฌ ์—๋””ํ„ฐ๋ฅผ ์—ฐ๋‹ค.
๊ทธ๋Ÿผ Details๋งŒ ์žˆ๋Š” ์ฐฝ์ด ๋œจ๋Š”๋ฐ ์ •์ƒ์ด๋‹ค.

์•„๋ž˜์˜ [Action] ํƒญ์˜ [Value Type] ์„น์…˜์„ Digital (bool)๋กœ ์„ค์ •ํ•ด์ฃผ์ž.

2. IA_Look ์„ค์ •

IA_Look๋ฅผ ๋”๋ธ”ํด๋ฆญํ•˜์—ฌ ์—๋””ํ„ฐ๋ฅผ ์—ฐ๋‹ค.

์•„๋ž˜์˜ [Action] ํƒญ์˜ [Value Type] ์„น์…˜์„ Axis2D (Vector 2D)๋กœ ์„ค์ •ํ•ด์ฃผ์ž.

3. IA_Move ์„ค์ •

IA_Move๋ฅผ ๋”๋ธ”ํด๋ฆญํ•˜์—ฌ ์—๋””ํ„ฐ๋ฅผ ์—ฐ๋‹ค.

์•„๋ž˜์˜ [Action] ํƒญ์˜ [Value Type] ์„น์…˜์„ Axis2D (Vector 2D)๋กœ ์„ค์ •ํ•ด์ฃผ์ž.

์ด๊ฑธ๋กœ Input Action ์ƒ์„ฑ ๋ฐ ์„ค์ •์€ ๋์ด๋‹ค.


๐ŸŽฎ Input Mapping Context ์ƒ์„ฑ

์ƒ์„ฑ๋œ Input Action์„ ํ†ตํ•ฉ ๊ด€๋ฆฌํ•˜๋Š” Input Mapping Context(IMC)๋ฅผ ๋งŒ๋“ค์ž

  1. ์šฐํด๋ฆญ
  2. Input ์„น์…˜
  3. Input Mapping Context ์„ ํƒ

IMC_Player_Input์ด๋ผ๊ณ  ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ด์ฃผ์ž.

์ƒ์„ฑํ•œ IMC๋ฅผ ๋”๋ธ”ํด๋ฆญํ•˜๋ฉด [Details] ๋งŒ ์žˆ๋Š” ์—๋””ํ„ฐ๊ฐ€ ๋œฌ๋‹ค.
ํ•ด๋‹น ์—๋””ํ„ฐ์˜ Mappings ์˜†์˜ ์ถ”๊ฐ€ ์•„์ด์ฝ˜์„ ๋ˆ„๋ฅด๊ณ  3๊ฐ€์ง€ Input Action์„ ์ถ”๊ฐ€ํ•ด์ฃผ์ž

โ—IA_ํ˜•์‹์œผ๋กœ ๋™์ผํ•œ IA๊ฐ€ 2๊ฐœ์ผ ๊ฒƒ์ด๋‹ค.โ—
โ—ํด๋” ์œ„์น˜๋ฅผ ํ™•์ธํ•˜๊ณ  ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ ๊ฑธ๋กœ ๋„ฃ์–ด์ฃผ์žโ—


๐ŸŽฎ Input Mapping Context ์„ค์ •

์„ค์ •ํ•ด์ค˜์•ผ ํ•  ๊ฒƒ์ด ๋งค์šฐ ๋งŽ๋‹ค.

โ—์ขŒ์ธก์„ ๋ณด๋ฉด ์•„๋ž˜ ๋ฐฉํ–ฅ ํ™”์‚ดํ‘œ๊ฐ€ ์žˆ๋Š”๋ฐ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค ์ด๋ฅผ ๋ชจ๋‘ ๋ˆŒ๋Ÿฌ์„œ ์—ด์–ด์ฃผ์ž.โ—

1. IA_Jump ์„ค์ •

์•„๋ž˜ ์ž…๋ ฅ ๊ธฐ๊ธฐ ์•„์ด์ฝ˜์„ ๋ˆŒ๋Ÿฌ์„œ Space Bar ๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ž๋™์œผ๋กœ Mapping๋œ๋‹ค.

2. IA_Look ์„ค์ •

Mouse XY 2D-Axis ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ๋„ฃ์–ด์ฃผ์ž

3. IA_Move ์„ค์ •

Mouse XY 2D-Axis ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ๋„ฃ์–ด์ฃผ์ž

W,S,A,D๋ฅผ ํ•˜๋‚˜์”ฉ ๋„ฃ์–ด์ฃผ์ž!

์ด์ œ ์ƒ์„ธ์„ค์ •์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

3-1 W ์„ค์ •

  1. ์•„๋ž˜ [Modifiers] ์˜†์˜ ์ถ”๊ฐ€ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์„ค์ •์นธ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
  2. ์šฐ์ธก์—์„œ Swizzle Input Axis Values๋ฅผ ์„ ํƒํ•œ๋‹ค.
  3. Index์˜ ํ™”์‚ดํ‘œ๋ฅผ ๋ˆŒ๋Ÿฌ YXZ๋กœ ๊ฐ’์„ ๋„ฃ์–ด์ค€๋‹ค.

3-2 S ์„ค์ •

  1. ์•„๋ž˜ [Modifiers] ์˜†์˜ ์ถ”๊ฐ€ ๋ฒ„ํŠผ์„ 2๋ฒˆ ๋ˆŒ๋Ÿฌ ์„ค์ •์นธ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
  2. 1๋ฒˆ์งธ ์„ค์ •์นธ์— Swizzle Input Axis Values๋ฅผ ์„ ํƒํ•œ๋‹ค.
  3. 1๋ฒˆ์งธ Index์˜ ํ™”์‚ดํ‘œ๋ฅผ ๋ˆŒ๋Ÿฌ YXZ๋กœ ๊ฐ’์„ ๋„ฃ์–ด์ค€๋‹ค.
  4. 2๋ฒˆ์งธ ์„ค์ •์นธ์— Negate๋ฅผ ์„ ํƒํ•œ๋‹ค.
  5. 2๋ฒˆ์งธ Index์˜ ํ™”์‚ดํ‘œ๋ฃฐ ๋ˆŒ๋Ÿฌ ๋ชจ๋‘ ์ฒดํฌํ•ด์ค€๋‹ค.

3-3 A ์„ค์ •

  1. ์•„๋ž˜ [Modifiers] ์˜†์˜ ์ถ”๊ฐ€ ๋ฒ„ํŠผ์„ 1๋ฒˆ ๋ˆŒ๋Ÿฌ ์„ค์ •์นธ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
  2. ์šฐ์ธก์—์„œ Negate๋ฅผ ์„ ํƒํ•œ๋‹ค.
  3. Index์˜ ํ™”์‚ดํ‘œ๋ฃฐ ๋ˆŒ๋Ÿฌ ๋ชจ๋‘ ์ฒดํฌํ•ด์ค€๋‹ค.

3-4 D ์„ค์ •

์•„๋ฌด๊ฒƒ๋„ ์„ค์ •ํ•ด์ฃผ์ง€ ์•Š์•„๋„ ๋œ๋‹ค!


๋งˆ๋ฌด๋ฆฌ

์œ„ ์ž‘์—…์œผ๋กœ IMC ์„ธํŒ…์ด ๋๋‚ฌ๋‹ค.

์ตœ๋Œ€ํ•œ ๊ตฌ๋ถ„ํ•˜์—ฌ ์„ธ์„ธํžˆ ์„ค๋ช…ํ•˜์˜€์œผ๋‹ˆ ์•„๋ž˜ ์ „์ฒด ์‚ฌ์ง„๊ณผ ๋น„๊ตํ•˜๋ฉฐ ์ฒœ์ฒœํžˆ ๋‹ค์‹œ ์‚ดํŽด๋ณด์ž.

1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ
2. ํ”„๋กœ์ ํŠธ ์„ค์ •
3. IA ์ƒ์„ฑ
4. IMC ์ƒ์„ฑ
5. ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์ฝ”๋”ฉ
6. ๊ฐœ์„ 

๋‹ค์Œ ํฌ์ŠคํŒ…์€ BluePrint๋ฅผ ์‚ฌ์šฉํ•ด Enhanced Input System์„ ์‚ฌ์šฉํ•œ ์บ๋ฆญํ„ฐ ์กฐ์ž‘์„ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ๋‹ค.

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

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