๐ŸŽฏ game engine/โ—ฝ ์–ธ๋ฆฌ์–ผ(unreal)

[unreal - udemy/blueprint] "WarehouseWreckage" Part_1

DoctorSunAhna 2025. 2. 25. 14:53
728x90
  • ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ ๊ธธ์ด์—๋Š” ์ œํ•œ์ด ์žˆ๊ณ , ํŠน์ˆ˜ ๋ฌธ์ž๋„ ์ง€์–‘ํ•ด์•ผ ํ•œ๋‹ค.
  • ํ”„๋กœ์ ํŠธ ๋กœ๊ทธ๋ฅผ ์—…๋กœ๋“œ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” https://gist.github.com/ ์— ๋กœ๊ทธ ๋ถ™์—ฌ์„œ CreateSecret Gist๋กœ ์—…๋กœ๋“œ ํ•˜๋Š”๊ฒŒ ์˜ˆ์˜๋ผ๊ณ  ํ•œ๋‹ค. 

 

์บก์ณ1 - ๋ ˆ๋ฒจ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์—ด๊ธฐ

 

์บก์ณ2 - ์ด๋ฒคํŠธ ๊ทธ๋ž˜ํ”„์—์„œ ์˜ค๋ฅธ์ชฝ ํด๋ฆญํ•˜๋ฉด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ—ค๋”ฉ ํด๋ž˜์Šค๊ฐ€ ๋‚˜์˜จ๋‹ค.

 

1. ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์šฉ์–ด ์ •๋ฆฌ 

  • ์ด๋ฒคํŠธ ๊ทธ๋ž˜ํ”„(event graph) - ๋ธ”๋ฃจํ”„๋ฆฐํŠธ๋ฅผ ๊ทธ๋ฆด ์บ”๋ฒ„์Šค ( The canvas for our Blueprint )
  • ๋…ธ๋“œ(Node) - ๋ธ”๋ฃจํ”„๋ฆฐํŠธ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ๊ธฐ๋Šฅ ( Premade functionality ) 
  • ์ด๋ฒคํŠธ(evnet) - ์–ธ์ œ ์‚ฌ๊ฑด์ด ๋ฐœ์ƒํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋…ธ๋“œ ( "when" node )
  • ํ•€(Pin) - ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์†Œ์ผ“ ( Sockets we can connect up )
        (1). ์ž…๋ ฅ ํ•€ (Input Pin)
        (2). ์ถœ๋ ฅ ํ•€ (Oput Pin)

 

 

2. ์˜ค๋ธŒ์ ํŠธ(Objects)

๋ฐ์ดํ„ฐ์™€ ๊ธฐ๋Šฅ์˜ ์ง‘ํ•ฉ(collection of data and functionality)

  • ์—‘ํ„ฐ๋Š” ๋ ˆ๋ฒจ์— ํˆฌ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ ˆ๋ฒจ๋กœ ์ด๋™ํ•ด ์˜์ž๋ฅผ ์„ ํƒํ•˜๋ฉด ๋””ํ…Œ์ผ ์ฐฝ์— ์ˆ˜ ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค. ๋ธ”๋ฃจํ”„๋ฆฐํŠธ์—๋„ ๋…ธ๋“œ ํ˜•ํƒœ๋กœ ์ˆ˜ ๋งŽ์€ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค. 
  • ์ปดํฌ๋„ŒํŠธ - ์•กํ„ฐ๋กœ ๋“ค์–ด๊ฐ€๋Š” ์˜ค๋ธŒ์ ํŠธ, ์•กํ„ฐ๋Š” ๋ ˆ๋ฒจ์— ๋“ค์–ด๊ฐ€๊ณ , ์ปดํฌ๋„ŒํŠธ๋Š” ์•กํ„ฐ ์ž์ฒด์— ๋“ค์–ด๊ฐ„๋‹ค.
  • ๋ ˆํผ๋Ÿฐ์Šค - ์ฃผ์†Œ ๋‚ด์ง€๋Š” ์ปดํ“จํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ด ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ฐพ๊ธฐ์œ„ํ•ด ๊ฐ€์•ผํ•  ์œ„์น˜ 
  • ๋ฐ์ดํ„ฐ ํ•€  - ๋…ธ๋“œ์˜ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์ด๋‚˜ ์ถœ๋ ฅ 
  • ์‹คํ–‰ ํ•€ Execution Pins - ์–ธ์ œ ์‹คํ–‰ํ• ์ง€ ๊ฒฐ์ • 

(1). Actors 

  • cube 
  • BP_Projectile 

(2). Components 

  • StaticMeshComponent

 

3. ์ž„ํŽ„์Šค(Impulse, ์ถฉ๊ฒฉ)

Force (ํž˜): ์ •ํ•ด์ง„ ์‹œ๊ฐ„์— ๊ฑธ์ณ ๋ฐœ์ƒํ•œ๋‹ค. 
Force = Mass x Acceleration (ํž˜์€ ์งˆ๋Ÿ‰ x ๊ฐ€์†๋„)  

Impulse (์ถฉ๊ฒฉ): ์ฆ‰๊ฐ์ ์œผ๋กœ ๋ฐœ์ƒํ•œ๋‹ค.
Impulse = Mass x Velocity Change 

โ€ป context sensitive ์ผœ์ ธ ์žˆ๋Š”์ง€ ํ™•์ธ: context sensitive๋Š” ์Šคํƒœํ‹ฑ ๋ฉ”์‹œ ์ปดํฌ๋„ŒํŠธ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋…ธ๋“œ๋งŒ ํ•„ํ„ฐ๋ง์ด ๋˜์–ด ์žˆ๋‹ค. 

 

vel Change : Velocitiy change ์ด ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•˜๋ฉด ์งˆ๋Ÿ‰์„ ์™„์ „ํžˆ ๋ฌด์‹œํ•˜๊ณ  ์›ํ•˜๋Š” ์†๋ ฅ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฒดํฌ ํ›„ z์— 400์„ ์ž…๋ ฅํ•˜๋ฉด ์œ„์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ 400, ์ฆ‰ ์ดˆ์† 400cm์˜ ์†๋ ฅ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ์–ธ๋ฆฌ์–ผ์€ ์ฃผ์š” ๋‹จ์œ„๋กœ cm์„ ์‚ฌ์šฉํ•œ๋‹ค. 

 

 

4. ์—‘ํ„ฐ ์Šคํฐ(Spawn)

๐Ÿ”ธNode: Spawn Actor 

(1). Element 

  • Class: ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ํด๋ž˜์Šค๊ฐ€ ์–ด๋–ค ํด๋ž˜์Šค ์ธ์ง€ ์•Œ๋ ค์ค˜์•ผ ํ•œ๋‹ค.
  • Spawn Transform: ์˜ค๋ธŒ์ ํŠธ์˜ ์œ„์น˜, ํšŒ์ „, ์Šค์ผ€์ผ ์กฐํ•ฉ
    * Split Struct Pin
  • Return Pin: ์ด ๋…ธ๋“œ๋ฅผ ์‹คํ–‰์‹œํ‚จ ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜ค๋Š” ๋ฐ์ดํ„ฐ ์˜ค๋ธŒ์ ํŠธ 

(2). Glossary 

  • Spawning - ํ”Œ๋ ˆ์ด ์ค‘ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. 

 

 

5. ํฐ (Pawn)๊ณผ ์•กํ„ฐ 

F8์„ ์ž…๋ ฅํ•œ ๋‹ค์Œ ์ฃผ์œ„๋ฅผ ๋Œ์•„๋‹ค๋‹ˆ๋ฉด ๋ฌด์–ธ๊ฐ€๊ฐ€ ๋ชธ์—์„œ ๋น ์ ธ๋‚˜์˜จ๋‹ค.

(Default Pawn) ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ดํ•˜๋Š” ํฐ์„ ์˜๋ฏธํ•œ๋‹ค.

์–ธ๋ฆฌ์–ผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์”ฌ ์•ˆ์— ํฐ์„ ์Šคํฐํ•˜๊ณ  Player Start๋ผ๋Š” ์”ฌ ์•ˆ์— ์•กํ„ฐ๊ฐ€ ์ฃผ์–ด์ง„ ์œ„์น˜์— ๋ฐฐ์น˜ํ•œ๋‹ค. 

๐Ÿ”ธNode: Get Player Pawn

ํ•ด๋‹น ๋…ธ๋“œ์—๋Š” ์‹คํ–‰ํ•€์ด ์—†๊ณ  ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ํ•€๊ณผ ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ ํ•€๋งŒ ์กด์žฌํ•œ๋‹ค. ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„๋ฅผ ์œ„ํ•œ ์„ค๋ช…์ด๋ฉฐ, ์‹ฑ๊ธ€ ํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„์—์„  ์ธ๋ฑ์Šค 0 ์ด ์ฒซ ๋ฒˆ์งธ์ด์ž ์œ ์ผํ•œ ํ”Œ๋ ˆ์ด์–ด์ด๋‹ค.

 

๐Ÿ”ธNode: Get Actor Rotation

์–ธ๋ฆฌ์–ผ์˜ Pawn์ด ์นด๋ฉ”๋ผ ํšŒ์ „๊ณผ ํ•จ๊ป˜ ํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. 

์ถฉ๊ฒฉ์„ ์˜ฌ๋ฐ”๋ฅธ ํšŒ์ „ ๋ฐฉํ–ฅ์œผ๋กœ ์„ค์ •ํ•ด์•ผํ•œ๋‹ค. 

Pos + move = newPos

 

 

 

 

๐Ÿ”ธNode: Get Forward Vector

์ „๋ฐœ ๋ฒกํ„ฐ๋Š” ๋ณธ์งˆ์ ์œผ๋กœ ํšŒ์ „ํ•œ X๋ฐฉํ–ฅ์ด๋‹ค. ํšŒ์ „ํ•œ ๋‹ค์Œ์— ์ „๋ฐฉ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฒกํ„ฐ์ด๋‹ค. ์˜ค๋ฅธ์ชฝ ๋ฒกํ„ฐ๋Š” ํšŒ์ „ํ•œ Y์ถ•์ด๋‹ค. 

๐Ÿ”ธNode: Get Right Vector



์œ„ ๋‘ ๋ฒกํ„ฐ๋Š” ๊ธธ์ด๊ฐ€ 1์ธ ๋ฒกํ„ฐ ๋‹จ์œ„๋ฒกํ„ฐ์ด๋‹ค.

728x90