๐Ÿ“„

Blueprint Interface - BPI

Mark as Draft

์ •์˜

์„œ๋กœ ๋‹ค๋ฅธ Class๋ฅผ ๊ฐ€์ง„ Actor๋“ค์ด ๊ณตํ†ต๋œ Function์„ ๊ตฌํ˜„ํ•˜๋„๋ก ๊ฐ•์ œํ•˜๊ณ  ๋ช…ํ™•ํ•œ Type Casting ๊ณผ์ • ์—†์ด๋„ Data๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ํ†ต์‹  ๊ทœ์•ฝ Asset์ด๋‹ค.

์„ค๋ช…

Game ๊ฐœ๋ฐœ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฉด์„œ Actor๋“ค์ด ์ƒํ˜ธ์ž‘์šฉํ•  ๋•Œ ๋งค๋ฒˆ ๊ณ ์œ ํ•œ Class Type์„ ํ™•์ธํ•˜๊ณ  Castํ•˜๋Š” ๊ณผ์ •์€ Memory ๊ณผ๋ถ€ํ•˜์™€ ์‹ฌ๊ฐํ•œ ์ฝ”๋“œ ์˜์กด์„ฑ ๋ฌธ์ œ๋ฅผ ๋‚ณ์•˜๋‹ค.
์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Epic Games๋Š” C++ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋‹ค์ค‘ ์ƒ์† ๊ฐœ๋…๊ณผ ์ˆœ์ˆ˜ ๊ฐ€์ƒ ํ•จ์ˆ˜ ์›๋ฆฌ๋ฅผ Blueprint System์— ๋งž๊ฒŒ ๋ณ€ํ˜•ํ•˜์—ฌ ๋„์ž…ํ–ˆ๋‹ค.
Interface๋Š” Function์˜ ์ด๋ฆ„๊ณผ Input ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ทธ๋ฆฌ๊ณ  Output ํ˜•ํƒœ์˜ ๊ป๋ฐ๊ธฐ๋งŒ ์ •์˜ํ•  ๋ถ„ ์‹ค์ œ ์ž‘๋™ํ•˜๋Š” ๋กœ์ง์€ ์ „ํ˜€ ๊ฐ€์ง€์ง€ ์•Š๋Š” ์ถ”์ƒ์ ์ธ ์ƒํƒœ๋กœ ์กด์žฌํ•œ๋‹ค.
์ด ๊ทœ์•ฝ์„ ์ƒ์†๋ฐ›์€ ๊ฐœ๋ณ„ Actor๋“ค์ด ๊ฐ์ž์˜ ํŠน์„ฑ์— ๋งž์ถฐ ๋กœ์ง์„ ๋ฎ์–ด์“ฐ๊ธฐํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๋ฏ€๋กœ ์‹œ์Šคํ…œ ๊ฐ„์˜ ์˜์กด์„ฑ์„ ๊ทพ์–ด๋‚ด๊ณ  ๊ตฌ์กฐ์ ์ธ ์œ ์—ฐ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ๊ฐœ๋ฐœ Pipeline์ด๋‹ค.

์›๋ฆฌ

  1. ์˜์กด์„ฑ ๋ถ„๋ฆฌ ๋ฐ ๊ฒฐํ•ฉ๋„ ์ €ํ•˜
    1. ํ˜ธ์ถœํ•˜๋Š” ์‹œ์Šคํ…œ ์ชฝ์—์„œ๋Š” ๋Œ€์ƒ Actor์˜ Class๊ฐ€ ์ •ํ™•ํžˆ ๋ฌด์—‡์ธ์ง€ ์•Œ ํ•„์š” ์—†์ด ํ•ด๋‹น Interface๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€๋งŒ ๊ฒ€์‚ฌํ•˜์—ฌ Message๋ฅผ ๋ณด๋‚ด๋ฏ€๋กœ ์‹œ์Šคํ…œ ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๊ฐ€ ๊ทน๋„๋กœ ๋‚ฎ์•„์ง„๋‹ค.
  1. ๋‹คํ˜•์„ฑ ๋ณด์žฅ ๋ฐ ๋…๋ฆฝ์„ฑ
    1. ๋™์ผํ•œ Interface Function์„ ํ˜ธ์ถœํ•˜๋”๋ผ๋„ ํ•ด๋‹น Message๋ฅผ ์ˆ˜์‹ ํ•œ Actor์˜ Class ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์™„์ „ํžˆ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ ๋กœ์ง์ด ์‹คํ–‰๋˜๋„๋ก ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ธ ๋‹คํ˜•์„ฑ์„ ์™„๋ฒฝํ•˜๊ฒŒ ๋ณด์žฅํ•œ๋‹ค.
  1. ๋ฐ์ดํ„ฐ ์บก์Аํ™” ๋ฌผ๋ฆฌ์  ๋ฐฉ์–ด
    1. Interface Asset ๋‚ด๋ถ€์—์„œ๋Š” ์ผ๋ฐ˜์ ์ธ Variable ์„ ์–ธ์ด๋‚˜ ์„ธ๋ถ€ ๋กœ์ง ์ž‘์„ฑ์ด ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ฒ ์ €ํžˆ ์ฐจ๋‹จ๋˜๋ฉฐ ์˜ค์ง Function์˜ Signature ์ •๋ณด๋งŒ ๊ทœ์ •ํ•˜์—ฌ ์‹œ์Šคํ…œ ์„ค๊ณ„์˜ ์ถ”์ƒํ™”๋ฅผ ๊ฐ•์ œํ•œ๋‹ค.
  1. ๋‹ค์ค‘ ์ƒ์† ํ•œ๊ณ„ ๊ทน๋ณต
    1. Unreal Engine์˜ Blueprint ์ฒด๊ณ„๋Š” ๊ตฌ์กฐ์  ์ถฉ๋Œ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ๋‹ค์ค‘ ์ƒ์†์„ ์—„๊ฒฉํ•˜๊ฒŒ ๊ธˆ์ง€ํ•˜์ง€๋งŒ Interface๋Š” ํ•˜๋‚˜์˜ Actor๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋™์‹œ์— ์ƒ์†๋ฐ›์„ ์ˆ˜ ์žˆ์–ด ๋ณตํ•ฉ์ ์ธ ๊ธฐ๋Šฅ ์กฐํ•ฉ์„ ์ง€์›ํ•œ๋‹ค.

๊ตฌ์กฐ

ย 

์˜ˆ์‹œ

Interaction System ์„ค๊ณ„

Player๊ฐ€ ๋ฌธ, ์ƒ์ž, NPC ๋“ฑ ์ˆ˜๋งŽ์€ ์‚ฌ๋ฌผ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•  ๋•Œ Interact๋ผ๋Š” ๊ณตํ†ต Interface๋ฅผ ํ• ๋‹นํ•œ๋‹ค.
Player๋Š” ์ถฉ๋Œํ•œ ๋Œ€์ƒ์ด ๋ฌด์—‡์ธ์ง€ ์ผ์ผํžˆ Castingํ•  ํ•„์š” ์—†์ด Interact Message๋งŒ ์ „์†กํ•˜๋ฉฐ ๋ฌธ์€ ์—ด๋ฆฌ๊ณ  ์ƒ์ž๋Š” Item์„ ๋“œ๋žํ•˜๋ฉฐ NPC๋Š” ๋Œ€ํ™”๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋…๋ฆฝ์  ๋กœ์ง์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•œ๋‹ค.

Damage System ์—ฐ์‚ฐ

Player, ์ , ์บ๋ฆญํ„ฐ, ๊ธฐ์ง€, ๋ฐฉ์–ด๋ฒฝ ๋“ฑ ์ฒด๋ ฅ ์ˆ˜์น˜๋ฅผ ๊ฐ€์ง„ ๋ชจ๋“  ๊ฐ์ฒด์— Take Damage Interface๋ฅผ ์ƒ์† ์‹œํ‚จ๋‹ค.
๋ฌด๊ธฐ ๋ฐœ์‚ฌ์ฒด๊ฐ€ ์ถฉ๋Œํ–ˆ์„ ๋•Œ ์ถฉ๋Œํ•œ ๋Œ€์ƒ์˜ Class๋ฅผ ๋Œ€์กฐํ•˜์ง€ ์•Š๊ณ  ๊ณง๋ฐ”๋กœ Message๋ฅผ ์ „์†กํ•˜์—ฌ ๊ฐ ๊ฐ์ฒด๊ฐ€ ๋ฐฉ์–ด๋ ฅ ์—ฐ์‚ฐ๊ณผ ์ฒด๋ ฅ ๊ฐ์†Œ ๋กœ์ง์„ ๋…์ž์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๊ถŒํ•œ์„ ์œ„์ž„ํ•œ๋‹ค.

Audio Event Trigger ๊ตฌ์กฐํ™”

๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ ๋ฌผ์ฒด๊ฐ€ ํŒŒ๊ดด๋  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” Sound๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Play Destruction Sound Interface๋ฅผ ๋„์ž…ํ•œ๋‹ค. ์œ ๋ฆฌ์ฐฝ๊ณผ ๋‚˜๋ฌด ์ƒ์ž๊ฐ€ ํŒŒ๊ดด๋  ๋•Œ Audio Manager๋Š” ๋™์ผํ•œ Message๋ฅผ ๋ณด๋‚ด์ง€๋งŒ ๊ฐ Actor๋Š” ์ž์‹ ์—๊ฒŒ ๋งž๋Š” Wwise Event๋‚˜ MEtasound Parameter๋ฅผ ์•Œ์•„์„œ ํ˜ธ์ถœํ•˜์—ฌ Audio Pipeline์„ ์ตœ์ ํ™”ํ•œ๋‹ค.

Mark as Published
ย