1. ์ธ๋ฆฌ์ผ ์๋ํฐ ๊ตฌ์ฑ
- ๊ฒ์ ์ ์์ ์ํด ์ํฝ ๊ฒ์์ฆ๊ฐ ์ ๊ณตํ๋ ์ ์ ๋๊ตฌ
- ์ธ๋ฆฌ์ผ ์์ง์ ๊ตฌ์ฑ
- ์๋ํฐ : ๊ฒ์ ์ ์์ ์ํด ์ ๊ณต๋๋ ์์ฉ ํ๋ก๊ทธ๋จ (์ผ๋ฐ์ ์ผ๋ก ์ธ์ํ๋ ์ธ๋ฆฌ์ผ ์์ง)
- ๊ฒ์ ๋น๋ : exe ํ์ผ๊ณผ ๋ฆฌ์์ค๋ก ์ด๋ฃจ์ด์ง ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํ๋ ๊ฒ์ ํด๋ผ์ด์ธํธ
- ์ธ๋ฆฌ์ผ ์๋ํฐ์ ํน์ง
- ๊ฒ์ ๊ฐ๋ฐ ์์ ์ ์ํด ๋ค์ํ ํด๋์ ํ์ผ ์ด๋ฆ ๊ท์น์ด ๋ฏธ๋ฆฌ ์ค์ ๋์ด ์๋ค.
- ์ ํด์ง ๊ท์น์ ์ ํ์ ํ๊ณ ํ๋ก์ ํธ ํด๋์ ํ์ผ์ ์ค์ ํด์ผ ํจ
- ์๋ํฐ์์ ๊ธฐํ๊ณผ ๊ฐ๋ฐ์ ์๋ฃํ ํ, ๊ฒ์ ๋น๋๋ฅผ ํตํด ์ต์ข ๊ฒ์ ๋น๋๋ฅผ ์ ์ํ๋๋ก ์ค์
- ์ธ๋ฆฌ์ผ ์๋ํฐ์์ ๊ฒ์์ ๊ตฌ์ฑ ๐ ๊ฒ์ ๋น๋๋ฅผ ์ํํ๊ณ ํ๋ก๊ทธ๋จ์ ํจํค์ง
2. ์ธ๋ฆฌ์ผ ์๋ํฐ์ ๋์
- ํ๋ก์ ํธ ํด๋์ uproject ํ์ฅ์๋ฅผ ๋๋ธํด๋ฆญํ๋ฉด ์๋ํฐ๊ฐ ํธ๋ฆฌ๊ฑฐ ๋จ
- ์๋ํฐ์ ์คํ ๋ฐฉ์
- uproject ํ์ฅ์๋ ์๋์ฐ ๋ ์ง์คํธ๋ฆฌ์ ๋ฑ๋ก๋์ด ์์
- ๋ฑ๋ก์ด ์๋์ด ์๋ค๋ฉด ๋ฐ์ฒ๋ฅผ ์คํํด ๋ฑ๋ก
- UnrealVersionSelector ํ๋ก๊ทธ๋จ์ผ๋ก ํ๋ก์ ํธ ์ ๋ณด๊ฐ ๋๊ฒจ์ง
- UnrealVersionSelector๋ ๋ฐ์ฒ๊ฐ ์ ์ฅํ ์๋ํฐ ์ ๋ณด๋ก๋ถํฐ ๋ฒ์ ์ ๋ง๋ ์๋ํฐ๋ฅผ ์คํํจ
- uproject ํ์ฅ์๋ ์๋์ฐ ๋ ์ง์คํธ๋ฆฌ์ ๋ฑ๋ก๋์ด ์์
- UnrealVersionSelector ์์ค๋ ์ํฝ๊ฒ์์ฆ Github์์ ํ์ธ ๊ฐ๋ฅ
- .uproject ๐UnrealVersionSelector ๐ UnrealEditor
3. ์๋ํฐ ๋ฒ์ ์ ๋ณด์ ํ์
- ํ๋ก์ ํธ .uproject ํ ์คํธ ํ์ผ์ ์ ํด์ ธ์์
- ์ํฝ๊ฒ์์ฆ ๋ฐ์ฒ๋ ํ๋ก๊ทธ๋จ ๋ฐ์ดํฐ ํด๋์ LauncherInstalled.dat ํ์ผ์ ๋ช ๋ฒ์ ์ด ์ด๋์ ์ค์น๋์ด ์๋์ง ์ ์ด๋ณด๊ฐ ์ ์ฅ
- ํ๋ก์ ํธ ํด๋ ์์ฑ ๋ฐ txt ํ์ผ ์์ฑ
- ๋ด์ฉ์ JSON ํ์์ผ๋ก ์๋์ ๊ฐ์ด ์์ฑ
- ํ์ฅ์๋ฅผ uproject๋ก ๋ณ๊ฒฝ
{
"FileViersion" : 3,
"EngineAssociation" : "5.1"
}
- .uproject ํ์ฅ์๋ ์๋ํฐ๋ฅผ ๋์ฐ๊ธฐ ์ํ ๋ช ์ธ์ ์ญํ ์ ํจ
- ํ์ผ์ ๊ธฐ๋ก๋ ๋ฒ์ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์ํฝ ๋ฐ์ฒ๊ฐ ์ง์ ํ ์ ๋ณด๋ฅผ ์ฐพ์ ์๋ํฐ๋ฅผ ์คํํจ
- ProgramData/Epic/UnrealLauncher ํด๋์ ๊ด๋ จ ์ ๋ณด๊ฐ ์์
- ์ด ์ญ์ JSON ํ์์ผ๋ก ์ค์น๋ ์ธ๋ฆฌ์ผ ๋ฒ์ ์ ๋ณด๊ฐ ๊ธฐ๋ก๋์ด ์์
- ์คํํ๋ฉด ์๋์ผ๋ก ํด๋ ์์ฑ
- config : ํ๋ก์ ํธ ์ค์ ์ ํ์ํ ์ ๋ณด ๋ณด๊ด
- content : ์์ ์ ๋ณด๊ด
- derivedDataCache : ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์์
๋ค์ ์ฃผ์ ์ ๋ณด๋ค์ ๋ฏธ๋ฆฌ ์บ์ฑ
- ๋ก๋ฉ์ ๋นจ๋ฆฌํ๋๋ฐ ๋์
- ์ฉ๋์ด ๊ธํด ์ง์๋ ๋์์๋ ๋ฌธ์ ์์
- intermediate : ์์์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ค๊ฐ ๊ฒฐ๊ณผ๋ฌผ๋ค์ ๋ณด๊ด
- ์ฉ๋์ด ํฌ๋ฉด ์ธ์ ๋ ์ง ์ญ์ ํด๋ ๋ฌด๊ด
- saved : ์์๋ก ๋ฌด์ธ๊ฐ๋ฅผ ์ ์ฅ
- ์๋์ ์ผ๋ก ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ง ์์์ผ๋ฉด ์ง์๋ ๋ฌธ์ ์์
4. ๋ธ๋ฃจํ๋ฆฐํธ ํ๋ก์ ํธ
- C++ ์ฝ๋๊ฐ ์๋ ์ธ๋ฆฌ์ผ ํ๋ก์ ํธ
- ์ธ๋ฆฌ์ผ ์์ง์ด ์ ๊ณตํ๋ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ํ์ฉํด ๊ฒ์์ ์ ์ํ๋ ํ๋ก์ ํธ
- ๊ฒ์ ์ ์์ ํ์ํ ๊ธฐ๋ฅ์ ๋ชจ๋ ๋จ์๋ก ์ ๊ณต
- ๋ชจ๋์ ์์๋ฐ์ ๋ธ๋ฃจํ๋ฆฐํธ๋ฅผ ํ์ฉํด ๋ชจ๋ ๊ธฐ๋ฅ๊ณผ ๋ก์ง์ ๊ตฌํ
- ์ธ๋ฆฌ์ผ ์์ง C++ ๋ชจ๋์ ๊ฐ๋ฐ์๊ฐ ์ถ๊ฐ๋ก ์์ ๋ง์ C++ ๋ชจ๋์ ์ถ๊ฐํ ์ ์์
๐ฉ ์ธ๋ฆฌ์ผ C++ ๋ชจ๋
- ์ธ๋ฆฌ์ผ ์์ง์ ์์ค ์ฝ๋๋ ๋ชจ๋ ๋ชจ๋ ๋จ์๋ก ๊ตฌ์ฑ
- ๋ชจ๋์ ์ปดํ์ผํด ์๋ํฐ ๋ฐ ๊ฒ์์ ์ฐ๋ฆฌ๊ฐ ์ ์ํ ๋ก์ง ๊ณต๊ธ ๊ฐ๋ฅ
- ๋ชจ๋ ๋จ์๋ก ๊ตฌ์ฑ๋ C++ ์์ค ์ฝ๋๋ฅผ ์ปดํ์ผํ ๊ฒฐ๊ณผ๋ฌผ
- ์๋ํฐ ์ฉ์ผ๋ก DLL ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ๊ฒ์ ์ฉ์ผ๋ก ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ์๋ํฐ ์ฉ ๋ชจ๋์ ํญ์ UnrealEditor-{๋ชจ๋์ด๋ฆ}.DDL ์ด๋ฆ ๊ท์น
๐ฉ ์ธ๋ฆฌ์ผ C++ ๋ชจ๋ ์ถ๊ฐ
- ์ง์ ์ ์ํ C++ ๋ชจ๋์ ์๋ํฐ์ ์ถ๊ฐ ๊ฐ๋ฅ
- ์๋ํฐ ๋ชจ๋์ ๋น๋ ํด๋์ ๋ฃ์ด์ค์ผ ํจ
- Windows์ ๊ฒฝ์ฐ Binaries/Win64 ํด๋์ ํด๋น DLL์ ๋ฃ์ด์ผ ํจ
- ๋น๋๋ ๋ชจ๋ ๋ชฉ๋ก์ ์๋ UnrealEditor.modules ํ์ผ๋ ๊ฐ์ ํด๋์ ๋ฃ์ด์ค์ผ ์ธ์๋จ
- uproject ๋ช ์ธ์์ ๋ชจ๋ ์ด๋ฆ์ ์ง์ ํ๊ณ ์๋ํฐ๋ฅผ ์คํ
{
"FileVersion" : 3,
"EngineAssociation" : "5.1"
"Modules" : [
{
"Name" : "๋ชจ๋์ด๋ฆ"
"Type" : "Runtime"
}
]
}
๐ฉ ๋ชจ๋ C++ ์ฝ๋ ๊ด๋ฆฌ
- ์ธ๋ฆฌ์ผ ํ๋ก์ ํธ๊ฐ ์์ค ์ฝ๋๋ฅผ ๊ด๋ฆฌํ๋ ๊ท์น์ ๋ฐ๋ผ ์์ค ์ฝ๋ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํด์ผ ํจ
- ์์ค ์ฝ๋๋ ๋ฉํฐ ํ๋ซํผ ๋น๋ ์์คํ ์ ์ง์ํ๊ธฐ ์ํด ํน์ ํ๋ก๊ทธ๋จ์ ์ข ์๋์ด ์์ง ์์
- ์ค์ ๋น๋๋ฅผ ์งํํ๋ ์ฃผ์ฒด : Unreal Bulid Tool ์ด๋ผํ C# ํ๋ก๊ทธ๋จ
- Source ํด๋์ ์ง์ ๋ ๊ท์น๋๋ก ์์ค๋ฅผ ๋ฃ์ผ๋ฉด ํ๋ซํผ์ ๋ง์ถฐ์ ์์์ ์ปดํ์ผ ์งํ
๐ฉ Source ํด๋ ๊ตฌ์กฐ
- Source ํด๋
- ํ๊ฒ ์ค์ ํ์ผ
- ๋ชจ๋ ํด๋ (๋ณดํต์ ํ๋ก์ ํธ ์ด๋ฆ์ผ๋ก ๋ชจ๋ ์ด๋ฆ ์ง์ )
- ๋ชจ๋ ์ค์ ํ์ผ
- ์์ค ์ฝ๋ ํ์ผ (.h ๋ฐ .cpp ํ์ผ)
- ํ๊ฒ ์ค์ ํ์ผ : ์ ์ฒด ์๋ฃจ์
์ด ๋ค๋ฃฐ ๋น๋ ๋์์ ์ง์
- {ํ๋ก์ ํธ์ด๋ฆ}.Target.cs : ๊ฒ์ ๋น๋ ์ค์
- {ํ๋ก์ ํธ์ด๋ฆ}Editor.Target.cs : ์๋ํฐ ๋น๋ ์ค์
- ์๋ฒ์ ๊ฐ์ ๋ค๋ฅธ ์ค์ ํ์ผ๋ ์์
- ๋ชจ๋ ์ค์ ํ์ผ : ๋ชจ๋์ ๋น๋ํ๊ธฐ ์ํ C++ ํ๋ก์ ํธ ์ค์ ์ ๋ณด
- {๋ชจ๋์ด๋ฆ}.Bulid.cs : ๋ชจ๋์ ๋น๋ํ๊ธฐ ์ํ ํ๊ฒฝ ์ค์
- C#์ ์คํ ์ค์ ์ฝ๋๋ฅผ ๋ฐ๋ก ์ปดํ์ผํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ํ ์ ์๋ ๊ธฐ๋ฅ์ด ์์(complie on-the-fly)
- ์ด ๊ธฐ๋ฅ์ ์ด์ฉํ๊ธฐ ์ํด C# ํ์ผ๋ก ์ค์ ์ ์ง์
๐ฉ ๊ฒ์ ํ๋ก์ ํธ์ ์์ค
- ๋ชจ๋์ ๊ตฌํํ ํค๋์ ์์ค ํ์ผ์ด ์์ด์ผ ํจ
- ์ฃผ๋ก {๋ชจ๋์ด๋ฆ}.h์ {๋ชจ๋์ด๋ฆ}.cpp๋ก ์ง์
- ๋ชจ๋์ ๋ผ๋๋ฅผ ์ ์ํด์ฃผ๋ ๋งคํฌ๋ก ์ง์
- IMPLEMENT_MODULE : ์ผ๋ฐ ๋ชจ๋
- ๊ฒ์๊ณผ๋ ์ง์ ์ฐ๊ด์ ์์ง๋ง ์ ์ฉํ ๊ธฐ๋ฅ์ ์ ๊ณต
- IMPLEMENT_GAME_MODULE : ๊ฒ์ ๋ชจ๋
- ๊ฒ์ ์ ์ ๊ด๋ จ ๋ชจ๋
- IMPLEMENT_PRIMARY_GAME_MODULE : ์ฃผ ๊ฒ์ ๋ชจ๋
- ๊ฒ์ ์ ์์ ๊ฐ์ฅ ์ค์ฌ์ด ๋๋ ์ ์ฒด์ ์ธ ๊ฒ์ ๋์ํ๋๋ฐ ์ฌ์ฉํ๋ ๋ก์ง์ ๋ชจ์๋ ๋ชจ๋
- IMPLEMENT_MODULE : ์ผ๋ฐ ๋ชจ๋
- ์ผ๋ฐ์ ์ผ๋ก ๊ฒ์ ํ๋ก์ ํธ๋ ์ฃผ ๊ฒ์ ๋ชจ๋์ ํ๋ ์ ์ธํด์ผ ํจ
- ์ธํ
์ ๊ฐ์ถ ํ uproject ํ์ผ์ ์ฐํด๋ฆญํด์ Generate Visual Studio project files. ๋ฉ๋ด๋ฅผ ์ ํ
- Unreal Version Selector ํ๋ก๊ทธ๋จ์ด ์์์ ์ธ๋ฆฌ์ผ ๋น๋ ํด์ ๊ฐ๋ํด์ Intermediate ํด๋์ ๊ด๋ จ๋ ํ๋ก์ ํธ ํ์ผ์ ์๋์ผ๋ก ์์ฑํด ์ค
- Source ํด๋๋ฅผ ๊ท์น์ ๋ง๊ฒ ๊ตฌ์ฑํ๋ฉด Intermediate ํด๋๋ ์ธ์ ๋ ์ง ์ฌ์์ฑ ๊ฐ๋ฅ
๐ฉ ๋ชจ๋ ๊ฐ์ ์ข ์ ๊ด๊ณ
- ๋ชจ๋ ์ฌ์ด์ ์ข ์ ๊ด๊ณ๋ฅผ ์ค์ ํด ๋ค์ํ ๊ธฐ๋ฅ์ ๊ตฌํ
- ์ฐ๋ฆฌ๊ฐ ๋ง๋๋ ๋ชจ๋๋ ์ธ๋ฆฌ์ผ ์์ง์ด ๋ง๋ ๋ชจ๋์ ํ์ฉํด์ผ ํจ
- ์ธ๋ฆฌ์ผ ์์ง์ด ์ ๊ณตํ๋ ๋ชจ๋ ์ฌ์ด์๋ ์ข ์ ๊ด๊ณ๊ฐ ์์
- ํ๋์ ๋ชจ๋์ ๋๋ฌด ๋ง์ ์ฝ๋๊ฐ ๋ค์ด๊ฐ๋ฉด ์ธ๋ฆฌ์ผ ์์ง์ ๋น๋ ๋ฐฉ์์ ๋ณ๊ฒฝ
- ํ๋ก์ ํธ๊ฐ ์ปค์ง ์๋ก ๋ชจ๋์ ๋๋ ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ ๋ฆฌ
๐ฉ ๋ชจ๋์ ๊ณต๊ฐ์ ์ฐธ์กฐ
- ๋ชจ๋ ๋ด ์์ค๋ฅผ ํ์ํ ๋งํผ๋ง ๊ณต๊ฐํด์ผ ๋ชจ๋ ๊ฐ ์์กด์ฑ์ ์ค์ด๊ณ ์ปดํ์ผ ํ์์ ์ต์ํ ํ ์ ์์
- ๊ณต๊ฐํ ํ์ผ์ ๋ชจ๋ Public ํด๋๋ก
- ๋น๊ณต๊ฐ ํ์ผ์ ๋ชจ๋ Private ํด๋๋ก
- ์ธ๋ถ๋ก ๊ณต๊ฐํ ํด๋์ค ์ ์ธ์๋ {๋ชจ๋์ด๋ฆ}_DLL ๋งคํฌ๋ก
- ์๋ธ ๋ชจ๋ ์ค์ ์ ์๋ฃํ๋ฉด ์ฃผ๊ฒ์ ๋ชจ๋์ Bulid.cs ์ค์ ์์ ์๋ธ ๋ชจ๋์ ์ด๋ฆ์ ๋ฃ์ด์ฃผ๋ฉด ๋จ
5. ํ๋ฌ๊ทธ์ธ ๊ตฌ์กฐ
- ํ๋ฌ๊ทธ์ธ : ๋ค์์ ๋ชจ๋๊ณผ ๊ฒ์ ์ฝํ ์ธ ๋ฅผ ํฌํจํ๋ ํฌ์ฅ ๋จ์
- ์๋ํฐ ์ค์ ์ ํตํด ์ ์ฐํ๊ฒ ํ๋ฌ๊ทธ์ธ ์ถ๊ฐ ์ญ์ ๊ฐ๋ฅ
- ํ๋ฌ๊ทธ์ธ ๊ตฌ์กฐ
- ํ๋ฌ๊ทธ์ธ ๋ช ์ธ์ (uplugin ํ์ผ)
- ํ๋ฌ๊ทธ์ธ ๋ฆฌ์์ค (Resource ํด๋, ์๋ํฐ ๋ฉ๋ด์ฉ ์์ด์ฝ)
- ์ฝํ ์ธ
- ๋ชจ๋ ํด๋
- Plugins ํด๋๋ฅผ ๋ง๋ค์ด์ค์ผ ํจ
- ์๋ํฐ ๋ฉ๋ด๋ฅผ ํตํด์๋ uplugin ํ์ผ ์ถ๊ฐ ๊ฐ๋ฅ
- ๋ด๋ถ ๊ตฌ์กฐ๋ ์๋์ ๊ฐ์ ๋ฐฉ์
{
"FileVersion": 3,
"Version": 1,
"VersionName": "1.0",
"FriendlyName": "GameUtility",
"Modules": [
{
"Name": "CommonUtility",
"Type": "Runtime",
"LoadingPhase": "Default"
}
]
}
6. ๊ฒ์ ๋น๋
- ๊ฒ์ ํ๊ฒ ์ค์ ์ ์ถ๊ฐํ๋ฉด ๊ฒ์ ๋น๋ ์ต์ ์ด ์ถ๊ฐ
- ๊ฒ์ ํ๊ฒ์ผ๋ก ๋น๋๋ ๋ชจ๋์ ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์คํ ํ์ผ์ ํฌํจ
- ๊ฒ์์ด ์คํ๋๊ธฐ ์ํด์๋ ์คํ ํ์ผ๊ณผ ์ฝํ ์ธ ์์ ์ด ํจ๊ป ์์ด์ผ ํจ
- ๋น๋ : ์คํ ํ์ผ์ ์์ฑํ๊ธฐ ์ํ ์ปดํ์ผ
- ์ฟ ํน : ์ง์ ํ ํ๋ซํผ์ ๋ง์ถฐ ์ฝํ ์ธ ์์ ์ ๋ณํํ๋ ์์
- ํจํค์ง : ์ด๋ค์ ๋ชจ๋ ๋ชจ์์ ํ๋์ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ง๋๋ ์์
- ํ๊ฒ ์ค์ ์ถ๊ฐ
- Shipping ๋น๋๊ฐ ๋ฐฐํฌํ ์ต์ข ๊ฒ์์ ์ฝ๋๋ฅผ ๋ง๋๋ ์์
์ฐธ๊ณ ์๋ฃ
'โ๏ธ ์์ง > ๐ซ ์ธ๋ฆฌ์ผ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Unreal] ์ธ๋ฆฌ์ผ ์์ง ๊ฒ์ ์ ์ ๊ธฐ์ด (0) | 2024.05.14 |
---|---|
[Unreal] ์ธ๋ฆฌ์ผ C++ ํ์ต๋ฐฉ๋ฒ (0) | 2024.05.14 |
[Unreal] ์ธ๋ฆฌ์ผ ์ค๋ธ์ ํธ ๊ด๋ฆฌ2 - ํจํค์ง (0) | 2024.05.08 |
[Unreal] ์ธ๋ฆฌ์ผ ์ค๋ธ์ ํธ ๊ด๋ฆฌ1 - ์ง๋ ฌํ (0) | 2024.05.08 |
[Unreal] ์์ํด์ ์ธ๋ฆฌ์ผ 2024 - 1. ๋ ๋ฒจ ์ ์ํ๊ธฐ (0) | 2024.05.05 |