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

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

UE5 Blueprint

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

๊ฐœ์š”

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

์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•ด์„œ ์ •๋ง ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ธฐ๋ณธ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ์ตํ˜”์œผ๋‹ˆ ์ง์ ‘ ํ™œ์šฉํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋ฌธ์„ ์—ด์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

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


๋ณธ๋ก 


๐Ÿšช ๋ฌธ์—ด๊ธฐ

Line Trace์„ ์ด์šฉํ•œ ์ƒํ˜ธ ์ž‘์šฉ์„ ํ†ตํ•ด ๋ฌธ์„ ์—ฌ๋Š” ๋กœ์ง์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘

IA_Interact ์ถ”๊ฐ€

์ƒํ˜ธ์ž‘์šฉ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค์ž…๋ ฅ์„ ์ƒ์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
IA_Interact๋ฅผ ์ƒ์„ฑํ•ฉ์‹œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  IMC์—์„œ E์ž…๋ ฅ์œผ๋กœ ๋งคํ•‘ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

BP_Player์—๊ฒŒ ์ž…๋ ฅ ์ถ”๊ฐ€ ํ›„ print๋ฅผ ์ฐ์–ด์„œ ํ™•์ธํ•ฉ์‹œ๋‹ค.

์ž˜๋‚˜์˜ต๋‹ˆ๋‹ค.

Line Trace ์ƒ์„ฑ

์ด์ œ Eํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด Line Trace๊ฐ€ ๋ฐœ์‚ฌ๋˜๋„๋ก ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Trace Channel์ถ”๊ฐ€

์ €ํฌ๊ฐ€ ๋ฐœ์‚ฌํ•  Trace์— ์ฑ„๋„์„ ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
Collision Filtering (Block, Overlap, Ignore) ์„ค์ •์œผ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•  ๋ฌผ์ฒด๋ฅผ ๊ตฌ๋ถ„ํ•ด์ฃผ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .

ํˆด๋ฐ”์˜ Edit - Project Settings๋กœ ๊ฐ€์ค์‹œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  Engine - Collision์œผ๋กœ ๋“ค์–ด๊ฐ€์„œ ์ƒˆ ์ฑ„๋„์„ ์ƒ์„ฑํ•ด์ค์‹œ๋‹ค.

์ด๋ฆ„์€ Interaction, Default Response๋Š” Overlap์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Line Trace ๋ฐœ์‚ฌ ์œ„์น˜ ๊ธฐ์ค€ Mesh ์ถ”๊ฐ€

BP_Player์—๊ฒŒ ์ƒํ˜ธ์ž‘์šฉ Line Trace๊ฐ€ ๋ฐœ์‚ฌ๋  ์œ„์น˜๊ฐ€ ๋  Mesh๋ฅผ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

Static Mesh๋กœ ํ•˜๋‚˜ ์ƒ์„ฑํ•˜์—ฌ Interaction์ด๋ผ๊ณ  ์ด๋ฆ„ ์ง€์–ด์คฌ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ ๋‹นํ•œ ์œ„์น˜๋กœ ์„ค์ •ํ•ด์ค์‹œ๋‹ค.
์ €๋Š” ์บ๋ฆญํ„ฐ์˜ ๊ฐ€์ŠดํŒ ์ •๋„๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

Line Trace ๋ฐœ์‚ฌ

BP_Player์—๊ฒŒ Event Graph๋กœ ์ด๋™ํ•ด์„œ IA_Interact๋ฅผ ์ˆ˜์ •ํ•ด์ค์‹œ๋‹ค

Line Trace By Channel ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ์‹œ๋‹ค.

Start์™€ End๋ฅผ ๋จผ์ € ์„ค์ •ํ•ด์ค์‹œ๋‹ค.
๋ฐœ์‚ฌ์˜ ๊ธฐ์ค€์ด ๋  Interaction์„ ๊ฐ€์ ธ์˜ต์‹œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  World Location๊ณผ World Rotation์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

Start๋Š” Get World Location์˜ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์ด์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

End๋Š” Rotation์˜ ๊ฐ’์— ๊ณฑํ•ด์„œ Trace์˜ ๋ฐฉํ–ฅ๊ณผ ๊ธธ์ด๋ฅผ ๊ณ„์‚ฐํ•ด์ฃผ๊ณ , ์‹œ์ž‘์ ์— ๋”ํ•ด์„œ ๋์ ์„ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  Trace Channel์„ ์šฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑํ•œ Interaction์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ค์‹œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์„ ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด Draw Debug Type์„ For Duration์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

โ—์ปดํŒŒ์ผ ์ €์žฅโ—ํ›„ ํ”Œ๋ ˆ์ดํ•ด๋ณด๋ฉด Line Trace๊ฐ€ ๋‚˜์˜ค๋Š”๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณฑํ•˜๊ธฐ์˜ ๊ฐ’์„ ์ž˜ ์กฐ์ ˆํ•ด ์ ๋‹นํ•œ ๊ธธ์ด๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Door ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ํด๋ž˜์Šค ์ƒ์„ฑ

์ด์ œ ๋ฌธ์„ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค.
์šฐ์„  Actor๋กœ BP_Door ๋งŒ๋“ค์–ด ์ค์‹œ๋‹ค.

๋ฉ”์‹œ ์ถ”๊ฐ€

Static Mesh ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ  ๋ฌธ Mesh๋ฅผ ๋„ฃ์–ด์ค์‹œ๋‹ค.

Box Collision ์ถ”๊ฐ€

Door์˜ ํ•˜์œ„์— Box Collision์„ ์ถ”๊ฐ€ํ•ด์ค์‹œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ ์ ˆํžˆ ์นธ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Line Trace๋กœ ๋ฌธ์„ ๊ฒ€์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 2๊ฐ€์ง€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  1. ์ถฉ๋Œ ๊ฒ€์‚ฌ
  2. ํƒœ๊ทธ ๊ฒ€์‚ฌ

Line Trace๊ฐ€ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ถฉ๋Œ์„ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค.
๊ฐ์ง€ํ•œ ๋Œ€์ƒ์˜ ์ •๋ณด ์ค‘ ํƒœ๊ทธ๋ฅผ ๊ฐ€์ ธ์™€ ๊ฒ€์‚ฌ ํ›„ ๋กœ์ง์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Collision Presets ์„ค์ •

์ถฉ๋Œ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•ด Box์˜ Collision ์„ค์ •์„ ๋จผ์ € ์ˆ˜์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. Component ํƒญ์—์„œ Box ์„ ํƒ
  2. Details์—์„œ Collision ๊ฒ€์ƒ‰
  3. Collision Preset์„ Custom์œผ๋กœ ๋ณ€๊ฒฝ
  4. ์•„๋ž˜ Interaction ์ฑ„๋„์˜ ํ•„ํ„ฐ๋ง์„ Block์œผ๋กœ ๋ณ€๊ฒฝ

์œ„ ์„ค์ •์œผ๋กœ ์šฐ๋ฆฌ๋Š” ์ถฉ๋Œ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

ํƒœ๊ทธ๋กœ ๊ตฌ๋ถ„ํ•˜๊ธฐ

BP_Door๋ฅผ ์„ ํƒํ•˜์‹œ๊ณ  Details์—์„œ tag๋ฅผ ๊ฒ€์ƒ‰ํ•ด์ค๋‹ˆ๋‹ค.
Actor์—์„œ ํƒœ๊ทธ ์ถ”๊ฐ€ํ•ด์„œ Door๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
BP_Door์—๊ฒŒ ํƒœ๊ทธ๋ฅผ ์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค

์ด์ œ ์šฐ๋ฆฌ๋Š” BP_Door์—๊ฒŒ Door๋ผ๋Š” ํƒœ๊ทธ๋ฅผ ์ค€๊ฒ๋‹ˆ๋‹ค.
๊ฐ์ง€ํ•œ ๋Œ€์ƒ ์ค‘ Door ํƒœ๊ทธ๋ฅผ ๊ฐ€์ง„ ์•กํ„ฐ๋งŒ ๊ตฌ๋ถ„ํ•ด์„œ ๋กœ์ง์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Line Trace ๋กœ์ง ๋งˆ๋ฌด๋ฆฌ

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

Line Trace By Channel ๋…ธ๋“œ์˜ Out Hit ๋ฐ˜ํ™˜๊ฐ’์„ ๋Œ์–ด์„œ Break Hit Result ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์ˆ˜๋งŽ์€ ๋ฐ˜ํ™˜๊ฐ’๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์šฐ๋ฆฐ ์—ฌ๊ธฐ์„œ Hit Actor์„ ์‚ฌ์šฉํ•  ๊ฒ๋‹ˆ๋‹ค.
์ •๋ง ๋‹ค์–‘ํ•œ ๊ฐ’๋“ค์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ž์„ธํ•œ ๊ฒƒ์€ ์•„๋ž˜ ๊ณต์‹๋ฌธ์„œ API๋ฅผ ํ™•์ธํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์–ธ๋ฆฌ์–ผ ์—”์ง„5 Break Hit Result ๊ณต์‹ ๋ฌธ์„œ

Hit Actor๋ฅผ ๋Œ์–ด์„œ Actor Has Tag๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  Tag๋ฅผ Door๋กœ ๋ณ€๊ฒฝํ•ด์ค๋‹ˆ๋‹ค.

์ถฉ๋Œํ•œ ์•กํ„ฐ์˜ ํƒœ๊ทธ๋ฅผ ๊ฒ€์‚ฌํ•ด์ฃผ๋Š” ๊ฒ๋‹ˆ๋‹ค.
์ด๋ฅผ Branch์™€ ์—ฐ๊ฒฐํ•ด์„œ ์ถœ๋ ฅํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

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

๋ฌธ์— Trace๋ฅผ ๋ฐœ์‚ฌํ•ด์„œ ์ถฉ๋Œํ•  ๋•Œ๋งŒ Hello๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ด์ œ ๋ฌธ์ด ์—ด๊ณ  ๋‹ซํžˆ๋Š” ๋กœ์ง์œผ๋กœ ์ˆ˜์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

BP_Door๋ฅผ ์บ์ŠคํŒ…ํ•ด์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ด 90๋„๋ก ์—ด๋ฆฌ๋„๋ก ํ•˜๋ฉด ๋˜๊ฒ ์ฃ ?

โ—์ปดํŒŒ์ผ ์ €์žฅโ—ํ›„ ํ”Œ๋ ˆ์ดํ•ด๋ณด๋ฉด ๋ฌธ์ด ์—ด๋ฆฌ๋Š”๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒŒ์ปฅ ์—ด๋ฆฌ๋„ค์š”.


๋งˆ๋ฌด๋ฆฌ

์ด๊ฒƒ์œผ๋กœ Line Trace๋ฅผ ํ™œ์šฉํ•ด์„œ ๋ฌธ๊ณผ ์ƒํ˜ธ์ž‘์šฉ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.
Line์ด ์•„๋‹ˆ๋ผ ์ข€ ๋” ๋„“๊ฒŒ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜๊ณ  ์‹ถ๋‹ค ํ•˜์‹œ๋ฉด Box Trace๊ฐ™์ด ๋ฒ”์œ„๊ฐ€ ์žˆ๋Š” Trace๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์‚ฌ์‹ค ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ง์ ‘ ๋ฌธ์˜ ๊ฐ’์„ ์กฐ์ ˆํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ˆ˜๋งŽ์€ ๊ฒŒ์ž„ ์š”์†Œ๋“ค์˜ ๊ฐ’์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๋‹ค ์กฐ์ ˆํ•ด์ฃผ๋ฉด Player์˜ ๋กœ์ง์ด ๋„ˆ๋ฌด ๋ณต์žกํ•ด์ง€๊ฒ ์ฃ ?

isDoorOpen๊ฐ™์€ ๋ณ€์ˆ˜๋ฅผ True, False๋กœ๋งŒ ๋ณ€๊ฒฝํ•ด์ฃผ๊ฑฐ๋‚˜,
์ปค์Šคํ…€ ์ด๋ฒคํŠธ๋ฅผ ๋งŒ๋“ค์–ด์„œ ํ˜ธ์ถœํ•˜๋„๋ก ํ•˜๋ฉด ๋˜์ฃ .

๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ด ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์—ด๊ณ  ๋‹ซํžˆ๋Š” ๊ธฐ๋Šฅ์€ ๋‚˜์ค‘์— ๋„ฃ์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ•˜๋‚˜ ์ˆ˜์ •ํ•˜์ž๋ฉด Line Trace๊ฐ€ ์ถฉ๋Œํ•œ ๊ฒฝ์šฐ๊ฐ€ ์—†์œผ๋ฉด Error๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ถฉ๋Œ์„ ๊ฐ์ง€ํ•œ ๊ฒฝ์šฐ์—๋งŒ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก Branch๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋งˆ๋ฌด๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

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

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

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