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

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

UE5 Blueprint

๋ชฉ๋ก ๋ณด๊ธฐ
24/29
post-thumbnail
post-custom-banner

๊ฐœ์š”

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

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

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

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


๋ณธ๋ก 

์ด๋ฒˆ ํฌ์ŠคํŒ…์—๋Š” ์บ๋ฆญํ„ฐ ๋ฉ”์‹œ์˜ ๋จธํ…Œ๋ฆฌ์–ผ ์ƒ‰์„ ๋ณ€๊ฒฝํ•ด๋ณด๊ณ ,

RPC๋ฅผ ํ†ตํ•œ ๋™๊ธฐํ™”๋ฅผ ์‹ค์Šตํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


์บ๋ฆญํ„ฐ ์ƒ‰ ๋ฐ”๊พธ๊ธฐ

์ด๋ฒคํŠธ ์ž‘์„ฑ

์šฐ์„  Thrid Person Character์˜ ๋จธํ…Œ๋ฆฌ์–ผ์˜ ์ƒ‰์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋„๋ก MI์˜ Tint ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  BP_ThirdPersonCharacter ์—์„œ Create Dynamic Material Instance ๋ฅผ ํ†ตํ•ด ๋ชจ๋‘ ํ• ๋‹นํ•ด์ฃผ๋Š” ์ฝ”๋“œ๋ฅผ ์งฏ์Šต๋‹ˆ๋‹ค.

None Replicate ์‹คํ–‰

๊ทธ๋ฆฌ๊ณ  Player Controller์—์„œ 1๋ฒˆ์„ ์ž…๋ ฅ ์‹œ ์ด๋ฒคํŠธ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์‹์œผ๋กœ ์‹คํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์—์„œ ์‹คํ–‰๋˜์ง€๋งŒ ์ƒ‰์ด ์ ์šฉ๋˜์ง€ ์•Š๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

Multicast RPC ์‹คํ–‰

Dedicated Server ํ™˜๊ฒฝ

์ด๋ฒˆ์—” RPC๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์‹คํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
์ƒˆ๋กœ์šด ์ปค์Šคํ…€ ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  Details ํŒจ๋„์—์„œ Replicates๋ฅผ Multicast๋กœ ์„ค์ •ํ•ด์ฃผ์„ธ์š”.
๊ทธ๋ฆฌ๊ณ  ๊ธฐ์กด ์ด๋ฒคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ์—ฐ๊ฒฐํ•ด์ฃผ์„ธ์š”.

์ด๋ฒˆ์—” 2๋ฒˆ์„ ์ž…๋ ฅ์‹œ Multicast RPC๋ฅผ ์‹คํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๊ณ  ์‹คํ–‰ ์‹œ ์ด์ „๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ๊ฒ๋‹ˆ๋‹ค.

Dedicated Server ํ™˜๊ฒฝ์˜ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ํ˜ธ์ถœํ•œ Multicast RPC๋Š” ํ˜ธ์ถœ๋œ ํด๋ผ์ด์–ธํŠธ์—์„œ๋งŒ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .

Listen Server ํ™˜๊ฒฝ

๊ทธ๋Ÿผ ๊ฐ™์€ ์ด๋ฒคํŠธ๋ฅผ Listen Server์—์„œ ์‹คํ–‰ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

1๋ฒˆ์ฐฝ์ด Server์ž…๋‹ˆ๋‹ค.
์„œ๋ฒ„์—์„œ 2๋ฒˆ์„ ๋ˆŒ๋Ÿฌ Multicast RPC๋ฅผ ํ˜ธ์ถœํ•˜๋‹ˆ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๊ฒฐ๊ณผ๊ฐ€ ๋™์ผํ•˜๊ฒŒ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ 2๋ฒˆ์ฐฝ์˜ ํด๋ผ์ด์–ธํŠธ์—์„œ ์‹คํ–‰ํ•˜๋ฉด ๋ณธ์ธ์—๊ฒŒ๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

Server RPC ์‹คํ–‰

๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์–ป์„ ์ˆ˜ ์žˆ์„๊นŒ์š”?
Multicast RPC๋ฅผ Run On Server RPC๋กœ ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์—์„œ Run On Server RPC๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์„œ๋ฒ„์—์„œ ํ•ด๋‹น ์ด๋ฒคํŠธ๊ฐ€ ์‹คํ–‰์ด ๋ฉ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ Run On Server RPC๋Š” Multicast RPC๋ฅผ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๊ณ  ๊ฒฐ๊ตญ ์„œ๋ฒ„์—์„œ Multicast RPC๋ฅผ ํ˜ธ์ถœํ•œ ๋™์ž‘์ด ๋ฉ๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ์ปค์Šคํ…€ ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  Details ํŒจ๋„์—์„œ Replicates๋ฅผ Run On Server๋กœ ์„ค์ •ํ•ด์ฃผ์„ธ์š”.
๊ทธ๋ฆฌ๊ณ  Multicast RPC๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ํ•ด์ฃผ์„ธ์š”.

3๋ฒˆ์„ ๋ˆ„๋ฅด๋ฉด Run On Server RPC๋ฅผ ํ˜ธ์ถœํ•˜๋„๋ก ํ•œ ํ›„ Dedicated Server ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ์—๋Š” ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์—์„œ ์ •์ƒ์ ์œผ๋กœ ๋™๊ธฐํ™”๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


RPC ํ˜ธ์ถœ ์ •๋ฆฌ

์šฐ์„  ์‹คํ–‰๋  ๊ฒŒ์ž„์˜ ๋กœ์ง์„ ํ•จ์ˆ˜, ์ด๋ฒคํŠธ, ๋งคํฌ๋กœ ๋“ฑ์œผ๋กœ ์ž‘์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ ํ•ด๋‹น ๋กœ์ง์„ ์‹คํ–‰ํ•˜๋Š” Multicast RPC๊ฐ€ ์žˆ๊ณ , Multicast RPC๋ฅผ ์‹คํ–‰ํ•˜๋Š” Run On Server RPC๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ Dedicated Server ํ™˜๊ฒฝ์ด๋ผ๋ฉด ๋Š˜ Run On Server RPC๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์—†๊ฒ ์ง€๋งŒ Listen Server์—์„œ๋Š” ์–ด๋–จ๊นŒ์š”?
์ด๋ฏธ ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋Š” ์ƒํ™ฉ์ธ๋ฐ ๋ถˆํ•„์š”ํ•˜๊ฒŒ Run On Server RPC๊ฐ€ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด ํ˜„์žฌ ์‹คํ–‰๋˜๋Š” ์ฃผ์ฒด๊ฐ€ ์„œ๋ฒ„์ธ์ง€ ํด๋ผ์ด์–ธํŠธ์ธ์ง€๋ฅผ ํŒ๋‹จํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜ 3๊ฐœ์˜ ๋…ธ๋“œ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๊ฐ’์ด True์ด๊ฑฐ๋‚˜ Authority๋กœ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ์„œ๋ฒ„,
๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ํด๋ผ์ด์–ธํŠธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ฐ ์ƒํ™ฉ์— ๋งž๋Š” RPC๋ฅผ ํ˜ธ์ถœํ•ด์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๋งˆ๋ฌด๋ฆฌ

์—ฌ๊ธฐ๊นŒ์ง€ RPC๋ฅผ ์‚ฌ์šฉํ•œ ๋™๊ธฐํ™” ์˜ˆ์ œ๋ฅผ ์•Œ์•„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

๋‹ค ๋งŒ๋“ค๊ณ  ๋ณด๋‹ˆ GIF๊ฐ€ ๋„ˆ๋ฌด ์ž‘์•„์„œ ์•Œ์•„๋ณด๊ธฐ ํž˜๋“œ๋„ค์š”... ๋‹ค์Œ์—” ์ข€ ํ‚ค์šฐ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ถฉ๋Œ ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ๋™๊ธฐํ™”๋ฅผ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

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

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