๐ Game
![[Unreal] ๊ฒ์ํ๋ ์ด ํ๋ ์์ํฌ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNOl4g%2FbtsAvrv3Nj2%2FkaJeA1L5LmvW91GKzxmLmk%2Fimg.png)
[Unreal] ๊ฒ์ํ๋ ์ด ํ๋ ์์ํฌ
1. ์ธํฐ๋ํฐ๋ธ ๊ฒฝํ ์ ์ํ๋ ์ด์ด์ ์๋ ๊ฐ์ ์ํํ ์ธํฐ๋์ ์ ๊ตฌํํ ์ ์๋๋ก ์ธ๋ฆฌ์ผ ์์ง์์๋ ๊ธฐ๋ณธ ๊ฒ์ํ๋ ์ด ํ๋ ์์ํฌ ์ธ์๋ AI, ํผ์ง์ค ๋ฑ ์ผ๋ฐ์ ์ธ ๊ฒ์ํ๋ ์ด ์๋ฆฌ๋จผํธ๋ฅผ ๋ค๋ฃจ๋ ๋ค์ํ ์์คํ ๊ณผ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํ๋ค. 2. ๊ฒ์ํ๋ ์ด ํ๋ ์์ํฌ๊ฒ์ํ๋ ์ด ํ๋ ์์ํฌ๋ ๊ณตํต ๊ฒ์ํ๋ ์ด ์์๋ฅผ ์ฒ๋ฆฌํ๋ ํต์ฌ ์์คํ ๋ฐ ํ๋ ์์ํฌ๊ฐ ํฌํจ๋์ด ์๋ค.์กํฐ, ์ปดํฌ๋ํธ์นด๋ฉ๋ผ์ปจํธ๋กค๋ฌ๊ฒ์ ๊ท์น๊ฒ์ ๋ชจ๋ํ๋ ์ด์ด ์ ๋ ฅ๊ฒ์ํ๋ ์ด ํ์ด๋จธ์ ์ ์ธํฐํ์ด์ค ๋ํ ์ธ๋ฆฌ์ผ์์๋ ์์ ์์๋ค์ ์ฐ๊ฒฐํ์ฌ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ธฐ๋ ํ๋ค.์ ๋ ฅ ์ฒ๋ฆฌ๋ฌผ๋ฆฌ ์๋ฌผ๋ ์ด์ ์ธ๊ณต ์ง๋ฅ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ๊ฒ์ํ๋ ์ด ํ๊ทธ ์์คํ ๊ฒ์ํ๋ ์ด ์ด๋น๋ฆฌํฐ ์์คํ UI ์ ์ ์์คํ ๋ฉํฐํ๋ ์ด ์ง์ 3. ๊ฒ์ ๋ชจ๋๊ฒ์ ๋ชจ๋๋ ๊ฒ์์ ๊ท์น์ ๊ฒฐ์ ํ๊ณ ์ ๋ณด๋ฅผ ์ฒ๋ฆฌํ๋ ..
![[Math] ์ ๊ทํ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8Lglg%2FbtsvktLC5WS%2Fvv4zvOaP3KhmMA05S5F2jk%2Fimg.png)
[Math] ์ ๊ทํ
์ ๊ทํ ์ฌ์ ์ ์๋ฏธ์ ์ ๊ทํ๋ ์ด๋ค ๋์์ ์ผ์ ํ ๊ท์น์ด๋ ๊ธฐ์ค์ ๋ฐ๋ฅด๋ ์ ๊ท์ ์ธ ์ํ๋ก ๋ฐ๊พธ๊ฑฐ๋, ๋น์ ์์ ์ธ ๋์์ ์ ์์ ์ผ๋ก ๋๋๋ฆฌ๋ ๊ณผ์ ์ ๋ปํ๋ค. ๊ฐ์ฅ ๋ํ์ ์ธ ์ ๊ทํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทํ๊ฐ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ฒ์ ์ํ์์์ ์ ๊ทํ๋ ํด๋น ๋ฒกํฐ์ ๋ฐฉํฅ์ ์ ์งํ ์ฑ ํฌ๊ธฐ๊ฐ 1์ธ ๋จ์ ๋ฒกํฐ๋ก ๋ง๋๋ ๊ณผ์ ์ด๋ค. ๋จ์ ๋ฒกํฐ๋ฅผ ํ์ฉํ๋ ์ด์ ๋ ๋ ๊ฐ ์ด์์ ๋ฒกํฐ๋ฅผ ์ฐ์ฐํ ๋ ์ข ๋ ๋จ์ํ๊ฒ ๋ค๋ฃฐ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ฅผ ๋ค์ด ๊ฒ์์์๋ ์บ๋ฆญํฐ์ ์ด๋๊ณผ ๋ฐฉํฅ์ ์ฌ์ฉํ๊ฑฐ๋ ์ขํ๋ฅผ ์ ๊ทํํ์ฌ ๋ณํํ ๋ ์ฌ์ฉํ ์ ์๋ค. ๋ฒกํฐ v๋ ํฌ๊ธฐ ||v||์ ๋ฐฉํฅ์ ๋ํ๋ด๋ ๋จ์ ๋ฒกํฐ u์ ๊ณฑ์ผ๋ก ํํํ ์ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ์ ๊ทํ๋ฅผ ํ๊ธฐ ์ํด ๋จ์ ๋ฒกํฐ๋ก ๋ง๋ค๊ธฐ ์ํด์๋ ๋ฒกํฐ๋ฅผ ๊ทธ ํฌ๊ธฐ๋งํผ ๋๋๋ฉด ๋๋ค. ์ด๋ฅผ ์ค์ 3์ฐจ์..
![[Unreal][C++] Pawn ํด๋์ค](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcRApVs%2FbtssfRhZDTX%2FL2NFKT08W14LkPFDt4VzWk%2Fimg.png)
[Unreal][C++] Pawn ํด๋์ค
Pawn ํด๋์คPawn ํด๋์ค๋ ํ๋ ์ด์ด๋ AI์ ์ปจํธ๋กค๋ฌ๊ฐ ์ฐ๊ฒฐ๋์ด ์ ์ด๋ฐ์ ์ ์๋๋ก ์ค๊ณ๋ ํด๋์ค๋ฅผ ์๋ฏธํ๋ค. 1) ์ด๊ธฐํ์์ฑํ Pawn ํด๋์ค์ ๊ฒ์์ด ์์๋์์ ๋ ํ๋ ์ด์ด์ ์ ๋ ฅ์ ๋ฐ์ํ๋๋ก ์ค์ ํ ๊ฒ์ด๋ค.AutoPossessPlayer: ๋ ๋ฒจ์ด ์์๋๊ฑฐ๋ ํฐ์ด ์์ฑ๋์์ ๋ ์๋์ผ๋ก ํฐ์ ์์ ํด์ผ ํ๋ ํ๋ ์ด์ด ์ปจํธ๋กค๋ฌ๋ฅผ ๊ฒฐ์ ํ๋ค.AMyPawn::AMyPawn(){ // Set this pawn to call Tick() every frame. You can turn this off to improve performance if you don't need it. PrimaryActorTick.bCanEverTick = true; AutoPossessPlayer = EAu..
[Unreal][C++] ํ์ด๋จธ
1. ํ์ด๋จธํ์ด๋จธ๋ ์ฌ์ฉ์๊ฐ ์ ์ํ ์๊ฐ๋ง๋ค ์ฌ์ฉ์๊ฐ ์ง์ ํ ๋์์ด ์คํ๋๋๋ก ํ๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ Tick ํจ์์์ DeltaTime ๊ฐ์ ํตํด ๊ตฌํํ ์๋ ์๋ค. ๊ทธ๋ฌ๋ ์ง์ ํ ๋์์ด ์ง์์ ์ผ๋ก ์คํ๋์ง ์๊ณ , ํน์ ํ ์๊ฐ์๋ง ๋ช ๋ฒ ์คํ๋๊ฑฐ๋, ํ ์ด 1์ด๋ฅผ ๋๋ ๊ฒฝ์ฐ๋ผ๋ฉด Tick ํจ์๋ณด๋ค ํ์ด๋จธ๋ฅผ ์ด์ฉํ๋ ๊ฒ์ด ์ข๋ค. 2. ํ์ด๋จธ ๊ด๋ฆฌํ์ด๋จธ๋ ๊ธ๋ก๋ฒ TimerManager์์ ๊ด๋ฆฌํ๋ฉฐ ๊ฒ์ ์ธ์คํด์ค ์ค๋ธ์ ํธ์ ๊ฐ ์๋์ ์กด์ฌํ๋ค. TimerManager๋ฅผ ํตํด ํ์ด๋จธ๋ฅผ ๊ฐ์ ธ์ ์ฌ์ฉํ๊ฑฐ๋ ์ข ๋ฃ์ํฌ ์ ์๋ค. 1) ์ฌ์ฉSetTimer ํจ์๋ฅผ ํตํด ๋๋ ์ด ํ ํจ์๋ ๋ธ๋ฆฌ๊ฒ์ดํธ๋ฅผ ํธ์ถํ๋ ํ์ด๋จธ๋ฅผ ์ค์ ํ๊ฑฐ๋ ๊ทธ ํจ์ ํธ์ถ์ ๋ฌดํ ๋ฐ๋ณตํ๋๋ก ์ค์ ํ ์ ์๋ค.GetWorldTimerManager().SetTi..
![๋จธํฐ๋ฆฌ์ผ(Material)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmLofX%2Fbtsp6rzoFD7%2FJlT1kCmSVy5XgeeKSnBAs1%2Fimg.png)
๋จธํฐ๋ฆฌ์ผ(Material)
1. Material ๋จธํฐ๋ฆฌ์ผ์ด๋ ์ค๋ธ์ ํธ์ ๋งต์ ์ํ๋ ๋ชจ์์๋ฅผ ๋ด๋ ๋ฐ ์์ด ๊ฐ์ฅ ํต์ฌ์ ์ธ ๋ถ๋ถ ์ค ํ๋๋ก ์ฌ์ฉ๋๋ ํ ์ค์ณ์ ๋ํ ํ๋ฉด ๋ ๋๋ง ๋ฐฉ๋ฒ์ ์ ์์ด๋ค. 2. Material Parameter ๊ธฐ๋ณธ ํ ์ค์ณ ์ด๋ฏธ์ง(Albedo, Base Color)๋ง ์ฌ์ฉํ๋ค๋ฉด ๋จ์ํ ์ด๋ฏธ์ง๋ง์ ๋ ธ์ถํ์ง๋ง, ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๊ฑฐ์ ๋ชจ๋ ํ์ค ์ธ๊ณ ํ๋ฉด์ ์ธ์์ ํํํ ์ ์๋ค. 1) Metallic ํ๋ฉด์ ๋ฐ์ฌ๋ ๋ฐ ๊ด์ ๋ฐ์์ผ๋ก ํ๋ผ๋ฏธํฐ์ ๋ฐ๋ผ ํ๋ฉด์ด ์ผ๋ง๋ ๊ธ์ ๊ฐ์์ง๋ฅผ ๊ฒฐ์ ํ๋ค. 2) Normal ๊ด์์ ๋ฐ๋ ๋ฒํ, ํ ๋ฐ ์คํฌ๋์น ๋ฑ์ ํ๋ฉด ๋ํ ์ผ์ ๋ชจ๋ธ์ ์ถ๊ฐํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ค. ์๋ฅผ ๋ค์ด ์ค์ ๋ชจ๋ธ๋ง์ผ๋ก ํ๊ณผ ๋์ฌ๋ฅผ ํํํ๋ ๊ฒ์ด ์๋ ๋ ธ๋ฉ ๋งต์ผ๋ก ํํํ ์ ์๋ค. ๋ง์ฝ ์ค์ ์ง์ค๋ฉํธ๋ฆฌ๋ก ๋ชจ..
![[Unreal] ๋ฌผ๋ฆฌ ์์ง](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeLxPhB%2FbtsEQKYmzGJ%2FgyCaLO58MikxNQzVbVAk1K%2Fimg.png)
[Unreal] ๋ฌผ๋ฆฌ ์์ง
๋ฌผ๋ฆฌ ์์ง ์ด๋, ๋ํ, ๋ฐ์ฌ, ์ํธ ์์ฉ, ๊ด์ฑ, ๋ง์ฐฐ ๋ฑ ๋ฌผ๋ฆฌ๋ฅผ ๊ฒ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ํ๋ํ๋ ๊ฐ๋ฐํ๊ธฐ์๋ ๊ฐ๋ฐ ๊ธฐ๊ฐ์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ฆฐ๋ค. ๊ทธ๋์ ๋ฌผ๋ฆฌ ์์ง์ด๋ผ๋ ๋ณ๋์ ๊ฐ์ฒด ์ญํ ๊ณ์ฐ ๋ชจ๋์ ํ์ฉํ๋ค. ๋ฌผ๋ฆฌ ์์ง์ ์ค์ ์ญํ์ ์ต๋ํ ์ ํํ๊ฒ ์ฌํํ๋ ๊ฒ์ ์ถ๊ตฌํ๋ค. ๋ฌผ๋ฆฌ ์์ง์ ์ฑ๋ฅ๊ณผ ๋ฅ๋ ฅ์ ๊ต์ฅํ ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๊ณ ์์ง๋ง, ๋ฏธํกํ ๋ถ๋ถ์ด ์์ง ์กด์ฌํ๋ค. ์ฌํ์ฑ: ๋ช ๋ฒ์ ์คํํด๋ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ณ ์ ํ ๋๋ ๋ฌผ๋ฆฌ ์์ง์ด ์ ํฉํ์ง ์๋ค. ์ ์ด์ฑ: ํผ์ง์ค ์๋ฎฌ๋ ์ด์ ์ ํ๊ณผ ํ ํฌ๋ฅผ ์ฌ์ฉํด ๊ฐ์ฒด๋ฅผ ์์ง์ด๊ธฐ ๋๋ฌธ์ ์ด๋ค ๊ฒฐ๊ณผ๊ฐ ๋์ฌ์ง ์์ธกํ๊ธฐ๊ฐ ํ๋ค๋ค. ์ฆ, ์ ์ด์ฑ์ด ๊ต์ฅํ ๋ฎ๋ค. ์ ๋ฐํ ์๋ฎฌ๋ ์ด์ : ์ ๋ฐํ ์๋ฎฌ๋ ์ด์ ์ด ํ์ํ๋ค๋ฉด ์ง์ ๊ตฌํํ๋ ๊ฒ์ด ์ข๋ค. ์ด์ฒ๋ผ ๋ฌผ๋ฆฌ ์์ง์ CPU ์ฒ๋ฆฌ ๋ฅ๋ ฅ๊ณผ ์์ ์ ๋ฐ๋ผ ..