[Unreal] ๊ฒŒ์ž„ ๋ชจ๋“œ, ๊ฒŒ์ž„ ์Šคํ…Œ์ดํŠธ
ยท
๐Ÿ“ Game/โœ Unreal
1. ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ๊ฒฝํ—˜ ์ œ์ž‘ํ”Œ๋ ˆ์ด์–ด์™€ ์›”๋“œ ๊ฐ„์— ์›ํ™œํ•œ ์ธํ„ฐ๋ž™์…˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์–ธ๋ฆฌ์–ผ ์—”์ง„์—์„œ๋Š” ๊ธฐ๋ณธ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ํ”„๋ ˆ์ž„์›Œํฌ ์™ธ์—๋„ AI, ํ”ผ์ง์Šค ๋“ฑ ์ผ๋ฐ˜์ ์ธ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ๊ณผ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. 2. ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ํ”„๋ ˆ์ž„์›Œํฌ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ณตํ†ต ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์š”์†Œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ์‹œ์Šคํ…œ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.์•กํ„ฐ, ์ปดํฌ๋„ŒํŠธ์นด๋ฉ”๋ผ์ปจํŠธ๋กค๋Ÿฌ๊ฒŒ์ž„ ๊ทœ์น™๊ฒŒ์ž„ ๋ชจ๋“œํ”Œ๋ ˆ์ด์–ด ์ž…๋ ฅ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ํƒ€์ด๋จธ์œ ์ € ์ธํ„ฐํŽ˜์ด์Šค ๋˜ํ•œ ์–ธ๋ฆฌ์–ผ์—์„œ๋Š” ์œ„์˜ ์š”์†Œ๋“ค์„ ์—ฐ๊ฒฐํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ๋„ ํ•œ๋‹ค.์ž…๋ ฅ ์ฒ˜๋ฆฌ๋ฌผ๋ฆฌ ์‹œ๋ฌผ๋ ˆ์ด์…˜์ธ๊ณต ์ง€๋Šฅ๋ฐ์ดํ„ฐ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ํƒœ๊ทธ ์‹œ์Šคํ…œ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์–ด๋นŒ๋ฆฌํ‹ฐ ์‹œ์Šคํ…œUI ์ œ์ž‘ ์‹œ์Šคํ…œ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด ์ง€์› 3. ๊ฒŒ์ž„ ๋ชจ๋“œ๊ฒŒ์ž„ ๋ชจ๋“œ๋Š” ๊ฒŒ์ž„์˜ ๊ทœ์น™์„ ๊ฒฐ์ •ํ•˜๊ณ  ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ..
[Math] ์ •๊ทœํ™”
ยท
๐Ÿ“ Game/โœ
์ •๊ทœํ™” ์‚ฌ์ „์  ์˜๋ฏธ์˜ ์ •๊ทœํ™”๋Š” ์–ด๋–ค ๋Œ€์ƒ์„ ์ผ์ •ํ•œ ๊ทœ์น™์ด๋‚˜ ๊ธฐ์ค€์— ๋”ฐ๋ฅด๋Š” ์ •๊ทœ์ ์ธ ์ƒํƒœ๋กœ ๋ฐ”๊พธ๊ฑฐ๋‚˜, ๋น„์ •์ƒ์ ์ธ ๋Œ€์ƒ์„ ์ •์ƒ์ ์œผ๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๊ณผ์ •์„ ๋œปํ•œ๋‹ค. ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์ •๊ทœํ™”๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ •๊ทœํ™”๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ฒŒ์ž„ ์ˆ˜ํ•™์—์„œ์˜ ์ •๊ทœํ™”๋Š” ํ•ด๋‹น ๋ฒกํ„ฐ์˜ ๋ฐฉํ–ฅ์€ ์œ ์ง€ํ•œ ์ฑ„ ํฌ๊ธฐ๊ฐ€ 1์ธ ๋‹จ์œ„ ๋ฒกํ„ฐ๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ •์ด๋‹ค. ๋‹จ์œ„ ๋ฒกํ„ฐ๋ฅผ ํ™œ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ฒกํ„ฐ๋ฅผ ์—ฐ์‚ฐํ•  ๋•Œ ์ข€ ๋” ๋‹จ์ˆœํ•˜๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฒŒ์ž„์—์„œ๋Š” ์บ๋ฆญํ„ฐ์˜ ์ด๋™๊ณผ ๋ฐฉํ–ฅ์— ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ขŒํ‘œ๋ฅผ ์ •๊ทœํ™”ํ•˜์—ฌ ๋ณ€ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฒกํ„ฐ v๋Š” ํฌ๊ธฐ ||v||์™€ ๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹จ์œ„ ๋ฒกํ„ฐ u์˜ ๊ณฑ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ •๊ทœํ™”๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด ๋‹จ์œ„ ๋ฒกํ„ฐ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฒกํ„ฐ๋ฅผ ๊ทธ ํฌ๊ธฐ๋งŒํผ ๋‚˜๋ˆ„๋ฉด ๋œ๋‹ค. ์ด๋ฅผ ์‹ค์ œ 3์ฐจ์›..
[C++] ์ด๋ถ„ ๊ทธ๋ž˜ํ”„
ยท
๐Ÿ“ Computer Science/โœ Algorithm
์ด๋ถ„ ๊ทธ๋ž˜ํ”„ 1. ๊ฐœ๋… ์ด๋ถ„ ๊ทธ๋ž˜ํ”„๋ž€ ์ธ์ ‘ํ•œ ์ •์ ๋ผ๋ฆฌ ์„œ๋กœ ๋‹ค๋ฅธ ์ƒ‰์œผ๋กœ ์น ํ•˜์—ฌ ๋ชจ๋“  ์ •์ ์„ ๋‘ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ์„œ๋กœ ๋‹ค๋ฅธ ๊ทธ๋ฃน์˜ ์ •์ ์„ ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ๋งํ•œ๋‹ค. 2. ์ด๋ถ„ ๋งค์นญ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ถ„ ๋งค์นญ์ด๋ž€ ์ด๋ถ„ ๊ทธ๋ž˜ํ”„์—์„œ ํ•œ์ชฝ ๊ทธ๋ฃน(A)๊ณผ ๋‹ค๋ฅธ ํ•œ์ชฝ ๊ทธ๋ฃน(1)์ด ๋งค์นญ์„ ํ–ˆ์„ ๋•Œ ์ตœ๋Œ€ ์œ ๋Ÿ‰์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๋งํ•œ๋‹ค. 3. ๋ฌธ์ œ https://www.acmicpc.net/problem/1707 1707๋ฒˆ: ์ด๋ถ„ ๊ทธ๋ž˜ํ”„ ์ž…๋ ฅ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”๋ฐ, ์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์—๋Š” ๊ทธ๋ž˜ํ”„์˜ ์ •์ ์˜ ๊ฐœ์ˆ˜ V์™€ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ E๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— www.acmicpc.net #include #include #include #include us..
[C++] RTTI(Run Time Type Information)
ยท
๐Ÿ“ Language/โœ C & C++
RTTI(Run Time Type Information) C++์—์„œ๋Š” ๋Ÿฐํƒ€์ž„์— ๊ธฐ์ดˆ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด ํฌ์ธํ„ฐ๊ฐ€ ์–ด๋–ค ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š”์ง€ ์ •๋ณด๋ฅผ ์•Œ๋ ค์ฃผ๋Š” RTTI ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ์—์„  ํด๋ž˜์Šค ๊ฐ„ ์ƒ์†์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ณ , ๋‹คํ˜•์„ฑ์„ ๊ฐ€์ง€๊ฒŒ ๋˜์–ด ๊ธฐ์ดˆ ํด๋ž˜์Šค๋Š” ์ž์‹ ์˜ ๋ฉค๋ฒ„๋ฅผ ์œ„์ž„ํ•œ ํŒŒ์ƒ ํด๋ž˜์Šค๋ฅผ ์ž์‹ ์˜ ๊ฐ์ฒด ํฌ์ธํ„ฐ๋กœ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. Base *pBase = new Derived(); ์ปดํŒŒ์ผ ๋‹น์‹œ์—๋Š” pBase๊ฐ€ ์–ด๋–ค ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค. ๊ทธ์ € ๊ธฐ์ดˆ ํด๋ž˜์Šค์™€ ํŒŒ์ƒ ํด๋ž˜์Šค ์ค‘ ์–ด๋–ค ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š”์ง€ ์ง์ž‘๋งŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ •๋ณด๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ด RTTI์ด๊ณ  ํ˜„์žฌ ๊ฐ์ฒด ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๊ฐ์ฒด ํƒ€์ž… ์ •๋ณด๋ฅผ type_info๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ vftable์— ์ €์žฅํ•œ๋‹ค. 1. dyna..
[Unreal][C++] ํƒ€์ด๋จธ
ยท
๐Ÿ“ Game/โœ Unreal
1. ํƒ€์ด๋จธํƒ€์ด๋จธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•œ ์‹œ๊ฐ„๋งˆ๋‹ค ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ๋™์ž‘์ด ์‹คํ–‰๋˜๋„๋ก ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์€ Tick ํ•จ์ˆ˜์—์„œ DeltaTime ๊ฐ’์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ง€์ •ํ•œ ๋™์ž‘์ด ์ง€์†์ ์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ , ํŠน์ •ํ•œ ์‹œ๊ฐ„์—๋งŒ ๋ช‡ ๋ฒˆ ์‹คํ–‰๋˜๊ฑฐ๋‚˜, ํ…€์ด 1์ดˆ๋ฅผ ๋„˜๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด Tick ํ•จ์ˆ˜๋ณด๋‹ค ํƒ€์ด๋จธ๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.๊ธ€๋กœ๋ฒŒ TimerManager์—์„œ ๊ด€๋ฆฌํ•˜๋ฉฐ ๊ฒŒ์ž„ ์ธ์Šคํ„ด์Šค ์˜ค๋ธŒ์ ํŠธ์™€ ๊ฐ ์›”๋“œ์— ์กด์žฌํ•œ๋‹ค.TimerManager๋ฅผ ํ†ตํ•ด ํƒ€์ด๋จธ๋ฅผ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ข…๋ฃŒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. 2. ์‚ฌ์šฉ1) ์‚ฌ์šฉSetTimer ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋”œ๋ ˆ์ด ํ›„ ํ•จ์ˆ˜๋‚˜ ๋ธ๋ฆฌ๊ฒŒ์ดํŠธ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํƒ€์ด๋จธ๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๊ทธ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๋ฌดํ•œ ๋ฐ˜๋ณตํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.GetWorldTimerManager().SetTimer( FTimer..
๋จธํ„ฐ๋ฆฌ์–ผ(Material)
ยท
๐Ÿ“ Game/โœ Computer Graphics
1. Material ๋จธํ„ฐ๋ฆฌ์–ผ์ด๋ž€ ์˜ค๋ธŒ์ ํŠธ์™€ ๋งต์— ์›ํ•˜๋Š” ๋ชจ์–‘์ƒˆ๋ฅผ ๋‚ด๋Š” ๋ฐ ์žˆ์–ด ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ๋ถ€๋ถ„ ์ค‘ ํ•˜๋‚˜๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ…์Šค์ณ์— ๋Œ€ํ•œ ํ‘œ๋ฉด ๋ Œ๋”๋ง ๋ฐฉ๋ฒ•์˜ ์ •์˜์ด๋‹ค. 2. Material Parameter ๊ธฐ๋ณธ ํ…์Šค์ณ ์ด๋ฏธ์ง€(Albedo, Base Color)๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋‹จ์ˆœํ•œ ์ด๋ฏธ์ง€๋งŒ์„ ๋…ธ์ถœํ•˜์ง€๋งŒ, ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๊ฑฐ์˜ ๋ชจ๋“  ํ˜„์‹ค ์„ธ๊ณ„ ํ‘œ๋ฉด์˜ ์™ธ์–‘์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. 1) Metallic ํ‘œ๋ฉด์˜ ๋ฐ˜์‚ฌ๋„ ๋ฐ ๊ด‘์› ๋ฐ˜์‘์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋”ฐ๋ผ ํ‘œ๋ฉด์ด ์–ผ๋งˆ๋‚˜ ๊ธˆ์† ๊ฐ™์€์ง€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. 2) Normal ๊ด‘์›์„ ๋ฐ›๋Š” ๋ฒ”ํ”„, ํ™ˆ ๋ฐ ์Šคํฌ๋ž˜์น˜ ๋“ฑ์˜ ํ‘œ๋ฉด ๋””ํ…Œ์ผ์„ ๋ชจ๋ธ์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‹ค์ œ ๋ชจ๋ธ๋ง์œผ๋กœ ํ™ˆ๊ณผ ๋‚˜์‚ฌ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋…ธ๋ฉ€ ๋งต์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ ์‹ค์ œ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ๋กœ ๋ชจ..