[Unreal] ๊ฒŒ์ž„ ๋ชจ๋“œ, ๊ฒŒ์ž„ ์Šคํ…Œ์ดํŠธ
ยท
๐Ÿ“ Game/โœ Unreal
1. ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ๊ฒฝํ—˜ ์ œ์ž‘ํ”Œ๋ ˆ์ด์–ด์™€ ์›”๋“œ ๊ฐ„์— ์›ํ™œํ•œ ์ธํ„ฐ๋ž™์…˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์–ธ๋ฆฌ์–ผ ์—”์ง„์—์„œ๋Š” ๊ธฐ๋ณธ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ํ”„๋ ˆ์ž„์›Œํฌ ์™ธ์—๋„ AI, ํ”ผ์ง์Šค ๋“ฑ ์ผ๋ฐ˜์ ์ธ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ๊ณผ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. 2. ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ํ”„๋ ˆ์ž„์›Œํฌ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ณตํ†ต ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์š”์†Œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ์‹œ์Šคํ…œ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.์•กํ„ฐ, ์ปดํฌ๋„ŒํŠธ์นด๋ฉ”๋ผ์ปจํŠธ๋กค๋Ÿฌ๊ฒŒ์ž„ ๊ทœ์น™๊ฒŒ์ž„ ๋ชจ๋“œํ”Œ๋ ˆ์ด์–ด ์ž…๋ ฅ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ํƒ€์ด๋จธ์œ ์ € ์ธํ„ฐํŽ˜์ด์Šค ๋˜ํ•œ ์–ธ๋ฆฌ์–ผ์—์„œ๋Š” ์œ„์˜ ์š”์†Œ๋“ค์„ ์—ฐ๊ฒฐํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ๋„ ํ•œ๋‹ค.์ž…๋ ฅ ์ฒ˜๋ฆฌ๋ฌผ๋ฆฌ ์‹œ๋ฌผ๋ ˆ์ด์…˜์ธ๊ณต ์ง€๋Šฅ๋ฐ์ดํ„ฐ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ํƒœ๊ทธ ์‹œ์Šคํ…œ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์–ด๋นŒ๋ฆฌํ‹ฐ ์‹œ์Šคํ…œUI ์ œ์ž‘ ์‹œ์Šคํ…œ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด ์ง€์› 3. ๊ฒŒ์ž„ ๋ชจ๋“œ๊ฒŒ์ž„ ๋ชจ๋“œ๋Š” ๊ฒŒ์ž„์˜ ๊ทœ์น™์„ ๊ฒฐ์ •ํ•˜๊ณ  ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ..
[Unreal][C++] ํƒ€์ด๋จธ
ยท
๐Ÿ“ Game/โœ Unreal
1. ํƒ€์ด๋จธํƒ€์ด๋จธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•œ ์‹œ๊ฐ„๋งˆ๋‹ค ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ๋™์ž‘์ด ์‹คํ–‰๋˜๋„๋ก ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์€ Tick ํ•จ์ˆ˜์—์„œ DeltaTime ๊ฐ’์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ง€์ •ํ•œ ๋™์ž‘์ด ์ง€์†์ ์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ , ํŠน์ •ํ•œ ์‹œ๊ฐ„์—๋งŒ ๋ช‡ ๋ฒˆ ์‹คํ–‰๋˜๊ฑฐ๋‚˜, ํ…€์ด 1์ดˆ๋ฅผ ๋„˜๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด Tick ํ•จ์ˆ˜๋ณด๋‹ค ํƒ€์ด๋จธ๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.๊ธ€๋กœ๋ฒŒ TimerManager์—์„œ ๊ด€๋ฆฌํ•˜๋ฉฐ ๊ฒŒ์ž„ ์ธ์Šคํ„ด์Šค ์˜ค๋ธŒ์ ํŠธ์™€ ๊ฐ ์›”๋“œ์— ์กด์žฌํ•œ๋‹ค.TimerManager๋ฅผ ํ†ตํ•ด ํƒ€์ด๋จธ๋ฅผ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ข…๋ฃŒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. 2. ์‚ฌ์šฉ1) ์‚ฌ์šฉSetTimer ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋”œ๋ ˆ์ด ํ›„ ํ•จ์ˆ˜๋‚˜ ๋ธ๋ฆฌ๊ฒŒ์ดํŠธ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํƒ€์ด๋จธ๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๊ทธ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๋ฌดํ•œ ๋ฐ˜๋ณตํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.GetWorldTimerManager().SetTimer( FTimer..
[Unreal] ํ”ผ์ง์Šค
ยท
๐Ÿ“ Game/โœ Unreal
1. ํ”ผ์ง์Šค์šด๋™, ๋‚™ํ•˜, ๋ฐ˜์‚ฌ, ์ƒํ˜ธ ์ž‘์šฉ, ๊ด€์„ฑ, ๋งˆ์ฐฐ ๋“ฑ ๋ฌผ๋ฆฌ๋ฅผ ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ•˜๋‚˜ํ•˜๋‚˜ ๊ฐœ๋ฐœํ•˜๊ธฐ์—๋Š” ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฌผ๋ฆฌ ์—”์ง„์ด๋ผ๋Š” ๋ณ„๋„์˜ ๊ฐ•์ฒด ์—ญํ•™ ๊ณ„์‚ฐ ๋ชจ๋“ˆ์„ ํ™œ์šฉํ•œ๋‹ค. ๋ฌผ๋ฆฌ ์—”์ง„์€ ์‹ค์ œ ์—ญํ•™์„ ์ตœ๋Œ€ํ•œ ์ •ํ™•ํ•˜๊ฒŒ ์žฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ์ถ”๊ตฌํ•œ๋‹ค. ๋ฌผ๋ฆฌ ์—”์ง„์˜ ์„ฑ๋Šฅ๊ณผ ๋Šฅ๋ ฅ์€ ๊ต‰์žฅํžˆ ๋น ๋ฅด๊ฒŒ ๋ฐœ์ „ํ•˜๊ณ  ์žˆ์ง€๋งŒ, ๋ฏธํกํ•œ ๋ถ€๋ถ„์ด ์•„์ง ์กด์žฌํ•œ๋‹ค.์žฌํ˜„์„ฑ: ๋ช‡ ๋ฒˆ์„ ์‹คํ–‰ํ•ด๋„ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ณ ์ž ํ•  ๋•Œ๋Š” ๋ฌผ๋ฆฌ ์—”์ง„์ด ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค.์ œ์–ด์„ฑ: ํ”ผ์ง์Šค ์‹œ๋ฎฌ๋ ˆ์ด์…˜์€ ํž˜๊ณผ ํ† ํฌ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ•์ฒด๋ฅผ ์›€์ง์ด๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ์ง€ ์˜ˆ์ธกํ•˜๊ธฐ๊ฐ€ ํž˜๋“ค๋‹ค. ์ฆ‰, ์ œ์–ด์„ฑ์ด ๊ต‰์žฅํžˆ ๋‚ฎ๋‹ค.์ •๋ฐ€ํ•œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜: ์ •๋ฐ€ํ•œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์ด์ฒ˜๋Ÿผ ๋ฌผ๋ฆฌ ์—”์ง„์€ CPU ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ๊ณผ ์‹œ์ ์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€..
[Unreal] ์ฝœ๋ฆฌ์ „
ยท
๐Ÿ“ Game/โœ Unreal
1. ์ฝœ๋ฆฌ์ „1) ๊ฐ์ฒด ๋ฐ˜์‘์ง€์šฐ๊ฐœ๋ฅผ ๋ฒฝ์œผ๋กœ ๋˜์ง„๋‹ค๋ฉด ์ง€์šฐ๊ฐœ๋Š” ๋ฒฝ๊ณผ ์ถฉ๋Œํ•ด์„œ ํŠ•๊ฒจ ๋‚˜์˜จ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ฒŒ์ž„ ์„ธ๊ณ„์—์„œ๋Š” ๋ชจ๋“  ๋ฌผ์ฒด๊ฐ€ ์ด๋Ÿฌํ•œ ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ€์ง€๋ฉด ์•ˆ ๋œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ฌผ์ฒด์™€ ์„œ๋กœ ์ถฉ๋Œํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๊ณ  ๋‹ค์–‘ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด์ฒ˜๋Ÿผ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์—์„œ๋Š” ๋ฌผ์ฒด๊ฐ€ ์ถฉ๋Œํ•  ๋•Œ ์–ด๋–ป๊ฒŒ ๋ฐ˜์‘ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค. ์–ธ๋ฆฌ์–ผ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์„ค์ •์„ ๊ฐ์ฒด ๋ฐ˜์‘์ด๋ผ ๋ถ€๋ฅด๋ฉฐ 3๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.๋ธ”๋ก(Block)์„œ๋กœ๊ฐ€ ์„œ๋กœ๋ฅผ ํŒŒ๊ณ ๋“ค์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค.๋‘ ๋Œ€์ƒ์ด ์„œ๋กœ ๋Œ€ํ•˜๋Š” ๋ฐฉ์‹์ด ๋ชจ๋‘ ๋ธ”๋ก์ด์–ด์•ผ ํ•œ๋‹ค.์˜ค๋ฒ„๋žฉ(Overlap)์ฝœ๋ผ์ด๋”๋ผ๋ฆฌ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€๋งŒ ์ƒํƒœ๋ฅผ ๊ฒ€์ถœํ•ด์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.๋‘ ๋Œ€์ƒ์ด ์„œ๋กœ ๋Œ€ํ•˜๋Š” ๋ฐฉ์‹์ด ๋ชจ๋‘ ์˜ค๋ฒ„๋žฉ์ด์–ด์•ผ ํ•œ๋‹ค.๋ฌด์‹œ(Ignore)์„œ๋กœ๋ฅผ ์™„์ „ํžˆ ๋ฌด์‹œํ•œ๋‹ค.๋ธ”๋ก๊ณผ ์˜ค๋ฒ„๋žฉ์ด ๊ฒน์น  ๋•Œ๋„ ๋ฌด์‹œ๋œ๋‹ค...
[Unreal] ๋ธ”๋ฃจํ”„๋ฆฐํŠธ
ยท
๐Ÿ“ Game/โœ Unreal
1. ๋ธ”๋ฃจํ”„๋ฆฐํŠธ์™€ C++์–ธ๋ฆฌ์–ผ ์—”์ง„์—์„œ ๊ฒŒ์ž„ ๊ธฐ๋Šฅ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ์™€ C++์ด ์žˆ๋‹ค.๋ธ”๋ฃจํ”„๋ฆฐํŠธ๋Š” ๋ˆˆ์— ๋ณด์ด๋Š” ๋…ธ๋“œ์™€ ๋…ธ๋“œ๋ฅผ ๋ณด๋ฉฐ ๋ˆˆ์— ๋ณด์ด๋Š” ํ๋ฆ„์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๋น„์ฃผ์–ผ ์Šคํฌ๋ฆฝํŠธ์ด๋‹ค.C++์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ง์ ‘ ํƒ€์ดํ•‘์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.  ๋ธ”๋ฃจํ”„๋ฆฐํŠธ๋ฅผ ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์ž„์„ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ C++๋กœ ๋ฒ ์ด์Šค๊ฐ€ ๋˜๋Š” ๊ฒŒ์ž„ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค๊ณ , ๋””์ž์ด๋„ˆ๊ฐ€ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์ž„์˜ ์žฌ๋ฏธ๋ฅผ ์œ„ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ ์‹œ๋„ˆ์ง€๋ฅผ ๋‚ธ๋‹ค. 2. ๋ธ”๋ฃจํ”„๋ฆฐํŠธ๋ธ”๋ฃจํ”„๋ฆฐํŠธ๋Š” ๋น„์ฃผ์–ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. ๋น„์ฃผ์–ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์‹œ๊ฐ์ ์œผ๋กœ ๋ธ”๋ก์„ ์Œ“์œผ๋ฉฐ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค.  3. ์ข…๋ฅ˜๋ ˆ๋ฒจ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ: ๋ ˆ๋ฒจ์— ํ•˜๋‚˜์”ฉ ํ• ๋‹น๋˜์–ด ์žˆ๋Š”..
[Unreal] ๋ ˆ๋ฒจ, ๋ ˆ์ด์–ด
ยท
๐Ÿ“ Game/โœ Unreal
1. ๋ ˆ๋ฒจ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ดํ•  ๋•Œ ๋ณด๊ณ  ๋งŒ์งˆ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ๋Š” ๋ ˆ๋ฒจ ์†์— ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค. ์ฆ‰, ๋ ˆ๋ฒจ์ด๋ž€ ์Šคํƒœํ‹ฑ ๋ฉ”์‹œ, ๋ณผ๋ฅจ, ๋ผ์ดํŠธ, ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ๋“ฑ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฒƒ์œผ๋กœ, ์ด ๋ชจ๋“  ๊ฒƒ์ด ์–ด์šฐ๋Ÿฌ์ ธ์„œ ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ดํ•˜๋Š” ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ๋ชจ๋“  ๊ฒฝํ—˜์„ ์„ ์‚ฌํ•ด ์ค€๋‹ค. ๋ ˆ๋ฒจ ๊ทœ๋ชจ๋Š” ๊ฑฐ๋Œ€ ์ง€ํ–ฅ ๊ธฐ๋ฐ˜ ์›”๋“œ์—์„œ๋ถ€ํ„ฐ ์•กํ„ฐ ๋ช‡ ๊ฐœ๋กœ ์ด๋ฃจ์–ด์ง„ ๋งค์šฐ ์ž‘์€ ๋ ˆ๋ฒจ๊นŒ์ง€ ๋‹ค์–‘ํ•˜๋‹ค. 1) ๋ ˆ๋ฒจ ์ŠคํŠธ๋ฆฌ๋ฐ์–ธ๋ฆฌ์–ผ์—๋Š” ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด ์ค‘์— ์•„์ง ์ฝ์–ด ๋“ค์ด์ง€ ์•Š์€ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ ˆ๋ฒจ์„ ์ดํ›„์— ์ฐจ๊ทผ์ฐจ๊ทผ ์ฝ์–ด ๋“ค์ด๋Š” ๋ ˆ๋ฒจ ์ŠคํŠธ๋ฆฌ๋ฐ์ด๋ผ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋„“์€ ๋งต์„ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ ˆ๋ฒจ๋กœ ๋ถ„ํ• ํ•ด์„œ ์กฐ๊ธˆ์”ฉ ์ฝ์–ด ๋“ค์ด๋ฉฐ ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.  ์ผ๋ฐ˜์ ์ธ ๊ฒŒ์ž„์—์„œ ์˜ฅ์ƒ์— ์—„์ฒญ ๋Š๋ฆฌ๊ฒŒ ์˜ฌ๋ผ๊ฐ€๊ฑฐ๋‚˜ ์—ด๋ฆฌ์ง€ ์•Š๋Š” ์…”ํ„ฐ๋ฅผ ๋ณธ ์ ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๋ชจ๋‘ ๋กœ๋“œ๋ฅผ ์œ„ํ•œ ์‹œ๊ฐ„..