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

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

UE5 Blueprint

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

๊ฐœ์š”

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

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

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

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


๋ณธ๋ก 

์ด๋ฒˆ ํฌ์ŠคํŒ…์—๋Š” ์†Œํ™˜ํ•œ ์•กํ„ฐ๋ฅผ ์ œ๊ฑฐํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ถ”๊ฐ€์ ์œผ๋กœ ์ปดํฌ๋„ŒํŠธ์˜ ๋ณต์ œ๊นŒ์ง€ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


ํ•ต์‹ฌ ์„ค๋ช…

์†Œํ™˜๋œ ์•กํ„ฐ๋ฅผ ํŒŒ๊ดดํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ์•กํ„ฐ๊ฐ€ ๋ณต์ œ(Replicate) ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•กํ„ฐ๊ฐ€ ๋ณต์ œ(Replicate)๋œ ์ƒํƒœ๋ผ๋Š” ๊ฒƒ์€ ์•กํ„ฐ์˜ ์†Œํ™˜, ์‚ญ์ œ ๋ชจ๋‘ Multicast RPC๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

BP_Ball ์ˆ˜์ •

์ด์ „์— BP_Door ๋ฅผ ์ž‘์—…ํ•  ๋•Œ ์ƒ์„ฑํ–ˆ๋˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Interaction ์ด๋ฒคํŠธ์— Destroy Actor ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”.

๊ทธ๋ฆฌ๊ณ  BP_Ball์˜ Replicate ์„ค์ •์„ ์ผœ์ฃผ์„ธ์š”.

์ด์ „ ํฌ์ŠคํŒ… ๋งˆ์ง€๋ง‰์—์„œ ์ž‘์—…ํ–ˆ๋˜ Simulate Physics๊ฐ€ ์ผœ์ ธ ์žˆ๋‹ค๋ฉด ๊บผ์ฃผ์„ธ์š”.
ํ…Œ์ŠคํŠธ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.


Player ์ˆ˜์ •

Interaction ํ˜ธ์ถœ๋ถ€ ์ˆ˜์ •

์ด์ œ Mulicast RPC๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  ๋ณต์ œ๋œ ์•กํ„ฐ๋ฅผ Run On Server๋ฅผ ํ†ตํ•ด ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ƒํ˜ธ์ž‘์šฉ์˜ Multicast RPCํ˜ธ์ถœ ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ•˜๊ณ  Run On Server๋งŒ์„ ๋‚จ๊ฒผ์Šต๋‹ˆ๋‹ค.

BP_Ball Spawn ์ˆ˜์ •

Spawn ๋˜ํ•œ Multicast RPCํ˜ธ์ถœ ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ•˜๊ณ  Run On Server๋งŒ์„ ๋‚จ๊ฒผ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์‹คํ–‰ํ•ด๋ณด๋ฉด ์šฐํด๋ฆญ์œผ๋กœ BP_Ball๋ฅผ ์†Œํ™˜ํ•˜๊ณ ,
์ขŒํด๋ฆญ์œผ๋กœ Trace์— ๋งž์€ BP_Ball์ด Destroy๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

BP_Door ์ˆ˜์ •

๊ทธ๋Ÿฐ๋ฐ ์ด๋Ÿฌ๋ฉด BP_Door๊ฐ€ ์—ด๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์•„๋‹ˆ, ์—ด๋ ธ๋Š”๋ฐ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์•Œ ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

BP_Door ๋Š” ๋ถ„๋ช… Replicate๊ฐ€ ๋˜์–ด ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ ์š”.

Component Replicate

๋ฌธ์ด ์—ด๋ฆฌ๋Š” ๋กœ์ง์„ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์•กํ„ฐ ์ž์ฒด๊ฐ€ ๋ณ€ํ™”ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, Door ๋ผ๋Š” Static Mesh์˜ Relative Rotation์ด ๋Œ์•„๊ฐ€๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์ƒํ™ฉ์„ ์œ„ํ•ด์„œ Component Replicate ๋ผ๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Components ํŒจ๋„์—์„œ ๋ณต์ œํ•˜๊ณ ์ž ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”.

๊ทธ๋ฆฌ๊ณ  Details ํŒจ๋„์—์„œ Replication์ด๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•˜์‹œ๋ฉด ๋‹ค๋ฅธ ์˜ต์…˜์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ๋ถ€๋ถ„์—์„œ Component Replicates ๋ฅผ ํ™œ์„ฑํ™”ํ•ด์ฃผ์„ธ์š”.

๊ทธ๋ฆฌ๊ณ  ์‹คํ–‰ํ•˜๋ฉด ์ด๋ฒˆ์—๋Š” ๋ฌธ์ด ์—ด๋ฆฌ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋งˆ๋ฌด๋ฆฌ

๋‹ค์‹œ ํ•œ๋ฒˆ ํ•ต์‹ฌ์„ ๋ง์”€๋“œ๋ฆฌ๋ฉด

์†Œํ™˜๋œ ์•กํ„ฐ๋ฅผ ํŒŒ๊ดดํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ์•กํ„ฐ๊ฐ€ ๋ณต์ œ(Replicate) ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์•กํ„ฐ๊ฐ€ ๋ณต์ œ(Replicate)๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์€ Run On Server๋งŒ์„ ์‹คํ–‰ํ•˜๋ฉด ๋™๊ธฐํ™”๊ฐ€ ์ง„ํ–‰๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ผญ ๊ธฐ์–ตํ•ด์ฃผ์„ธ์š”.

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

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