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

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

UE5 Blueprint

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

๊ฐœ์š”

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

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

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

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


๋ณธ๋ก 

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

Third Person Blueprint ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”.


์„œ๋ฒ„๋กœ ์‹คํ–‰ํ•˜๊ธฐ

์šฐ์„  ์„œ๋ฒ„์—๋Š” 2๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ๋‹ค๊ณ  ์„ค๋ช…์„ ๋“œ๋ ธ์Šต๋‹ˆ๋‹ค.
Listen Server์™€ Dedicated Server์ž…๋‹ˆ๋‹ค.
์ด๋ฒˆ ์‹œ๋ฆฌ์ฆˆ์—์„œ๋Š” Dedicated Server๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜์—ฌ ์‹ค์Šต์„ ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜์…จ๋‹ค๋ฉด Thrid Person Map์œผ๋กœ ์ด๋™ํ•ด์ฃผ์„ธ์š”.

๊ทธ๋ฆฌ๊ณ  Player Start๋ฅผ ์ ๋‹นํžˆ 3๊ฐœ๊นŒ์ง€ ์ถ”๊ฐ€ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์‹คํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
๋‹จ, ๊ทธ๋ƒฅ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์‹คํ–‰ ์˜ต์…˜์„ ๋ณ€๊ฒฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ƒ๋‹จ์˜ ์‹คํ–‰ ๋ฒ„ํŠผ ์˜†์˜ ์„ค์ •์„ ๋ˆŒ๋Ÿฌ ์ฃผ์„ธ์š”.

๊ทธ๋ฆฌ๊ณ  Number of Players๋ฅผ ์ƒ์„ฑํ•œ Player Start์˜ ๊ฐœ์ˆ˜๋งŒํผ ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.
์ ๋‹นํžˆ 2~3๊ฐœ๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ Net Mode๋ฅผ Play As Client๋กœ ์„ค์ •ํ•ด์ฃผ์„ธ์š”.
ํ•ด๋‹น ์„ค์ •์ด Dedicated Server๋กœ ๋™์ž‘ํ•˜๋„๋ก ํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์‹คํ–‰ํ•˜๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ์‹คํ–‰์ด ๋ฉ๋‹ˆ๋‹ค!

์ƒ๋‹จ์˜ ์œˆ๋„์šฐ๋ฐ”๋ฅผ ๋ณด์‹œ๋ฉด ์ด๋ ‡๊ฒŒ ๋‚˜ํƒ€๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ ์ฐฝ๋งˆ๋‹ค ์–ด๋–ค ์ƒํƒœ์ธ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ์ฃ .
๋ชจ๋‘ Client๋ผ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ „์˜ ์„œ๋ฒ„ ์ฝ˜์†”์ฐฝ์€ ์—๋””ํ„ฐ ๋‚ด์—์„œ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์–ด ์—†์ง€๋งŒ ๋…๋ฆฝํ˜• ์„œ๋ฒ„๋กœ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ๋ชจ์Šต์ž…๋‹ˆ๋‹ค.

๋งŒ์•ฝ Listen Server๋กœ ์‹คํ–‰ํ•œ๋‹ค๋ฉด?
ํ•˜๋‚˜๋Š” Server๋กœ ๋‚˜๋จธ์ง€๋Š” Client๋กœ ๋‚˜ํƒ€๋‚ ๊ฒ๋‹ˆ๋‹ค. ์•„๋ž˜์ฒ˜๋Ÿผ์š”

์—ฌ๊ธฐ์„œ ์ €ํฌ๋Š” ์ง€๊ธˆ ์•„๋ฌด๊ฒƒ๋„ ์„ค์ •ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿผ์—๋„ ๊ฐ ์บ๋ฆญํ„ฐ๋“ค์ด ์ž˜ ๋™๊ธฐํ™”๋˜์–ด ํ‘œ์‹œ๋˜๋Š”๊ฑธ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋Š” Third Person Character ์ž์ฒด์— Replicate ์„ค์ •์ด ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
Third Person Character ์— ๋“ค์–ด๊ฐ€์„œ

Details ํŒจ๋„์—์„œ Replication์ด๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•ด์ฃผ์‹œ๋ฉด ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ์˜ต์…˜๋“ค์ด ์ฒดํฌ๋˜์–ด ์žˆ๋Š”๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


ํ๋ธŒ ํ…Œ์ŠคํŠธ

ํ๋ธŒ ์ƒ์„ฑ

Replication์„ ์‹ค์Šตํ•˜๊ธฐ ์œ„ํ•ด ํ๋ธŒ๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•ด์„œ ๋ฐฐ์น˜ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์•กํ„ฐ๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑ ํ›„ ํ๋ธŒ๋ฅผ ํ• ๋‹นํ•ด์ฃผ์„ธ์š”.

Not Replicate

๋ ˆ๋ฒจ์— ์ ๋‹นํžˆ ํ•˜๋‚˜ ๋ฐฐ์น˜ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์‹คํ–‰ํ•ด๋ณด๋ฉด?
๋ˆ„๊ตฌ์—๊ฒŒ๋„ ํ๋ธŒ๊ฐ€ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ํ๋ธŒ๊ฐ€ ์žˆ์„ ์œ„์น˜๋กœ ์ด๋™ํ•ด๋ณด๋ฉด ๋ฌด์–ธ๊ฐ€์— ๊ฐ€๋กœ๋ง‰ํž™๋‹ˆ๋‹ค.

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

Replicate

BP_Cube์— ๋“ค์–ด๊ฐ€์„œ Replication์ด๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•˜์—ฌ ์•„๋ž˜ 2๊ฐœ์˜ ์˜ต์…˜์„ ์ฒดํฌํ•ด์ฃผ์„ธ์š”.

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋ณด๋ฉด ์ด์ œ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํ๋ธŒ๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค.

Simulate Physics

์ด๋ฒˆ์—” BP_Cube์˜ Simulate Physics ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ด์ฃผ์„ธ์š”.

์ด๋ฒˆ์—๋Š” ์‹คํ–‰ํ•˜๋ฉด ํ๋ธŒ๋„ ์ž˜๋ณด์ด๊ณ  ์ž˜๋ฐ€์ณ์ง‘๋‹ˆ๋‹ค!
๊ทธ๋Ÿฐ๋ฐ ๋ญ”๊ฐ€ ์ด์ƒํ•˜์ฃ .

ํด๋ผ์ด์–ธํŠธ๋งˆ๋‹ค ํ๋ธŒ์˜ ์œ„์น˜๊ฐ€ ์ œ๊ฐ๊ฐ์ž…๋‹ˆ๋‹ค.
์‹ฌ์ง€์–ด ํ๋ธŒ์œ„์— ์˜ฌ๋ผ์„œ์ž ์บ๋ฆญํ„ฐ๊ฐ€ ์—„์ฒญ ๋–จ๋ฆฝ๋‹ˆ๋‹ค.

์ด๋Š” ๋ฌผ๋ฆฌ ์›€์ง์ž„์— ๋Œ€ํ•œ ๋ณต์ œ๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์„œ๋ฒ„๋Š” ํ๋ธŒ๊ฐ€ x1, y1, z1 ์ขŒํ‘œ์— ํ๋ธŒ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋•Œ ์›€์ง์ž„์ด ๋™๊ธฐํ™”๋˜์ง€ ์•Š์€ ํ๋ธŒ๋ฅผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ x2, y2, z2๋กœ ์ด๋™ํ–ˆ๋‹ค๊ณ  ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ๋Š” ๋™๊ธฐํ™”๋˜์ง€ ์•Š์€ ํ๋ธŒ์˜ x2, y2, z2์˜ ์œ„์น˜์— ์˜ฌ๋ผํƒ€๋ ค๊ณ  ์‹œ๋„ํ•˜์ž

์„œ๋ฒ„๊ฐ€ "์•ผ ๊ฑฐ๊ธฐ ์˜ฌ๋ผํƒˆ ๊ฒŒ ์—†๋Š”๋ฐ? ์–ด๋””์— ์„œ์žˆ๋Š”๊ฑฐ์•ผ ๋‚ด๋ ค์™€" ํ•˜๋ฉด์„œ ํ”Œ๋ ˆ์ด์–ด์˜ ์บ๋ฆญํ„ฐ ์œ„์น˜๋ฅผ x1, y1, z1์œผ๋กœ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ ํด๋ผ์ด์–ธํŠธ๋Š” "์•„๋‹ˆ ์—ฌ๊ธฐ ํ๋ธŒ ์žˆ๋‹ค๋‹ˆ๊นŒ? ๋‚ด๊ฐ€ ๋ดค๋‹ค๋‹ˆ๊นŒ?" ํ•˜๋ฉฐ ๋‹ค์‹œ x2, y2, z2๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ƒํ™ฉ์ด ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ด๊ณ , ๊ฒฐ๊ตญ์—๋Š” ์„œ๋ฒ„๊ฐ€ ์ด๊น๋‹ˆ๋‹ค.

์ผ๋‹จ ํ๋ธŒ ์•กํ„ฐ๋Š” ๋ณต์ œ๋˜์—ˆ์œผ๋‚˜ ์•กํ„ฐ์˜ ์›€์ง์ž„์€ ๋ณต์ œ๊ฐ€ ๋˜์ง€ ์•Š์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

BP_Cube๋กœ ๋“ค์–ด๊ฐ€์„œ Replicate Movement ์˜ต์…˜๊นŒ์ง€ ์ฒดํฌํ•ด์ฃผ๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ•ด์ฃผ์„ธ์š”.

์ด๋ฒˆ์—” ๋ชจ๋‘์—๊ฒŒ ํ๋ธŒ์˜ ์›€์ง์ž„์— ์˜ํ•œ ์ •๋ณด๊นŒ์ง€ ๋ณต์ œ๋˜์–ด ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋งˆ๋ฌด๋ฆฌ

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

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

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

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