[UE5] ๐Ÿ–ง ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด Replication (4)

Singery00ยท2024๋…„ 8์›” 5์ผ
0

UE5 Blueprint

๋ชฉ๋ก ๋ณด๊ธฐ
25/29
post-thumbnail

๊ฐœ์š”

๐Ÿ–ง Unreal์˜ Replication ๊ฐœ๋…์„ ์•Œ์•„๋ณด๊ณ  ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.

์ˆ˜๋งŽ์€ ๊ฒŒ์ž„ ์žฅ๋ฅด๊ฐ€ ์žˆ์ง€๋งŒ ๊ทธ ์ค‘์—์„œ๋Š” ํ˜ผ์ž์„œ๋Š” ํ”Œ๋ ˆ์ดํ•  ์ˆ˜ ์—†๊ฑฐ๋‚˜, ์—ฌ๋Ÿฟ์ด์„œ ํ•˜๋ฉด ๋” ์žฌ๋ฏธ์žˆ๋Š” ์žฅ๋ฅด๊ฐ€ ์žˆ๋‹ค.
์ด๋•Œ, ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๋ชจ์—ฌ ํ•จ๊ป˜ ํ”Œ๋ ˆ์ดํ•˜๋Š” ๊ฒƒ์„ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์ด๋ฒˆ ์‹œ๋ฆฌ์ฆˆ์—์„œ๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋…์ธ Replication์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ 
๋ธ”๋ฃจํ”„๋ฆฐํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์–ธ๋ฆฌ์–ผ ์—”์ง„์—์„œ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด ๊ฒŒ์ž„ ์˜ˆ์ œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ œ์ž‘ํ•ด๋ณด์ž.

Replication ๊ฐœ๋…
Replication ์‹œ๋ฆฌ์ฆˆ
Replication ๊ฐ„๋‹จ ์˜ˆ์ œ
Session ๊ธฐ๋ฐ˜ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด ์˜ˆ์ œ


๋ณธ๋ก 

์ด๋ฒˆ ํฌ์ŠคํŒ…์—๋Š” ์•กํ„ฐ๋“ค๊ณผ์˜ ์ƒํ˜ธ์ž‘์šฉ๋ฅผ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด๋กœ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


๋ฌธ ์—ด๊ธฐ

BP_Door๋ผ๋Š” ์•กํ„ฐ๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•ด์ฃผ๊ณ  Replicate๋ฅผ ์„ค์ •ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ ๋กœ์ง

Interface ํ˜ธ์ถœ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์—ด๊ณ  ๋‹ซ์„ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

ํ”Œ๋ ˆ์ด์–ด ๋กœ์ง

๊ทธ๋ฆฌ๊ณ  ํ”Œ๋ ˆ์ด์–ด ์ธก์—์„œ๋Š” ์ขŒํด๋ฆญ ์‹œ ํŠธ๋ ˆ์ด์Šค๋ฅผ ๋ฐœ์‚ฌํ•ด ์ ์ค‘ํ•œ ์•กํ„ฐ์—๊ฒŒ Interaction BPI๋ฅผ ํ˜ธ์ถœํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.


None RPC

์‹คํ–‰

ํ˜„์žฌ BP_Door์˜ Replicate ์„ค์ •๋งŒ ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ๋กœ ์ผ๋ฐ˜ ์‹ฑ๊ธ€ํ”Œ๋ ˆ์ด์˜ ๋กœ์ง์œผ๋กœ๋งŒ ์‹คํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


Run On Server RPC

์ด๋ฒˆ์—๋Š” Interface ํ˜ธ์ถœ์€ Run On Server๋ฅผ ํ†ตํ•ด์„œ ์‹คํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

RPC ์ด๋ฒคํŠธ ์ถ”๊ฐ€

Interaction_Server์˜ ์ด๋ฆ„์œผ๋กœ Run On Server ์ปค์Šคํ…€ ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  Interaction BPI๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ์„ธ์š”.

์‹คํ–‰ ๊ฒฐ๊ณผ

์ด ์ƒํƒœ๋กœ ์‹คํ–‰ํ•ด๋ณด๋ฉด ์•„์ฃผ ์žฌ๋ฏธ์žˆ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

๋ฌธ์ด ์—ด๋ฆฌ์ง€ ์•Š์•˜๋Š”๋ฐ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ง€๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถฉ๋Œ ํŒ์ •

์‹คํ–‰๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ๋ถ„๋ช…ํžˆ Client์ธก์—์„œ๋Š” ๋ฌธ์ด ์—ด๋ฆฌ์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ Client์˜ ์บ๋ฆญํ„ฐ๋“ค์ด ๋ชจ๋‘ ๋ฌธ์„ ์ง€๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์ฃ .

๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ๋กœ ๋ฌธ์ด ์—ด๋ ค ์žˆ์„ ์žฅ์†Œ๋Š” ๋ง‰ํ˜€์„œ ์ง€๋‚˜๊ฐ€์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” Interaction BPI๊ฐ€ ์„œ๋ฒ„์—์„œ ๋ถ„๋ช…ํžˆ ์‹คํ–‰๋˜์–ด BP_Door์˜ ์œ„์น˜๊ฐ€ ๋ถ„๋ช…ํžˆ ๋ณ€๊ฒฝ๋˜์—ˆ์œผ๋‚˜,
ํ•ด๋‹น ๋‚ด์šฉ์„ Client์ธก์—๊ฒŒ ์•Œ๋ ค์ฃผ์ง€ ์•Š์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ดํ•ด๋ฅผ ๋•๊ธฐ ์œ„ํ•ด ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๊ทธ๋ ธ๋Š”๋ฐ, ์‹ค์ œ Server์—์„  Collision์ด ์—ด๋ฆฐ ์œ„์น˜์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๊ฒ๋‹ˆ๋‹ค.


Multicast RPC

RPC ์ด๋ฒคํŠธ ์ถ”๊ฐ€

์ด๋ฒˆ์—๋Š” Interface ํ˜ธ์ถœ์— Multicast๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ์‹คํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด Interaction BPI๋ฅผ Multicast์— ์—ฐ๊ฒฐํ•˜๊ณ , Multicast๋ฅผ Run On Server์— ์—ฐ๊ฒฐํ•ด์ฃผ์„ธ์š”.

์ด๋Ÿฌ๋ฉด Server์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์ด Client๋“ค์—๊ฒŒ ์ „ํŒŒ๋˜๊ฒ ์ฃ 

์‹คํ–‰ ๊ฒฐ๊ณผ

์ด์   ๋ชจ๋“  Client์ธก์—์„œ ๋ฌธ๋„ ์ž˜์—ด๋ฆฌ๊ณ  ๋ฌธ์˜ ์œ„์น˜์— ์‹ค์ œ Collision์ด ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋งˆ๋ฌด๋ฆฌ

์ด๋ฒˆ ํฌ์ŠคํŒ…์˜ ์ตœ์ข… ํ•ต์‹ฌ ๋‚ด์šฉ์€

์ถฉ๋Œ(Collision)์€ Server(Host)๊ฐ€ ๊ด€์žฅํ•œ๋‹ค.

๋ผ๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•ด์„œ ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

profile
๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์–ด๋ณด์ž

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