๐Ÿ“„

Blueprint - BP

Mark as Draft

์ •์˜

Unreal Engine ๋‚ด๋ถ€์—์„œ C++ ์ฝ”๋“œ๋ฅผ ์‹œ๊ฐ์ ์ธ Node ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์•„๋‹Œ ๊ฐœ๋ฐœ์ž๋„ ์ง๊ด€์ ์œผ๋กœ Game ๋กœ์ง์„ ์„ค๊ณ„ํ•˜๊ณ  ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“  Visual Scripting System์ด๋‹ค.

์„ค๋ช…

Unreal Engine 3 ์‹œ์ ˆ Game ๊ธฐํš์ž๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ๋„์›€ ์—†์ด ์ด๋ฒคํŠธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋„์ž…ํ–ˆ๋˜ Kismet ์‹œ์Šคํ…œ์ด ๊ทธ ์—ญ์‚ฌ์  ์‹œ์ดˆ๋‹ค.
์ดํ›„ Epic Games์˜ Time Sweeney์™€ ๊ฐœ๋ฐœ์ง„์ด ์ด๋ฅผ ์™„์ „ํžˆ ์ƒˆ๋กญ๊ฒŒ ์„ค๊ณ„ํ•˜์—ฌ Unreal Engine 4๋ถ€ํ„ฐ Blueprint๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ „๋ฉด ๋„์ž…ํ–ˆ๋‹ค.
๋‹จ์ˆœํžˆ ๋กœ์ง์„ ์—ฐ๊ฒฐํ•˜๋Š” ์ˆ˜์ค€์„ ๋„˜์–ด C++ Class๋ฅผ ์ง์ ‘ ์ƒ์†๋ฐ›๊ณ  Compile์„ ๊ฑฐ์ณ ์‹ค์ œ ๊ธฐ๊ณ„์–ด๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๊ฐ์ฒด์ง€ํ–ฅ Programming ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค.
ํ˜„์—… ํŒŒ์ดํ”„๋ผ์ธ์—์„œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ C++๋กœ ๋ฌด๊ฑฐ์šด ํ•ต์‹ฌ System ๊ตฌ์กฐ๋ฅผ ์„ค๊ผํ•˜๋ฉด ๊ธฐํš์ž์™€ ์•„ํ‹ฐ์ŠคํŠธ๊ฐ€ Blueprint๋ฅผ ์ด์šฉํ•ด ์„ธ๋ถ€์ ์ธ ๊ธฐ๋Šฅ๊ณผ ์ฝ˜ํ…์ธ ๋ฅผ ์กฐ๋ฆฝํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ตฌ์กฐ๋กœ ์—ญํ• ์„ ๋ถ„๋‹ดํ•˜์—ฌ ๊ฐœ๋ฐœ ํšจ์œจ์„ ๊ทน๋Œ€ํ™”ํ•œ๋‹ค.

์›๋ฆฌ

  1. Node ๊ธฐ๋ฐ˜ ์‹œ๊ฐํ™” ์—ฐ์‚ฐ
    1. ๋ณต์žกํ•œ ํ…์ŠคํŠธ ํ˜•ํƒœ์˜ ์ฝ”๋”ฉ ๋ฌธ๋ฒ•์„ ๋ฐฐ์ œํ•˜๊ณ  Function Variable Event ๋“ฑ์˜ Programming ์š”์†Œ๋ฅผ ์‹œ๊ฐ์ ์ธ ๋ธ”๋ก ํ˜•ํƒœ์ธ Node๋กœ ๊ตฌํ˜„ํ•˜์—ฌ ๋…ผ๋ฆฌ์  ํ๋ฆ„์„ ์„ ์œผ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค.
  1. Virtual Machine ์ปดํŒŒ์ผ
    1. ์ž‘์„œ์˜ค๋”˜ Visual Script๋Š” Engine ๋‚ด๋ถ€์˜ ๊ฐ€์ƒ ๋จธ์‹ ์„ ๊ฑฐ์ณ ๋‚ด๋ถ€์ ์ธ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ ๋ฐ Compile๋˜์–ด C++ ๊ธฐ๋ฐ˜์˜ Engine ์ฝ”์–ด์™€ ๋™์ผํ•œ Memoryํ™˜๊ฒฝ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ๊ตฌ๋™๋œ๋‹ค.
  1. Event Driven ์•„ํ‚คํ…์ฒ˜
    1. ๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค ์—ฐ์‚ฐ์„ ๊ฐ•์ œํ•˜๋Š” ๋Œ€์‹  Player์˜ ์ž…๋ ฅ ์ถฉ๋Œ ๋ฐœ์ƒ ํƒ€์ด๋จธ ์ข…๋ฃŒ ๋“ฑ ํŠน์ • Event๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ๋งŒ ์—ฐ๊ฒฐ๋œ Node์˜ ์‹คํ–‰ ํ•€์ด ํ™œ์„ฑํ™”๋˜์–ด ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ตœ์ ํ™” ๋ฐฉ์‹์„ ์ฑ„ํƒํ•œ๋‹ค.
  1. C++ Reflection ์—ฐ๋™
    1. ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ C++ ์ฝ”๋“œ์—์„œ ๋งคํฌ๋กœ๋ฅผ ์„ ์–ธํ•˜๋ฉด Engine์˜ Reflection System์ด ์ด๋ฅผ ์Šค์บ”ํ•˜์—ฌ Blueprint Editor ํ™”๋ฉด์— ์ฆ‰๊ฐ์ ์œผ๋กœ Node๋‚˜ ๋ณ€์ˆ˜ ํ˜•ํƒœ๋กœ ๋…ธ์ถœ์‹œ์ผœ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ์ง€์›ํ•œ๋‹ค.

๊ตฌ์กฐ

ย 

์˜ˆ์‹œ

Character Movement ์ปจํŠธ๋กค ์‹œ์Šคํ…œ

Player์˜ ํ‚ค๋ณด๋“œ๋‚˜ ๋งˆ์šฐ์Šค ์ž…๋ ฅ Event๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ•ด๋‹น ์‹ ํ˜ธ๋ฅผ Character Actor ๋‚ด๋ถ€์˜ Blueprint๋กœ ์ „๋‹ฌํ•œ๋‹ค. ์ž…๋ ฅ๋œ ์ถ•์˜ ๋ฐฉํ–ฅ๊ณผ Scale ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๊ณ  3D ๊ณต๊ฐ„์ƒ์—์„œ Character์˜ ์œ„์น˜๋ฅผ ์ดˆ๋‹น ํ”„๋ ˆ์ž„ ์ˆ˜์— ๋น„๋ก€ํ•˜์—ฌ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ด๋™์‹œํ‚ค๋Š” ๊ฐ€์žฅ ๊ธฐ์ดˆ์ ์ธ ํŒŒ์ดํ”„๋ผ์ธ์ด๋‹ค.

Trigger Box ์ƒํ˜ธ์ž‘์šฉ ํผ์ฆ

Level ๋””์ž์ธ ๊ณผ์ •์—์„œ ํŠน์ • ๊ตฌ์—ญ์— ๋ณด์ด์ง€ ์•Š๋Š” Collision Box Actor๋ฅผ ๋ฐฐ์น˜ํ•˜๊ณ  ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ง„์ž…ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” Overlap Event๋ฅผ ํ™œ์šฉํ•œ๋‹ค. ์ด Event๊ฐ€ ๋ฐœ๋™ํ•˜๋ฉด ์ง€์ •๋œ ๋ฌธ์˜ ํšŒ์ „ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” Timeline Node๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์„œ์„œํžˆ ๋ฌธ์ด ์—ด๋ฆฌ๋Š” Animation์„ ๊ตฌํ˜„ํ•˜๊ณ  ํ†ต๊ณผ ์‹œ Audio๋ฅผ ์žฌ์ƒํ•˜๋Š” Level Blueprint ๋กœ์ง์„ ๊ตฌ์ถ•ํ•œ๋‹ค.

UI Widget Data ๋ฐ”์ธ๋”ฉ ์—ฐ์‚ฐ

ํ™”๋ฉด์— ๋„์›Œ์ง„ ์ฒด๋ ฅ๋ฐ” UI์˜ ํผ์„ผํŠธ ์ˆ˜์น˜๋ฅผ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด Player Character๊ฐ€ ๊ฐ€์ง„ Current Health ๋ณ€์ˆ˜๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋กœ์ง์„ ์„ค๊ณ„ํ•œ๋‹ค. ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋งค ํ”„๋ ˆ์ž„ ์—…๋ฐ์ดํŠธ ๋Œ€์‹  ์ฒด๋ ฅ์ด ๊นŽ์ผ ๋•Œ๋งŒ ๋ฐœ๋™ํ•˜๋Š” Custom Event๋ฅผ ๋งŒ๋“ค๊ณ  ์‹œ๊ฐ์ ์ธ UI ๊ฒŒ์ด์ง€์™€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ Data๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋™๊ธฐํ™”ํ•œ๋‹ค.

Mark as Published
ย