[UE5] ๐Ÿค ์ƒํ˜ธ์ž‘์šฉ (ๅฎŒ)

Singery00ยท2024๋…„ 4์›” 8์ผ
0

UE5 Blueprint

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

๊ฐœ์š”

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

์•ž์„œ ํฌ์ŠคํŒ…ํ•œ ์ƒํ˜ธ์ž‘์šฉ ๊ธฐ๋Šฅ๋“ค์„ ์‘์šฉํ•˜์—ฌ ์ด์„ ๋จน๊ณ , ์ ์„ ๊ณต๊ฒฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•œ ๊ธฐ์ดˆ
2. Line Trace๋ฅผ ์‚ฌ์šฉํ•œ ์ƒํ˜ธ์ž‘์šฉ
3. Overlap Event๋ฅผ ์‚ฌ์šฉํ•œ ์ƒํ˜ธ์ž‘์šฉ
4. ์‘์šฉ


๋ณธ๋ก 


โš”๏ธ Player ๊ณต๊ฒฉ ๊ธฐ๋Šฅ

Trace Channel ์ถ”๊ฐ€

Project Settings - Engine - Collision - Trace Channels๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  New Trace Channel์„ ๋ˆŒ๋Ÿฌ Fire๋ฅผ Block ์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์ค๋‹ˆ๋‹ค.

IA_Fire ์ˆ˜์ •

๊ธฐ์กด ์šฐ๋ฆฌ์˜ IA_Fire๋ฅผ ์‚ด์ง ์ˆ˜์ •ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

Line Trace By Channel์˜ Trace Channel์„ ๋ฐฉ๊ธˆ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•œ Fire๋กœ ์„ค์ •ํ•ด์ฃผ์„ธ์š”.

๊ทธ๋ฆฌ๊ณ  Return Value๋ฅผ Branch์— ์ด์–ด Hitํ–ˆ์„ ๋•Œ๋งŒ ๋™์ž‘ํ•˜์—ฌ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  Out Hit๋ฅผ ๋Œ์–ด์„œ Break Hit Result๋ฅผ ๊ฐ€์ ธ์˜ต์‹œ๋‹ค.

Hit Actor์—์„œ Actor Has Tag ๋…ธ๋“œ๋ฅผ ๊ฐ€์ ธ์™€์„œ Tag๊ฐ€ Enemy์ธ์ง€ ๊ฒ€์‚ฌํ•˜๋„๋ก ๋งŒ๋“ค์–ด ์ค์‹œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ ์ด ๊ณต๊ฒฉ์„ ๋งž๋„๋ก ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์–ธ๋ฆฌ์–ผ์—์„œ๋Š” ์•„์ฃผ ๊ฐ„ํŽธํ•œ ๋…ธ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ”๋กœ Apply Damage ์ž…๋‹ˆ๋‹ค.

Damaged Actor : ํ”ผํ•ด๋ฅผ ์ž…์„ ๋Œ€์ƒ
Base Damage : ํ”ผํ•ด๋Ÿ‰

์ด 2๊ฐœ๋งŒ ์•Œ๊ณ  ๊ฐ‘์‹œ๋‹ค.

ํ”ผํ•ด๋ฅผ ์ž…์„ ๋Œ€์ƒ์€ Hit Actor์ฃ ?
Base Damage๋Š” ์ผ๋‹จ ์ž„์˜๋กœ 10์„ ๋„ฃ์–ด ์ค์‹œ๋‹ค.

์ดํ›„ ๊ฒŒ์ž„์˜ ์„ค๊ณ„์— ๋”ฐ๋ผ ๋จน์€ ๋ฌด๊ธฐ์˜ Damage๊ฐ’์ด ์žˆ๋‹ค๋ฉด ๊ฐ€์ ธ์™€์„œ ๋„ฃ์œผ๋ฉด ๋ฌด๊ธฐ๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ํ”ผํ•ด๋ฅผ ์ค„ ์ˆ˜ ์žˆ๊ฒ ์ฃ ?

์ „์ฒด ํ๋ฆ„๋„๋ž‘ ๋น„๊ต ํ•ด๋ด…์‹œ๋‹ค.

๐Ÿ‘ฟ ์  ์ƒ์„ฑ

์ด๋ฒˆ์—” ํ”ผํ•ด๋ฅผ ์ž…ํž ์ ์„ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค.
Character๋กœ BP_Enemy๋ฅผ ๋งŒ๋“ค์–ด ์ค์‹œ๋‹ค.

์บ๋ฆญํ„ฐ ๋ฉ”์‹œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ SKM_Manny๋ฅผ ๋„ฃ์–ด์คฌ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์•„๋ž˜ ๊ณผ์ •์„ ํ•˜๋‚˜์”ฉ ์ง„ํ–‰ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. Tag ์„ค์ •
  2. Collision Presets ์„ค์ •

Tag ์„ค์ •

ํƒœ๊ทธ ์„ค์ •๋ถ€ํ„ฐ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. Componentsํƒญ์—์„œ BP_Enemy (self) ์„ ํƒ
  2. ์šฐ์ธก Detailsํƒญ์—์„œ Tag ๊ฒ€์ƒ‰
  3. Actor ์„น์…˜์—์„œ Enemy ํƒœ๊ทธ ์ถ”๊ฐ€

์ด ํƒœ๊ทธ ์„ค์ •์„ ํ†ตํ•˜์—ฌ ์ด์ „ BP_Player์˜ Actor Has Tag (Enemy)์˜ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Collision Preset ์„ค์ •

์ด์ œ Line Trace๊ฐ€ ๋งž๋„๋ก ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
Line Trace๋Š” ํ•œ ์ชฝ์ด ์ตœ์†Œ Block์ด์—ฌ์•ผ ์ถฉ๋Œ์ด ๊ฐ์ง€๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๊ฐ€ Fire ์ฑ„๋„์„ ์ถ”๊ฐ€ํ•  ๋•Œ Block์œผ๋กœ ์ค€ ๊ฐ’์„ ํ™•์ธํ•ด๋ด…์‹œ๋‹ค.

  1. Componentsํƒญ์—์„œ BP_Enemy (self) ์„ ํƒ
  2. ์šฐ์ธก Detailsํƒญ์—์„œ Collision ๊ฒ€์ƒ‰
  3. Collision ์„น์…˜์—์„œ Collision Presets๋ฅผ Custom์œผ๋กœ ๋ณ€๊ฒฝ
  4. Fire Presets์„ Block์œผ๋กœ ๋ณ€๊ฒฝ

Event Any Damage

์ด์ „์— BP_Player์—์„œ Apply Damage๋…ธ๋“œ๋ฅผ ํ†ตํ•ด ํ”ผํ•ด๋ฅผ ์ค„ ๋Œ€์ƒ์„ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ”ผํ•ด๋ฅผ ์ž…์„ ๋Œ€์ƒ์€ Event Any Damage๋ฅผ ํ†ตํ•ด ํ”ผ๊ฒฉ ์‹œ ์ด๋ฒคํŠธ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ์„  HP (Float) ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ ๋‹นํ•œ ๊ฐ’์œผ๋กœ ๋„ฃ์–ด ์ค๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  AnyDamage ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๊ฐ’์— Damage๊ฐ€ ๋ณด์ด๋Š”๋ฐ ์ด ๊ฐ’์ด Apply Damage์—์„œ ์„ค์ •ํ•œ Base Damage์ž…๋‹ˆ๋‹ค.

HP์—์„œ Damage๋ฅผ ๋บ€ ๊ฐ’์„ ๋‹ค์‹œ Set ํ•ด์ฃผ๋ฉด ์ฒด๋ ฅ์ด ๊ฐ์†Œ๋˜๊ฒ ์ฃ ?

์ด์ œ ์บ๋ฆญํ„ฐ์˜ ์ฒด๋ ฅ์ด 0๋ณด๋‹ค ํฐ์ง€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜์—ฌ ์ƒ์‚ฌ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ƒฅ Branchํ•˜๋‚˜ ๋„ฃ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
๊ฐ„๋‹จํ•˜์ฃ ?

True๋ฉด ์ƒ์กด, False๋ฉด ์‚ฌ๋ง์ž…๋‹ˆ๋‹ค.
True์—๋Š” ๊ทธ๋ƒฅ ํ˜„์žฌ ์ฒด๋ ฅ์„ ์ถœ๋ ฅํ•˜๋„๋ก ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.
False์—๋Š” ์ ์ด ์ฃฝ์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

Set Simulate Physics ๋…ธ๋“œ์™€ Set Collision Enabled๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ Mesh์™€ ์—ฐ๊ฒฐํ•ด์ค๋‹ˆ๋‹ค.

Set Collision Enabled์˜ Type์€ Collision Enabled(Query and Physics)๋กœ ํ•ด์ค๋‹ˆ๋‹ค.

์ €๋Š” Base Damage๋Š” 10, ์ ์˜ HP๋Š” 30์œผ๋กœ ํ•ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  โ—์ปดํŒŒ์ผ ์ €์žฅโ—ํ›„ ํ”Œ๋ ˆ์ด ํ•ด๋ณด๋‹ˆ ์ฒด๋ ฅ ๋กœ๊ทธ 2๋ฒˆ ์ดํ›„, ํž˜์—†์ด ์“ฐ๋Ÿฌ์ง€๋Š” ์ ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ฆ ์•„์ดํ…œ ์„ค์ •

์•„์ดํ…œ์„ ํš๋“ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘

ํ‚ค ๋งคํ•‘์€ ์ด์ „ ํฌ์ŠคํŒ…์—์„œ ๋“ฑ๋กํ•œ Eํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

BP_Rifle ์ƒ์„ฑ

Actor ํด๋ž˜์Šค๋กœ BP_Rifle์„ ์ƒ์„ฑํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

2๊ฐ€์ง€ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ์ด์„ ๋„ฃ์„ Skeletal Mesh
  2. ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•œ Box Collision

Skeletal Mesh ์ถ”๊ฐ€

Skeletal Mesh์— ์ด์„ ๋„ฃ๊ณ , Box Collision์˜ Scale์„ (3,3,3)์œผ๋กœ ์ฃผ์–ด ์กฐ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Tag ์„ค์ •

BP_Rifle (Self)๋ฅผ ์„ ํƒํ•˜์—ฌ Tag๋ฅผ Item์œผ๋กœ ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

Channel Preset ์ˆ˜์ •

  1. Componentsํƒญ์—์„œ Box ์„ ํƒ
  2. ์šฐ์ธก Detailsํƒญ์—์„œ Collision ๊ฒ€์ƒ‰
  3. Collision ์„น์…˜์—์„œ Collision Presets๋ฅผ Custom์œผ๋กœ ๋ณ€๊ฒฝ
  4. Interaction Presets์„ Block์œผ๋กœ ๋ณ€๊ฒฝ

๐Ÿ‘ค BP_Player ์ˆ˜์ •

Rifle Mesh Clear

์šฐ์„  BP_Player๋ฅผ ์ˆ˜์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Skeletal Mesh์— ๋„ฃ์—ˆ๋˜ Rifle Mesh๋ฅผ ์ง€์›Œ์ค์‹œ๋‹ค.
๋ ˆ๋ฒจ์˜ ์ด ์•„์ดํ…œ์„ ๋จน์œผ๋ฉด ๋‹ค์‹œ ์ƒ๊ธฐ๋„๋ก ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

IA_Interact ์ˆ˜์ •

์ด๋ฒˆ์—๋Š” Line Trace๋ฅผ ์‚ฌ์šฉํ•ด์„œ Item๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด์ œ Line Trace์˜ Actor Has Tag๊นŒ์ง€์˜ ๋กœ์ง์€ ๊ฐ€๋ณ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.

์ด์ œ Hit Actor๋ฅผ ๋Œ์–ด์„œ BP_Rifle์„ Castํ•ด์ค๋‹ˆ๋‹ค.
Cast์—์„œ Rifle์˜ Skeletal Mesh๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” Skeletal Mesh Component๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ค๊ณ , ํ•ด๋‹น Mesh๊ฐ€ ๊ฐ€์ง„ Asset์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  Set Skeletal Mesh Asset ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
Target์€ BP_Player์˜ Rifle์ž…๋‹ˆ๋‹ค!!
๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜ New Mesh์—๋Š” ๋ถˆ๋Ÿฌ์˜จ BP_Rifle์˜ Asset์„ ๋„ฃ์–ด ์ค๋‹ˆ๋‹ค.

์ด์„ ๋จน์œผ๋ฉด ์•„์ดํ…œ์ด ์‚ฌ๋ผ์ง€๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
Destroy Actor ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  BP_Rifle์˜ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ๊ฐ€์ง„ ๊ฐ’์„ Target์— ๋„ฃ์–ด ์ค๋‹ˆ๋‹ค.

โ—์ปดํŒŒ์ผ ์ €์žฅโ—ํ›„ ํ”Œ๋ ˆ์ดํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Line Trace๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜์—ฌ Player์—๋Š” Rifle Mesh๊ฐ€ ์ž…ํ˜€์กŒ๊ณ , ์•„์ดํ…œ์€ ์‚ฌ๋ผ์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋งˆ๋ฌด๋ฆฌ

์ด๊ฒƒ์œผ๋กœ ํ•™์Šตํ•œ ์ƒํ˜ธ์ž‘์šฉ์„ ์‘์šฉํ•˜์—ฌ ์•„์ดํ…œ ์ค๊ธฐ์™€ ํ”ผ๊ฒฉ์„ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋””ํ…Œ์ผ์„ ์ข€ ๋” ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด์„œ ๊ณต๋ถ€ํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1. ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•œ ๊ธฐ์ดˆ
2. Line Trace๋ฅผ ์‚ฌ์šฉํ•œ ์ƒํ˜ธ์ž‘์šฉ
3. Overlap Event๋ฅผ ์‚ฌ์šฉํ•œ ์ƒํ˜ธ์ž‘์šฉ
4. ์‘์šฉ

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

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