[Unreal] Object, Actor, Component

2024. 6. 16. 16:47ยท๐Ÿ“ Game/โœ Unreal

 

1. Object

1) UObject

UObject๋Š” ์–ธ๋ฆฌ์–ผ์ด ์„ค๊ณ„ํ•œ ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ์˜ ๋‹จ์œ„ ์˜ค๋ธŒ์ ํŠธ๋กœ ์–ธ๋ฆฌ์–ผ์˜ ๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ ์ƒ์†ํ•˜๋Š” ๋ฒ ์ด์Šค ํด๋ž˜์Šค์ด๋‹ค.

  • C++ ์˜ค๋ธŒ์ ํŠธ(๋„ค์ดํ‹ฐ๋ธŒ ํด๋ž˜์Šค)
    • ์ €์ˆ˜์ค€์˜ ๋น ๋ฅธ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ธฐ๋Šฅ ๊ตฌํ˜„์— ์‚ฌ์šฉํ•œ๋‹ค.
    • ์ ‘๋‘์‚ฌ F
  • UObject ์˜ค๋ธŒ์ ํŠธ
    • C++ ์˜ค๋ธŒ์ ํŠธ์— ๊ฐ์ฒด์ง€ํ–ฅ์„ค๊ณ„๋ฅผ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ ์˜ค๋ธŒ์ ํŠธ์ด๋‹ค.
    • ์ฝ˜ํ…์ธ  ์ œ์ž‘์— ๊ด€๋ จ๋œ ๋ณต์žกํ•œ ์„ค๊ณ„ ๊ตฌํ˜„์— ์‚ฌ์šฉํ•œ๋‹ค.
    • ์ ‘๋‘์‚ฌ U

 

2) UHT(Unreal Header Tool)

UObject๋ฅผ ์ƒ์†ํ•˜๋ฉด ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š”๋ฐ, ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ—ค๋” ํŒŒ์ผ์—์„œ ์ „์ฒ˜๋ฆฌ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ „์ฒ˜๋ฆฌ ๋‹จ๊ณ„๋Š” UHT์—์„œ ์ด๋ฃจ์–ด์ง„๋‹ค.

 

์–ธ๋ฆฌ์–ผ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ์‹œ ์šฐ์„  UHT๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜์—ฌ .generated.h ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๊ทธ ํ›„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ .h, .cpp, .generated.h ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•˜์—ฌ ๋นŒ๋“œ๋ฅผ ์™„๋ฃŒํ•œ๋‹ค. ์ด๋•Œ .generated.h ํŒŒ์ผ์—๋Š” ๋งคํฌ๋กœ ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฉ”ํƒ€ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค.

  • UCLASS() ๋งคํฌ๋กœ: UObject ์ž„์„ ๋ช…์‹œ
  • UPROPERTY() ๋งคํฌ๋กœ
  • UFUNCTION() ๋งคํฌ๋กœ
#pragma once

#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"

#include 'MyObject.generated.h'

UCLASS()
class MYPROJECT_API UMyObject : public UObject
{
    GENERATED_BODY()
};

 

3) ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ

UObject๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

  • CDO(Class Default Object): ํด๋ž˜์Šค์˜ ๊ธฐ๋ณธ ๊ฐ’๊ณผ ํƒ€์ž… ์ •๋ณด ์ œ๊ณตํ•˜์—ฌ ๊ธฐ๋ณธ ๊ฐ’์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  •  GC(Garbage Collection): ์ฐธ์กฐ๋˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ž๋™ ํ•ด์ œํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Reflection: ๊ฐ์ฒด ์ •๋ณด๋ฅผ ๋Ÿฐํƒ€์ž„์—์„œ ์‹ค์‹œ๊ฐ„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ๋Š” ๋ธ”๋ฃจํ”„๋ฆฐํŠธ์˜ ์กด์žฌ๋ฅผ ๋ชจ๋ฅด์ง€๋งŒ ๋Ÿฐํƒ€์ž„์—์„œ๋Š” ๋ธ”๋ฃจํ”„๋ฆฐํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
  • Serialization: ๊ฐ์ฒด์™€ ์†์„ฑ ์ •๋ณด๋ฅผ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ์ €์žฅ, ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Delegate: ๊ฐ์ฒด ๊ฐ„์˜ ๊ฒฐํ•ฉ์„ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋Š” ๋ธ๋ฆฌ๊ฒŒ์ดํŠธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.
  • Replication: ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ๊ฐ์ฒด ๊ฐ„์— ๋™๊ธฐํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Editor Integration: ์–ธ๋ฆฌ์–ผ ์—๋””ํ„ฐ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๊ฐ’์„ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

2. Actor

Actor(์•กํ„ฐ)๋Š” ๋ ˆ๋ฒจ์— ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ์ด๋‹ค. ๋ ˆ๋ฒจ์— ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์•กํ„ฐ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  • ๋ชจ๋“  ์•กํ„ฐ๋Š” Transform์ด ์กด์žฌํ•œ๋‹ค.
  • ์ปดํฌ๋„ŒํŠธ๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.
  • ๋ฃจํŠธ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ทธ ์•กํ„ฐ๋ฅผ ๋Œ€ํ‘œํ•˜๋ฉฐ ์•กํ„ฐ์˜ ์œ„์น˜๊ฐ€ ๊ณง ๋ฃจํŠธ ์ปดํฌ๋„ŒํŠธ์˜ ์œ„์น˜๊ฐ€ ๋œ๋‹ค.
  • AActor๋Š” ๋ฒ ์ด์Šค ์•กํ„ฐ ํด๋ž˜์Šค์ด๋‹ค.

 

1) ํŠน์ˆ˜ ์•กํ„ฐ

๊ธฐ๋ณธ ์•กํ„ฐ์— ์ผ์ •ํ•œ ๊ธฐ๋Šฅ์ด ๋‚ด์žฅ๋œ ํŠน์ˆ˜ ์•กํ„ฐ ์œ ํ˜•์ด ์žˆ๋‹ค.

 

ํŠน์ˆ˜ ์•กํ„ฐ

 

  • Pawn(ํฐ)์€ ์ œ์–ด ๊ฐ€๋Šฅํ•œ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋กœ ํ”Œ๋ ˆ์ด์–ด๋‚˜ AI ์˜ค๋ธŒ์ ํŠธ์— ์‚ฌ์šฉ๋œ๋‹ค.
    • ์›€์ง์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ถฉ๋Œ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ์ปจํŠธ๋กค๋Ÿฌ ์†Œ์œ ๋ฅผ ํ†ตํ•ด ํ”Œ๋ ˆ์ด์–ด๋‚˜ AI์— ์˜ํ•ด ์›€์ง์ธ๋‹ค.
  •  Character(์บ๋ฆญํ„ฐ)๋Š” ํฐ์˜ ์ž์‹์œผ๋กœ ์ด์กฑ ๋ณดํ–‰๊ณผ ๊ฐ™์€ ์•„๋ฐ”ํƒ€์— ์‚ฌ์šฉ๋œ๋‹ค.
  • GameMode(๊ฒŒ์ž„ ๋ชจ๋“œ)๋Š” ๊ฒŒ์ž„์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๊ทœ์น™๋“ค์ด ์ง€์ •๋œ๋‹ค.
    • ์กด์žฌํ•˜๋Š” ํ”Œ๋ ˆ์ด์–ด์™€ ๊ด€๋žŒ์ž์˜ ์ˆ˜๋Š” ๋ฌผ๋ก , ํ—ˆ์šฉ๋œ ํ”Œ๋ ˆ์ด์–ด์™€ ๊ด€๋žŒ์ž ์ตœ๋Œ€ ์ˆ˜
    • ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ฒŒ์ž„์— ๋“ค์–ด์˜ค๋Š” ๋ฐฉ์‹, ์Šคํฐ ์œ„์น˜ ์„ ํƒ ๊ทœ์น™๊ณผ ๊ธฐํƒ€ ์Šคํฐ/๋ฆฌ์Šคํฐ ๋™์ž‘ ํฌํ•จ ๊ฐ€๋Šฅ
    • ๊ฒŒ์ž„ ์ผ์‹œ์ •์ง€ ๊ฐ€๋Šฅ ์—ฌ๋ถ€, ๊ฒŒ์ž„ ์ผ์‹œ์ •์ง€ ์ฒ˜๋ฆฌ ๋ฐฉ์‹
    • ๋ ˆ๋ฒจ ๊ฐ„์˜ ์ „ํ™˜, ๊ฒŒ์ž„์˜ ์‹œ๋„ค๋งˆํ‹ฑ ๋ชจ๋“œ ์‹œ์ž‘ ์—ฌ๋ถ€ ํฌํ•จ

 

2) ๋ชจ๋นŒ๋ฆฌํ‹ฐ

์•กํ„ฐ์—๋Š” ๋ชจ๋นŒ๋ฆฌํ‹ฐ๋ผ๋Š” ํ”„๋กœํผํ‹ฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ์ฒด๊ฐ€ ๊ฒŒ์ž„ ๋‚ด๋ถ€์—์„œ ์›€์ง์ด์ง€ ์•Š๋Š” ๊ฒƒ(์Šคํƒœํ‹ฑ)์ธ์ง€, ์›€์ง์ด๋Š” ๊ฒƒ(๋ฌด๋ฒ„๋ธ”)์ธ์ง€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ๋งŒ์•ฝ ๊ฐ์ฒด๋ฅผ ์›€์ง์—ฌ์•ผ ํ•œ๋‹ค๋ฉด ๋ฌด๋ฒ„๋ธ”๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ ์กฐ๊ฑด์ด๋‹ค.

 

๋ชจ๋นŒ๋ฆฌํ‹ฐ

 

'์ฒ˜์Œ๋ถ€ํ„ฐ ๋ชจ๋“  ์•กํ„ฐ๋ฅผ ๋ฌด๋ฒ„๋ธ”๋กœ ์„ค์ •ํ•˜๋ฉด ๋˜์ง€ ์•Š์„๊นŒ?'๋ผ๋Š” ์ƒ๊ฐ์„ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ผ์ดํŒ…๊ณผ ์„€๋„์ž‰์„ ์œ„ํ•ด์„œ ๊ตฌ๋ถ„์ด ํ•„์š”ํ•˜๋‹ค. ๊ฒŒ์ž„์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋น›๊ณผ ๊ทธ๋ฆผ์ž๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์€ ๊ต‰์žฅํžˆ ๋ถ€ํ•˜๊ฐ€ ๋†’์€ ์ผ์ด๋‹ค. ํ•˜์ง€๋งŒ ๊ฒŒ์ž„์—์„œ ์–ด๋–ค ๋ฌผ์ฒด๊ฐ€ ์›€์ง์ด์ง€ ์•Š์„ ๊ฒƒ์ด๋ฉฐ ๊ด‘์›๋„ ์›€์ง์ด์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ™•์ •๋œ๋‹ค๋ฉด, ๋น›๊ณผ ๊ทธ๋ฆผ์ž๋ฅผ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ๊ณ„์‚ฐ์„ ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

 

3. Component

Component(์ปดํฌ๋„ŒํŠธ)๋Š” ์•กํ„ฐ์— ๋ถ€์ฐฉ๋˜๋Š” ๊ฒƒ์œผ๋กœ ์•กํ„ฐ์— ์–ด๋–ค ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ถ€์ฐฉ๋˜๋А๋ƒ์— ๋”ฐ๋ผ ๊ทธ ์—ญํ• ์ด ๊ฒฐ์ •๋œ๋‹ค.

  • UActorComponent๋Š” ๋ฒ ์ด์Šค ์ปดํฌ๋„ŒํŠธ ํด๋ž˜์Šค์ด๋‹ค.
    • Transform์ด ์—†๋‹ค.
    • Rendering, Collision์ด ์—†๋‹ค.
  • USceneComponent๋Š” Transform์ด ์žˆ๋Š” UActorComponent์ด๋‹ค. ์›”๋“œ์— ๋ฐฐ์น˜ ๊ฐ€๋Šฅํ•œ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋“ค์˜ ๋ถ€๋ชจ ํด๋ž˜์Šค๊ฐ€ ๋˜๋Š” ์ปดํฌ๋„ŒํŠธ์ด๋‹ค. ์ถฉ๋Œ, ๋ฌผ๋ฆฌ, ๋ Œ๋”๋ง ๊ธฐ๋Šฅ์ด ์—†์–ด ๊ฐ€๋ณ๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์ธต ๊ตฌ์กฐ์—์„œ ๋”๋ฏธ๋กœ ํ™œ์šฉํ•˜๊ธฐ ์ข‹๋‹ค.
  • UPrimitiveComponent๋Š” Rendering, Collision์ด ์žˆ๋Š” USceneComponent์ด๋‹ค.

 

์ฐธ๊ณ 

https://blog.naver.com/dbsgh3423/223468037691

 

UE5 - Actor

Actor ์–ธ๋ฆฌ์–ผ ์—”์ง„์—์„  ๋ ˆ๋ฒจ์— ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ Actor๋ผ๊ณ  ํ•œ๋‹ค. ๋˜ Actor๋Š” ์–ด๋–ค ์˜๋ฏธ์—์„œ ...

blog.naver.com

https://ansohxxn.github.io/ue4docs/actor/

 

UE4 ๋ถ€๋ชจ ํด๋ž˜์Šค ์ •๋ฆฌ

๊ณต๋ถ€ํ•˜๋ฉด์„œ ์•Œ๊ฒŒ๋œ Actor ์ •๋ฆฌ

ansohxxn.github.io

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
'๐Ÿ“ Game/โœ Unreal' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Unreal] ํ”„๋กœํผํ‹ฐ(๋ฆฌํ”Œ๋ ‰์…˜), ๋งคํฌ๋กœ, ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜
  • [Unreal] ๊ฒŒ์ž„ ์ธ์Šคํ„ด์Šค, ์„œ๋ธŒ์‹œ์Šคํ…œ
  • [Unreal] UMG
  • [Unreal][C++] ๋ฐ”๋ผ๋ณด๋Š” Actor์—๊ฒŒ ํšจ๊ณผ ์ฃผ๊ธฐ
Blxxming
Blxxming
CS ์ง€์‹๊ณผ ๊ณต๋ถ€ํ•˜๋‹ค ๋ฐฐ์šด ๊ฒƒ, ๊ฒฝํ—˜ํ•œ ๊ฒƒ ๋“ฑ์„ ๊ธฐ๋กํ•˜๋Š” ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
  • Blxxming
    ๐Ÿ’ก๋ฒˆ๋œฉ๐Ÿ’ก
    Blxxming
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ณต์ง€์‚ฌํ•ญ

    • Tech Interview
    • ๐Ÿ“š Tech (246)
      • ๐Ÿ“ Computer Science (96)
        • โœ OS (12)
        • โœ Network & Web (10)
        • โœ Database (11)
        • โœ Data Structure (6)
        • โœ Algorithm (40)
        • โœ Design Pattern (9)
        • โœ Cloud Computing (3)
        • โœ (5)
      • ๐Ÿ“ Language (73)
        • โœ Language (6)
        • โœ C & C++ (11)
        • โœ C# (19)
        • โœ JAVA (37)
      • ๐Ÿ“ Game (43)
        • โœ Computer Graphics (2)
        • โœ Unity (14)
        • โœ Unreal (26)
        • โœ (1)
      • ๐Ÿ“ Book (34)
        • โœ Effective (3)
        • โœ Game Server (16)
        • โœ Clean Code (14)
        • โœ (1)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
Blxxming
[Unreal] Object, Actor, Component
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”