Dormancy VS Relevance

์ •ํ˜œ์ฐฝยท2025๋…„ 3์›” 17์ผ
0

๋‚ด์ผ๋ฐฐ์›€์บ ํ”„

๋ชฉ๋ก ๋ณด๊ธฐ
37/43
post-thumbnail

๐ŸŽฎ Dormancy vs Relevance

๐Ÿ“Œ Dormancy(ํœด๋ฉด)๊ณผ Relevance(๊ด€๋ จ์„ฑ)์€ ์–ธ๋ฆฌ์–ผ ์—”์ง„์—์„œ ๋„คํŠธ์›Œํฌ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋….
๐Ÿ“Œ ๋‘ ๊ฐœ๋… ๋ชจ๋‘ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ๋„คํŠธ์›Œํฌ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ๊ฒƒ์ด์ง€๋งŒ, ๋™์ž‘ ๋ฐฉ์‹๊ณผ ๋ชฉ์ ์ด ๋‹ค๋ฆ„.

๐Ÿ’ก ํ•œ๋งˆ๋””๋กœ ์ •๋ฆฌํ•˜๋ฉด:

Dormancy(ํœด๋ฉด) โ†’ "๋ณ€ํ•˜์ง€ ์•Š๋Š” ์•กํ„ฐ๋Š” ๋„คํŠธ์›Œํฌ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฉˆ์ถ˜๋‹ค."
Relevance(์ค‘์š”์„ฑ) โ†’ "์–ด๋–ค ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด ์•กํ„ฐ์˜ ์ •๋ณด๋ฅผ ๋ฐ›์„์ง€ ๊ฒฐ์ •ํ•œ๋‹ค."

1๏ธโƒฃ Dormancy ๋ž€?

๐Ÿ’ก Dormancy๋Š” "๋ณ€ํ•˜์ง€ ์•Š๋Š” ์•กํ„ฐ๋Š” ๋„คํŠธ์›Œํฌ ์—…๋ฐ์ดํŠธ๋ฅผ ์ค‘๋‹จ"ํ•˜๋Š” ๊ธฐ๋Šฅ.

  • ์ฆ‰, ์–ด๋–ค ์•กํ„ฐ๊ฐ€ ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฉด, Replication(๋™๊ธฐํ™”)์„ ๋ฉˆ์ถฐ์„œ ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๋Š” ๋ฐฉ์‹
  • ํ•˜์ง€๋งŒ, ํ•„์š”ํ•  ๋•Œ ๋‹ค์‹œ Awake(ํ™œ์„ฑํ™”) ์ƒํƒœ๋กœ ์ „ํ™˜ํ•˜์—ฌ ์—…๋ฐ์ดํŠธ๋ฅผ ์žฌ๊ฐœํ•  ์ˆ˜ ์žˆ์Œ.

๐Ÿ“Œ Dormancy ์„ค์ • ๋ฐฉ๋ฒ•

๐Ÿ“‹ cpp
// ์•กํ„ฐ๋ฅผ Dormant(ํœด๋ฉด) ์ƒํƒœ๋กœ ์„ค์ •
SetNetDormancy(DORM_DormantAll);

โžก ์ด์ œ๋ถ€ํ„ฐ ์ด ์•กํ„ฐ๋Š” ๋ณ€๊ฒฝ์ด ์—†์œผ๋ฉด ๋„คํŠธ์›Œํฌ ์—…๋ฐ์ดํŠธ๋ฅผ ์ค‘๋‹จํ•จ

๐Ÿ“Œ Dormancy ํ•ด์ œ(Awake)

๐Ÿ“‹ cpp
// Dormancy ํ•ด์ œ (Replication ๋‹ค์‹œ ์‹œ์ž‘)
SetNetDormancy(DORM_Awake);

๐Ÿ“Œ Dormancy์˜ ์ƒํƒœ ์ข…๋ฅ˜

  • Dormancy ์ƒํƒœ ์„ค๋ช…
    • DORM_Never : โŒ ์ ˆ๋Œ€ Dormant ์ƒํƒœ๊ฐ€ ๋˜์ง€ ์•Š์Œ (๊ณ„์† Replication)
    • DORM_Awake : โœ… ๊ธฐ๋ณธ์ ์œผ๋กœ Replication์ด ํ™œ์„ฑํ™”๋จ. ๋‹ค์Œ ์ฃผ๊ธฐ์˜ Replicate์— ๋™๊ธฐํ™”
      • FlushNetDormancy() ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ™œ์„ฑํ™” ์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ๋‹ค. ์ฆ‰์‹œ ํ™œ์„ฑํ™”
    • DORM_DormantAll : โœ… ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์—์„œ Dormant(ํœด๋ฉด) ์ƒํƒœ๊ฐ€ ๋จ
    • DORM_DormantPartial : โœ… ์ผ๋ถ€ ํด๋ผ์ด์–ธํŠธ์—์„œ๋งŒ Dormant ์ƒํƒœ๊ฐ€ ๋จ

๐Ÿ’ก Dormancy๋Š” "์—…๋ฐ์ดํŠธ๋ฅผ ๋ฉˆ์ถฐ ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ."

๐Ÿ“Œ Dormancy ์‚ฌ์šฉ ์˜ˆ์‹œ

๐Ÿ“‹ ์˜ˆ์ œ 1: ๋ฌธ(Door) Dormancy ์ ์šฉ
void ADoor::BeginPlay()
{
    Super::BeginPlay();

    // ๋ฌธ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ Dormant ์ƒํƒœ (์—ด๋ฆฌ๊ธฐ ์ „๊นŒ์ง€ Replication ์—†์Œ)
    SetNetDormancy(DORM_DormantAll);
}

void ADoor::OpenDoor()
{
    // ๋ฌธ์ด ์—ด๋ฆฌ๋ฉด Dormancy ํ•ด์ œ (Replication ํ™œ์„ฑํ™”)
    SetNetDormancy(DORM_Awake);
}
  • ๋ฌธ์ด ๊ฐ€๋งŒํžˆ ์žˆ์„ ๋•Œ๋Š” ๋„คํŠธ์›Œํฌ ์—…๋ฐ์ดํŠธ๋ฅผ ์ค‘๋‹จํ•˜์ง€๋งŒ,

  • ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ฌธ์„ ์—ด๋ฉด ๋‹ค์‹œ ํ™œ์„ฑํ™”๋จ.

    โžก ์ฆ‰, ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๋ฉด์„œ๋„ ํ•„์š”ํ•œ ์ˆœ๊ฐ„์—๋งŒ Replication์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ตœ์ ํ™” ๊ฐ€๋Šฅ



2๏ธโƒฃ Relevance ๋ž€?

๐Ÿ’ก Relevance๋Š” "์–ด๋–ค ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด ์•กํ„ฐ์˜ ์ •๋ณด๋ฅผ ๋ฐ›์„์ง€ ๊ฒฐ์ •"ํ•˜๋Š” ๊ธฐ๋Šฅ.

  • ์ฆ‰, ์–ด๋–ค ํ”Œ๋ ˆ์ด์–ด(ํด๋ผ์ด์–ธํŠธ)์—๊ฒŒ๋งŒ Replication์„ ๋ณด๋‚ผ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ์‹
  • ๊ฐ€๊นŒ์šด ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ๋งŒ ์ •๋ณด ์ „์†กํ•˜๋ฉด ๋„คํŠธ์›Œํฌ ์ตœ์ ํ™” ๊ฐ€๋Šฅ

๐Ÿ“Œ Relevance ์„ค์ • ๋ฐฉ๋ฒ•

๐Ÿ“‹ cpp
// ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ Replication
bAlwaysRelevant = true;

// ํŠน์ • ๊ฑฐ๋ฆฌ ๋‚ด ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ๋งŒ Replication
bOnlyRelevantToOwner = true;

๐Ÿ“Œ Relevance์˜ ์ฃผ์š” ์†์„ฑ

bAlwaysRelevant : โœ… ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ Replication (๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด์—์„œ ํ•„์ˆ˜์ ์ธ ์ •๋ณด)
bOnlyRelevantToOwner : โœ… ํŠน์ • ํด๋ผ์ด์–ธํŠธ(Owner)์—๊ฒŒ๋งŒ Replication (์˜ˆ: ํ”Œ๋ ˆ์ด์–ด ๊ฐœ์ธ UI)
NetCullDistanceSquared : โœ… ์ผ์ • ๊ฑฐ๋ฆฌ ๋ฐ”๊นฅ์—์„œ๋Š” Replication ์ค‘์ง€ (๋„คํŠธ์›Œํฌ ์ตœ์ ํ™”)

๐Ÿ’ก Relevance๋Š” "์ค‘์š”ํ•œ ์ •๋ณด๋งŒ ํ•„์š”ํ•œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ด์„œ ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ."

๐Ÿ“Œ Relevance ์‚ฌ์šฉ ์˜ˆ์‹œ

๐Ÿ“‹ ์˜ˆ์ œ 1: ์ด๊ธฐ UI๋ฅผ ์†Œ์œ ์ž(Owner)๋งŒ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •
void AWeapon::BeginPlay()
{
    Super::BeginPlay();

    // ์ด ๋ฌด๊ธฐ์˜ ์ƒํƒœ๋Š” Owner(์†Œ์œ ์ž)์—๊ฒŒ๋งŒ Replication๋จ
    bOnlyRelevantToOwner = true;
}
  • ์ฆ‰, ๋‹ค๋ฅธ ํ”Œ๋ ˆ์ด์–ด๋Š” ์ด ๋ฌด๊ธฐ์˜ ์ •๋ณด๋ฅผ ๋ฐ›์„ ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜๊ฐ€ ์ค„์–ด๋“ฆ.
๐Ÿ“‹ ์˜ˆ์ œ 2: ๊ฑฐ๋ฆฌ ์ œํ•œ์„ ์„ค์ •ํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์ตœ์ ํ™”
void AMyActor::BeginPlay()
{
    Super::BeginPlay();

    // ์ผ์ • ๊ฑฐ๋ฆฌ ์ด์ƒ ๋–จ์–ด์ง€๋ฉด Replication ์ค‘๋‹จ
    NetCullDistanceSquared = 1000000.0f;
}
  • ์ฆ‰, ๋ฉ€๋ฆฌ ์žˆ๋Š” ์•กํ„ฐ๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†ก๋˜์ง€ ์•Š๋„๋ก ์„ค์ •ํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์ตœ์ ํ™” ๊ฐ€๋Šฅ


3๏ธโƒฃ Dormancy vs Relevance ์ฐจ์ด ์ •๋ฆฌ

  • ์ฆ‰, Dormancy๋Š” "Replication ์ž์ฒด๋ฅผ ๋„๋Š” ๊ธฐ๋Šฅ", Relevance๋Š” "๋ˆ„๊ฐ€ Replication์„ ๋ฐ›์„์ง€ ์ •ํ•˜๋Š” ๊ธฐ๋Šฅ"

๐Ÿ‘‰ ๊ฒฐ๋ก : Dormancy vs Relevance
โœ” Dormancy โ†’ ์ด ์•กํ„ฐ์˜ ์ƒํƒœ๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š์œผ๋ฉด, ๋„คํŠธ์›Œํฌ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฉˆ์ถ˜๋‹ค
โœ” Relevance โ†’ ๋ˆ„๊ฐ€ ์ด ์•กํ„ฐ์˜ ์ •๋ณด๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๋Š”์ง€ ๊ฒฐ์ •ํ•œ๋‹ค

๋ณ€ํ•˜์ง€ ์•Š๋Š” ์•กํ„ฐ๋Š” Dormant๋กœ ๋งŒ๋“ค๊ณ , ํ•„์š” ์—†๋Š” ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ๋Š” Replication์„ ๋ณด๋‚ด์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ตœ์ ํ™”์˜ ํ•ต์‹ฌ

profile
Unreal 1๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด