Unreal Engine 5 โ Full Course for Beginners
https://www.youtube.com/watch?v=6UlU_FsicK8
BP์ ๊ณ์ธต๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์๋ค.
๊ฐ์ฅ ๊ตฌ์ฒดํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง ๊ฒ์ด Character์ด๋ค.
๋ค์๊ณผ ๊ฐ์ด, charater์ movement mode๋ฅผ ์ค์ ํ ์๋ ์๋ค.
๊ทธ๋ฅ ์ด๋ฆ๋ง ๋ถ์ธ๊ฒ ์๋๋ผ,
Flying์ด๋ฉด, ๋ ์ ์๊ฒ ๋๋ค.
๊ทธ๋ฆฌ๊ณ , Vertical์์์ ์์ง์๋ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
Get Vector Up ์ฌ์ฉ
๋น์๋ฃจ ์ด๋ ๊ตฌํํด๋ณด๋ฉด ๋น ๋ฅด๊ฒ ์ตํ๋ฏํ๋ค.
launch๋ฅผ ์ฌ์ฉํ๋ฉด, character๋ฅผ ๋ ๋ฆด ์ ์๋ค.
์ ์ฌ impulse
Jump Pad์ ์ฌ์ฉํ ์ ์๋ค.
๊ทธ ์ธ์ self๋ก character๋ฅผ ์ค์ ํ ๋ค, Character ํจ์ ๋ถ๋ถ์ ๋ณด๋ฉด,
๋ค๋ฅธ ์ฌ๋ฌ ํจ์๋ค์ด ๋์จ๋ค.
Crouch๋ฅผ ํ๋ฉด, Collision์ด ๋ฎ์์ง๊ณ , ์์ ๋ ๋ฎ์์ง๊ณ , ์ด๋์๋๋ ๋๋ ค์ง๊ฒ ๋๋ค.
crouch ํจ์์ detail์์ ์ธ๋ถ ์กฐ์ ๋ ๊ฐ๋ฅ
CPP์์ ๊ฐ๋จํ MovementMod๋ฅผ ๋ฐ๊ฟ ์๋ ์๋ค.
์ง์ง ์ ๋งํด์๋ BP์ CPP์ ํผ์ฉ์ด ๋ฌธ์ ์์ด ์ค๊ณ๋ ๊ฒ ๊ฐ๋ค.
์ฐพ๊ธฐ๊ฐ ํ๋ค๋ฟ, ๋ชจ๋ ๊ธฐ๋ฅ์ด ๊ตฌํ๋์ด์๋ ๋๋์ด๋ค.
PlayerController์์๋ ๋ง์ฐ์ค๊ด๋ จ๋ ๊ธฐ๋ฅ์ด ์กด์ฌํ๋ค.
Character์์ ํค๋ฐ์ธ๋ฉ์ ํ๊ณ , PlayerController์์๋ ๋ฐ์ธ๋ฉ์ ํ๋ค๋ฉด,
PlayerController๊ฐ ๋ ์ฐ์ ์์๋ก ์คํ๋๋ค.
PlayerController๋ GameMode์ ๋ฐ์ ํ๋ค.
์์ ์ฌ์ง์์ Player State Class๋ ๊ทธ๋ ๊ฒ ์ค์ํ์ง ์๋ค๊ณ ํ๋ค.
์ค์ํ๊ฒ์, GameMode Override์, Game State Class๊ฐ
์๊ฐํ๋ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์๊ฒ ํด์ฃผ๊ธฐ ๋๋ฌธ์ ์ค์ํ๋ค.
๋ชจ๋ ๋ ๋ฒจ์ ํ๋์ ๊ฒ์๋ชจ๋๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด, GameMode์์ Character๋ฅผ ๋ฐ๊ฟ ์๋ ์๋ค.
ํด๋น BP๋
ธ๋๋ค์ BP_NewCharacter๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ค์ ํ๊ณ ,
BP_Character๋ก ๋ฐ๊พธ๋ ๊ธฐ๋ฅ์ด๋ค.
์ฑ๊ธํ๋ ์ด์ด ๊ฒ์์์๋ ํญ์ Player Controller์ธ๋ฑ์ค๊ฐ 0์ธ๋ฏ
๋ฉํฐํ๋ ์ด์์์ ๊ธฐ๋ฅ๋ ๊ฒ์๋ชจ๋์์ ์ค์ ์ด ๊ฐ๋ฅํ๋ค.
BP๋ก GameStateBase๋ฅผ ๋๋ฌ ์์ฑํ๋ค.
๊ธฐ๋ณธ gamestate๋ฅผ BP_GameState๋ก ๋ฐ๊ฟ์ฃผ๋ฉด ์ ์ฉ๋๋ค.
๊น๋จน์ง ๋ง๊ฒ
๋ค์๊ณผ ๊ฐ์ด ๋ง๋ ๋ค.
๊ตณ์ด GameState์์ ๋ง๋ค์ง ์์๋ ๋๋ ๋ถ๋ถ์ธ๊ฑฐ ๊ฐ์๋ฐ ์ ์ฌ๊ธฐ์ ๋ง๋ค์ง
ํด๋น ๊ธฐ๋ฅ์ BeginPlay๊ฐ ๋๋ฉด, ํจ์๋ฅผ Time๋ง๋ค ๋ฐ๋ณตํ์ฌ ์คํํ๋ค. Looping ์ฒดํฌํด์ผํจ
ํด๋น ํจ์๋ TimerPlus๋ก ์ง์๊ณ , ๊ทธ๋ฅ ์ด๋ฒคํธ์ ์ด๋ฆ์ด๋ค.
ํธ์ถ๋๋ฉด Timer๋ผ๋ int ๋ณ์์ ๊ฐ์ด ++๋๋ค.
์ฆ ์ค์ ๋ก 1์ด๋ง๋ค Timer๋ณ์์ ๊ฐ์ด 1์ฉ ์ฆ๊ฐํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ BP_HUD์ ์๊ฐ์ ๋์ฐ๋ ค๊ณ ํ๋ค. Text๋ก ๋ง๋ค์๋ค.
๋ณ์๋ช
์์ is Variable ์ฒดํฌํด์ผํ๋ค.
HUD๊ฐ์ฒด๋ฅผ ๊ฐ์ง๊ณ ์๋๊ฑด BP_PlayerController์๊ณ ,
์ฌ๊ธฐ์ ์ง์ timer int๊ฐ์ ๋ฐ์์ ๋์ฐ๋ ค๊ณ ํ๋ค.
๋ค์๊ณผ ๊ฐ์ด ์ ์ํ๋ค.
Time Update๋ผ๋ event๋ฅผ ์ด๋ฆ์ง์ด๋๊ณ ,
ํด๋น ์ด๋ฒคํธ์ input์ผ๋ก ๋ค์ด์จ int๊ฐ์ ์กฐ๋ฆฌํ์ฌ TimerText์ Text๋ฅผ ์ค์ ํ๋ค.
์กฐ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ 60์ผ๋ก ๋๋ ์ Min์ผ๋ก,
๋๋จธ์ง๋ฅผ Sec์ผ๋ก ํ๋ ๊ฒ์ธ๋ฐ,
Sec์ด 10๋ณด๋ค ์๋ค๋ฉด, ์์ 0์ ๋ถ์ฌ์ 2์๋ฆฌ์ฒ๋ผ ๋์ค๋๋ก ํ๋ค.
์ฌ๊ธฐ์ ๊ฐ์ฅ ์ฃผ๋ชฉํด์ผํ ๊ฒ์ Select์ด๋ค.
๊ธฐ์กด Branch๋ก if๋ฌธ์ ๋ค๋ฃฌ๋ค๋ฉด, ํฐ์ ํ์ผ๋ก ์คํ์์๊ฐ ๊ฒฐ์ ๋์ด์ผ๋ง ํ๋๋ฐ,
Select๋ก ํ๋ฉด, ํด๋น ๊ฐ์ด True์ธ์ง False์ธ์ง์ ๋ฐ๋ผ์
๋ฐํํ ๊ฐ์ด ์ ํด์ง๊ธฐ ๋๋ฌธ์, ์ด๋ฐ๊ฒฝ์ฐ select๋ก ๊น๋ํ๊ฒ ์ธ ์ ์๋ค.
์๋์ ๊ฐ์ด ๋ณด์ด๊ฒ ๋๋ค.
ํ๋ ๋ ์ค์ํ ๊ฒ์, ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ ์ ์๋ค.
None์ธ ๊ฒฝ์ฐ, ๋ณดํต ํด๋น ๊ฐ์ฒด๊ฐ ๋ง๋ค์ด์ง๊ธฐ ์ ์ ์๋ฏธํ๊ณ ,
๋ฌธ์ ๊ฐ ๋๋ ๋ถ๋ถ์ GetValid๋ก ๊ฐ์ด ์๋์ง ํ์ธํ๋ ๋จ์ํ ๊ฒ์ฆ์์ ์ ํตํด์ ์ค๋ฅ๋ฅผ ๋ง์ ์ ์๋ค.
๊ทธ๋์ ์๋์ฒ๋ผ Player Array๋ฅผ Loop๋ฅผ ๋๋ฉฐ, ์ค์ ํด์ค์ผ ํ๋ค๋ ๋ฏ
Game Mode๋ ๋ ๋ฒจ๋น ํ๋๊ฐ ๋ฐ๋์ ์์ด์ผ ํ๋ค๊ณ ํ๋ค.
๊ทธ ์ด์ ๋, Game Mode๊ฐ ๋ ๋ฒจ์ ์ข
์๋์ด์๊ธฐ ๋๋ฌธ์ด๊ณ ,
Game Mode๋ก BP๋ฅผ ๋ง๋ค๊ณ , ๋ณ์๋ฅผ ๋ง๋ค๊ณ ๊ฐ์ ์๋ฌด๋ฆฌ ์ ์ฅํด๋,
๋ค์ ๋ ๋ฒจ๋ก ๊ฐ๋ฉด, ํด๋น ๋ณ์์ ๊ฐ์ ์ด๊ธฐํ๋๊ณ , BeginPlay๋ถํฐ ์์๋๋ค.
Game Instance๋ ํ๋ ์ด์ด ๋น ํ๋๊ฐ ์กด์ฌํ๋ค.
๊ฒ์์ด ์์๋ ๋ ์คํํ๊ณ , ๋๋ ๋ ์ฌ๋ผ์ง๋ค.
๋ ๋ฒจ์ด ๋ฐ๋์ด๋ ๊ฐ์ ๋จ์์๊ฒ ๋๋ค.
์ธ์ด๋ธ๋ก ํ์ผ์ ๊ด๋ฆฌํ๊ฑฐ๋, outside-๋คํธ์ํน ๊ฐ์ ์ค์ํ ๊ธฐ๋ฅ์ ๊ฒฝ์ฐ instance์ ์ฃผ๋ก ๋ฃ๋๋ค.
์ธ๊ฒ์ ๋คํธ์ํน(rpc)์ ๊ตณ์ด ๋ฃ์ ํ์๊ฐ ์๋ค๊ณ ํ๋ค.
์์ง ๋ญ๋ง์ธ์ง ๋ชจ๋ฅด๊ฒ ์
๋ฉํฐํ๋ ์ด์ ๊ฒฝ์ฐ, Game Mode์ Game State ๋ฑ์ ๊ณต์ ํ์ง๋ง,
Game Instance๋ ๊ณต์ ํ์ง ์๋๋ค๊ณ ํ๋ค.