1. μΈν°λν°λΈ κ²½ν μ μ
νλ μ΄μ΄μ μλ κ°μ μνν μΈν°λμ μ ꡬνν μ μλλ‘ μΈλ¦¬μΌ μμ§μμλ κΈ°λ³Έ κ²μνλ μ΄ νλ μμν¬ μΈμλ AI, νΌμ§μ€ λ± μΌλ°μ μΈ κ²μνλ μ΄ μ리먼νΈλ₯Ό λ€λ£¨λ λ€μν μμ€ν κ³Ό νλ μμν¬λ₯Ό μ 곡νλ€.
2. κ²μνλ μ΄ νλ μμν¬
κ²μνλ μ΄ νλ μμν¬λ κ³΅ν΅ κ²μνλ μ΄ μμλ₯Ό μ²λ¦¬νλ ν΅μ¬ μμ€ν λ° νλ μμν¬κ° ν¬ν¨λμ΄ μλ€.
- μ‘ν°, μ»΄ν¬λνΈ
- μΉ΄λ©λΌ
- 컨νΈλ‘€λ¬
- κ²μ κ·μΉ
- κ²μ λͺ¨λ
- νλ μ΄μ΄ μ λ ₯
- κ²μνλ μ΄ νμ΄λ¨Έ
- μ μ μΈν°νμ΄μ€
λν μΈλ¦¬μΌμμλ μμ μμλ€μ μ°κ²°νμ¬ λ€μκ³Ό κ°μ κΈ°λ₯μ μ 곡νκΈ°λ νλ€.
- μ λ ₯ μ²λ¦¬
- 물리 μλ¬Όλ μ΄μ
- μΈκ³΅ μ§λ₯
- λ°μ΄ν° λ μ§μ€νΈλ¦¬
- κ²μνλ μ΄ νκ·Έ μμ€ν
- κ²μνλ μ΄ μ΄λΉλ¦¬ν° μμ€ν
- UI μ μ μμ€ν
- λ©ν°νλ μ΄ μ§μ
3. κ²μ λͺ¨λ
κ²μ λͺ¨λλ κ²μμ κ·μΉμ κ²°μ νκ³ μ 보λ₯Ό μ²λ¦¬νλ μ‘ν°μ΄λ€.
κ²μ λͺ¨λμ ν¬ν¨λλ κ·μΉμ λ€μκ³Ό κ°λ€. μ΄λ¬ν κ·μΉμ νΉμ§μ κ²μ μ€μ λ³νμ§ μμ μ 보λ€μ΄λΌλ κ²μ΄λ€. λ³κ²½λ μ μλ μ 보λ€μ κ²μ λͺ¨λμμ κ΄λ¦¬λμ§ μλ κ²μ΄ μ’λ€.
- μ‘΄μ¬νλ νλ μ΄μ΄μ κ΄λμμ μλ λ¬Όλ‘ , νμ©λ νλ μ΄μ΄μ κ΄λμ μ΅λ μ
- νλ μ΄μ΄κ° κ²μμ λ€μ΄μ€λ λ°©μ, μ€ν° μμΉ μ ν κ·μΉκ³Ό κΈ°ν μ€ν°/리μ€ν° λμ ν¬ν¨ κ°λ₯
- κ²μ μΌμμ μ§ κ°λ₯ μ¬λΆ, κ²μ μΌμμ μ§ μ²λ¦¬ λ°©μ
- λ 벨 κ°μ μ ν, κ²μμ μλ€λ§ν± λͺ¨λ μμ μ¬λΆ ν¬ν¨
1) AGameModeBase
νλ μ΄μ΄μ μ, κ·Έ νλ μ΄μ΄κ° κ²μμ μ°Έμ¬νλ λ°©μ λ±μ κΈ°λ³Έμ μΈ μμλ€μ μ¬λ¬ μ νμ κ²μμ 곡ν΅μ΄μ§λ§, μ΄λ€ κ²μμ κ°λ°νλμ§μ λ°λΌ 무νλμ κ·μΉ λ³κ²½μ΄ κ°λ₯νλ€. κ·Έ κ·μΉμ΄ 무μμ΄λ μ μμ ꡬνμ κ²μ λͺ¨λμμ νλ€.
AGameModeBaseλ λͺ¨λ κ²μ λͺ¨λμ λ² μ΄μ€ ν΄λμ€λ‘ μΈλ¦¬μΌ λ²μ 4.14 μ΄μ μ κ²μ λͺ¨λ λ² μ΄μ€ ν΄λμ€μλ AGameModeλ₯Ό λ¨μνμν€κ³ ν¨μ¨νμν¨ λ²μ μ΄λ€. μ΄μ AGameModeλ AGameModeBaseμ μλΈ ν΄λμ€μ΄λ©° κ²μ νμ, λ―Έμ μ ν, νΉλ³ μ§μ κ·μΉ λ±μ λ°λΌ μ¬λ¬ κ²μ λͺ¨λλ₯Ό μμ±ν μ μλ€.
2) κ²μ λͺ¨λ μ€μ
νμ¬ νλ‘μ νΈκ° μ΄λ€ κ²μ λͺ¨λλ₯Ό λ°λ₯΄κ³ μλμ§λ νλ‘μ νΈ μΈν μμ νμΈν μ μλ€.
- κΈ°λ³Έ κ²μλͺ¨λ
- λν΄νΈλ GameModeBase κ²μ λͺ¨λμ΄λ€.
- μ¬μ©μκ° μ§μ κ²μ λͺ¨λλ₯Ό μ§μ ν΄ μ€ μ μλ€.
- λν΄νΈ ν° ν΄λμ€
- ν°μ 컨νΈλ‘€λ¬λ‘ μ‘°μ’ κ°λ₯ν μ‘ν°μ΄λ€.
- κ²μνλ μ΄ λͺ¨λμ μ§μ νλ©΄ λν΄νΈ ν° ν΄λμ€λ‘ μ€μ λ ν°μ΄ μ€ν°λκ³ μ»¨νΈλ‘€λ¬μ λΉμλλ€.
- HUD ν΄λμ€
- HUDλ νλ μ΄μ΄μ μν λ±μ νλ©΄ μμ λ ΈμΆμν€λ κΈ°λ³Έμ μΈ μΈν°νμ΄μ€μ΄λ€.
- μ°Έκ³ λ‘ HUD보λ€λ μΈλ¦¬μΌ λ²μ 4λΆν° λ±μ₯ν UMG μ¬μ©μ΄ κΆμ₯λκ³ μλ€.
- νλ μ΄μ΄ 컨νΈλ‘€λ¬ ν΄λμ€
- 컨νΈλ‘€λ¬λ ν° λλ μΊλ¦ν°λ₯Ό μ§μ μ μ΄νλ ν΄λμ€μ΄λ€.
- νλ μ΄μ΄κ° μ§μ μ‘°μ’ νλ νλ μ΄μ΄ 컨νΈλ‘€λ¬, μ»΄ν¨ν°κ° μ‘°μ’ νλ AI 컨νΈλ‘€λ¬λ‘ ꡬλΆλλ€. νλ μ΄μ΄ 컨νΈλ‘€λ¬λ νλ μ΄μ΄μ μ λ ₯μ ν°μ΄ μ§μ λ°λ κ²μ΄ μλλΌ, νλ μ΄μ΄ 컨νΈλ‘€λ¬κ° μ λ ₯μ λ°κ³ ν°μκ² μ μ ν νλμ νλλ‘ λͺ λ Ήμ λ΄λ¦°λ€. AI 컨νΈλ‘€λ¬λ κ°μ λ°©μμΌλ‘ μ ν΄μ§ λ‘μ§μ λ°λΌ ν°μ΄ μλ AI 컨νΈλ‘€λ¬μκ² ν΄μΌ ν νλμ μλ €μ£Όλ©΄ 컨νΈλ‘€λ¬κ° ν°μ μ§μ μμ§μΈλ€.
- νλ μ΄μ΄ 컨νΈλ‘€λ¬λ μ μ΄ν ν° ν΄λμ€μ λΉμλκ³ HUD, μ λ ₯ 컨νΈλ‘€, PlayerCameraManagerλ₯Ό μ€μ νλ€.
- κ²μ μ€ν
μ΄νΈ ν΄λμ€
- κ²μ κ·μΉμ κ΄λ ¨λ μ΄λ²€νΈκ° λ°μνκ³ νΈλνΉμ ν΅ν΄ μ 보λ₯Ό λͺ¨λ νλ μ΄μ΄κ° 곡μ ν νμκ° μμ λ, κ·Έ μ 보λ κ²μ μ€ν μ΄νΈμ 보κ΄λκ³ κ·Έλ₯Ό ν΅ν΄ λκΈ°νλλ€.
- μλ₯Ό λ€μ΄ κ²μ μ€ν μκ°, μ μν νλ μ΄μ΄ λͺ©λ‘, μ€ν μλ κ²μμμ μλ£ν λ―Έμ λͺ©λ‘, νμ¬ κ²μ λͺ¨λμ λ² μ΄μ€ ν΄λμ€, κ²μ μμ μ¬λΆ λ±μ΄ μλ€.
- νλ μ΄μ΄ μ€ν
μ΄νΈ ν΄λμ€
- νλ μ΄μ΄ κ°μΈμ μ 보λ₯Ό κ΄λ¦¬νκΈ° μν ν΄λμ€μ΄λ€.
- μλ₯Ό λ€μ΄ μ€μ½μ΄μ κ°μ κ°λ³ νλ μ΄μ΄μ κΈ°λ‘μ΄ μλ€.
- κ΄μ μ ν΄λμ€
- νλ μ΄μ΄κ° κ²μμ μ§μ μ°Έμ¬μκ° μλ κ΅°μ€μ μν λ‘ μμ λ 무μ€λ ₯ λΉν λμ λ± μ΄μμ μΈ λ¨μν νλ μμν¬λ₯Ό μ 곡νλ€.
3) νΉμ λ 벨μ κ²μ λͺ¨λ μ€μ
νλ‘μ νΈ μΈν μμ νμΈν κ²μ λͺ¨λλ λͺ¨λ λ 벨μ κΈ°λ³ΈμΌλ‘ μ μ©λμ§λ§, νΉμ λ 벨μλ§ νΉλ³ν κ²μ λͺ¨λλ₯Ό μ μ©ν μλ μλ€. νμ¬ λ 벨μ μ΄λ€ κ²μ λͺ¨λλ₯Ό λ°λ₯΄κ³ μλμ§λ μλ μΈν μμ νμΈν μ μλ€.
4. κ²μ μ€ν μ΄νΈ
κ²μ μ€ν μ΄νΈλ ν΄λΌμ΄μΈνΈκ° κ²μμ μνλ₯Ό λͺ¨λν°λ§ν μ μλλ‘ ν΄μ€λ€. μ μλ λͺ¨λ ν΄λΌμ΄μΈνΈκ° μμμΌ νλ μ 보, νλ μ΄μ΄ κ°κ°μΈμ΄ μλ κ²μ λͺ¨λμ κ΄λ ¨λ μ 보λ₯Ό κ΄λ¦¬ν΄μΌ νλ€. μλ₯Ό λ€μ΄ μ μλ νλ μ΄μ΄ λͺ©λ‘, ν μ μ, μ€ν μλ κ²μμμ μλ£ν λ―Έμ λ±κ³Ό κ°μ κ²μ μ λ°μ μΈ νλ‘νΌν° κΈ°λ‘μ μ μ§ν μ μλ€.
1) AGameStateBase
AGameStateBaseλ κ²μ μ€ν μ΄νΈμ λ² μ΄μ€ ν΄λμ€μ΄λ€. κΈ°λ³Έ ν¨μ κΈ°λ₯μ λ€μκ³Ό κ°λ€.
- GetServerWorldTimeSeconds: UWorld ν¨μ GetTimeSecondsμ μλ² λ²μ μΌλ‘ ν΄λΌμ΄μΈνΈμ μλ² μμͺ½μμ λκΈ°νλμ΄ λ¦¬ν리μΌμ΄μ μ λ―Ώκ³ μ¬μ©ν μ μλ μκ°μΌλ‘ νμ©νλ€.
- PlayerArray: λͺ¨λ APlayerState μ€λΈμ νΈμ λ°°μ΄λ‘ κ²μμ λͺ¨λ νλ μ΄μ΄μκ² μ΄λ€ μμ μ ν λ μ μ©νλ€.
- HasBegunPlay: κ²μμ μ‘ν°μ λν΄ BeginPlay ν¨μκ° νΈμΆλ κ²½μ° trueλ₯Ό λ°ννλ€.
μ°Έκ³
https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/
https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/Framework/
https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/Framework/GameMode/