1. ๊ธฐํš


3bb8dc29e28376b660b8f68b12d21a1d2540bbce1b473bb8dc29e28076b660b8f68b12d21a1d8ecb1a1511d1



์ ค๋‹ค ๋ฌด์Œ, ํŒŒ์ด์–ด ์— ๋ธ”๋ ˜ ๋ฌด์Œ์ฒ˜๋Ÿผ ๋ฌด์Œ๋ฅ˜ ๊ฒŒ์ž„์€ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ˆ˜ ์‹ญ, ์ˆ˜ ๋ฐฑ๋ช…์„ ๊ทธ๋ƒฅ ๋•Œ๋ ค์žก์œผ๋‹ˆ๊นŒ ์พŒ๊ฐ์€ ์žˆ๋Š”๋ฐ ์ „๋žต์  ๊นŠ์ด๋Š” ์—†์–ด ๊ณตํ—ˆํ•จ์„ ๋А๋‚Œ.



3bb8dc29e28176b660b8f68b12d21a1d28257c2787e6b33bb8dc29e28676b660b8f68b12d21a1d8c2583a54e13



๊ทธ๋ ‡๋‹ค๊ณ  ์Šคํƒ€ํฌ๋ž˜ํ”„ํŠธ, ํ† ํƒˆ์›Œ ๊ฐ™์ด ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ง€ํœ˜๊ด€์˜ ์œ„์น˜์—์„œ ์ง€ํœ˜๋งŒ ํ•˜๋Š” ๊ฑด ์ „๋žต์  ๊นŠ์ด๋„ ๋„ˆ๋ฌด ๊นŠ๊ณ  ๊ฐ•๋ ฌํ•œ ์พŒ๊ฐ์ด ์—†์–ด์„œ ์‹ซ์ฆ์ด ๋‚จ.


๊ทธ๋ž˜์„œ ๋‘ ๊ฐœ์˜ ๊ฒŒ์ž„ ์žฅ๋ฅด๋ฅผ ํ˜ผํ•ฉํ•˜๊ณ ์ž ํ•จ.


๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฐ์ง‘๊ฐ„์˜ ์ „ํˆฌ์ด๋ฉด์„œ ํ”Œ๋ ˆ์ด์–ด๋ธ” ์บ๋ฆญํ„ฐ๊ฐ€ ๊ตฐ์ง‘ ๋‚ด๋ถ€์— ๋“ค์–ด๊ฐ€์„œ ์ „๋žต์ ์ธ ์ „ํˆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฑฐ์ž„.


2. ๊ธฐ๋ณธ ๊ฒŒ์ž„ ๋ฃฐ


2.1 ํ•˜๋‚˜์˜ ๊ตฐ์ง‘์€ ํ•˜๋‚˜์˜ ๊ตฐ์ง‘๊ณผ ์‹ธ์šด๋‹ค.

2.2 ํ•˜๋‚˜์˜ ์บ๋ฆญํ„ฐ๋Š” ํƒฑ์ปค/๋”œ๋Ÿฌ/ํž๋Ÿฌ ์ค‘ ํ•˜๋‚˜์˜ ์—ญํ• ์„ ๋งก๋Š”๋‹ค.


๋ณต์žกํ•œ ์‹œ์Šคํ…œ์€ ์„ค๊ณ„๊ฐ€ ๋„ˆ๋ฌด ํž˜๋“ค์–ด์„œ ์ผ๋‹จ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์š”์†Œ๋กœ ๋ถ„ํ•ดํ•˜๊ณ  ๊ตฌํ˜„ ์‹œ์ž‘ํ•จ.


3. ๊ตฐ์ง‘ ๋‚ด ํƒฑ์ปค Behavior tree ๊ตฌ์„ฑ


ํƒฑ์ปค์˜ AI ์ „๋žต์€ ๋‘ ๊ฐ€์ง€๋กœ ์ƒ๋Œ€ ๊ตฐ์ง‘์˜ ๋”œ๊ฐ์„ ์ฐจ๋‹จํ•˜๊ฑฐ๋‚˜, ์ƒ๋Œ€ ๊ตฐ์ง‘์˜ ํž๊ฐ์„ ์ฐจ๋‹จํ•˜๋Š”๊ฑฐ์ž„.

๋ฐ‘์€ ๋Œ€์ถฉ ์กฐ๊ฑด๋ฌธ ์ฒ˜๋ฆฌํ•ด๋ณธ๊ฒƒ.



24b0d121e09c28a8699fe8b115ef046f594d999d

๋”œ๊ฐ ์ฐจ๋‹จ์ด๋“  ํž๊ฐ ์ฐจ๋‹จ์ด๋“  ๊ธฐ๋ณธ ๋กœ์ง์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Œ


1. ์•„๊ตฐ ๊ตฐ์ง‘, ์ƒ๋Œ€ ๊ตฐ์ง‘ avergae location ๊ณ„์‚ฐ

2. ๊ฐ ๊ตฐ์ง‘ average location ์ง์„  ๋ฐ‘ orthogonal line ๊ณ„์‚ฐ

3. orthogonal line ์„ defense line ์œผ๋กœ ์„ค์ • => ํƒฑ์ปค๋Š” defense line ์œผ๋กœ ์ด๋™


defense line ์— ํƒฑ์ปค๊ฐ€ ์„œ์„œ ๋ฐฉํŒจ๋กœ ๋”œ์ด๋‚˜ ํž์„ ํก์ˆ˜ํ•จ์œผ๋กœ์จ ๋”œ์ด๋‚˜ ํž์ด๋ผ๋Š” ์ž์› ์ด๋™์„ ์ฐจ๋‹จํ•ด.



24b0d121e09c28a8699fe8b115ef046eca40c9f7


24b0d121e09c28a8699fe8b115ef0469913bf4bdf0


ํ”„๋กœํ† ํƒ€์ž… ์˜์ƒ


(๋”œ๊ฐ ์ฐจ๋‹จ) (์•„๊ตฐ ๊ตฐ์ง‘ = ํƒฑ์ปค 3, ๋”œ๋Ÿฌ(ํ”Œ๋ ˆ์ด์–ด) 1, ์ ๊ตฐ ๊ตฐ์ง‘ = ๋”œ๋Ÿฌ 3)

https://drive.google.com/file/d/10RmJvU_9LMHpLcO5s-l-zNXbATQCf9nF/view?usp=drive_link


ํ”„๋กœํ† ํƒ€์ž…_(ํ”Œ๋ ˆ์ด์–ด,ํƒฑ์ปค3)vs(๋”œ๋Ÿฌ3)_re.mp4

ํ”„๋กœํ† ํƒ€์ž…_(ํ”Œ๋ ˆ์ด์–ด,ํƒฑ์ปค3)vs(๋”œ๋Ÿฌ3)_re.mp4

drive.google.com


(ํž๊ฐ ์ฐจ๋‹จ) (์•„๊ตฐ ๊ตฐ์ง‘ = ํƒฑ์ปค 3, ํž๋Ÿฌ(ํ”Œ๋ ˆ์ด์–ด) 1, ์ ๊ตฐ ๊ตฐ์ง‘ = ํƒฑ์ปค 3, ํž๋Ÿฌ 3)

https://drive.google.com/file/d/1BfGRYAWh3xkNQDYSKrWEyYGykuY93wM_/view?usp=drive_link

ํ”„๋กœํ† ํƒ€์ž…_(ํ”Œ๋ ˆ์ด์–ด,ํƒฑ์ปค3)vs(ํƒฑ์ปค3,ํž๋Ÿฌ3)_re.mp4

ํ”„๋กœํ† ํƒ€์ž…_(ํ”Œ๋ ˆ์ด์–ด,ํƒฑ์ปค3)vs(ํƒฑ์ปค3,ํž๋Ÿฌ3)_re.mp4

drive.google.com



4. Grid Spawner ๊ตฌํ˜„


์•„์ง ์–ธ๋ฆฌ์–ผ UI ๋กœ ๊ตฌํ˜„์€ ๋ชปํ–ˆ๋Š”๋ฐ grid ์— ์ ๊ตฐ, ์•„๊ตฐ ๋ฐฐ์น˜ ๋ฐ์ดํ„ฐ๋Š” ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ•จ. (์•„์ง ํ•˜๋“œ์ฝ”๋”ฉ ๋˜์–ด์žˆ์Œ)



24b0d121e09c28a8699fe8b115ef046f5d44919c




์‹ค์ œ๋กœ ์œ„ ๋…ผ๋ฆฌ์  ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ Spawn ์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ Object with tag "Floor" ๋ฅผ ์ฐพ์•„์„œ NxM ์ขŒํ‘œ๋กœ ๋‚˜๋ˆ ์„œ Spawn ์œ„์น˜ ์–ป์Œ.


์ง€๊ธˆ์€ NxM ์ขŒํ‘œ์—์„œ 0.5 ratio ๋กœ ์„ค์ •ํ•ด๋†”์„œ tile ์˜ ์ •์ค‘์•™์—๋งŒ ์ƒ์„ฑ๋˜๋Š”๋ฐ ratio ๋ฅผ ๋žœ๋ค์œผ๋กœ ๊ฐ€์ ธ์˜ค๋ฉด ์กฐ๊ธˆ ๋” ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐฐ์น˜ ๊ฐ€๋Šฅํ• ๋“ฏ.



24b0d121e09c28a8699fe8b115ef046f564d9896af


24b0d121e09c28a8699fe8b115ef046ecf48c2f122





5. ์ถ”ํ›„ ๋ฐฉํ–ฅ์„ฑ


ํž๋Ÿฌ, ๋”œ๋Ÿฌ behavior tree ๊ตฌ์„ฑํ•˜๊ณ  ๊ตฐ์ง‘ ๊ฐ„์˜ ์ „ํˆฌ๋ฅผ ์ข€ ๋” ๋‹ค์–‘ํ™”ํ•ด๋ณผ ์ƒ๊ฐ์ž„.


๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์™„์„ฑ๋˜๋ฉด ๊ตฐ์ง‘ ํ•˜๋‚˜๋ฅผ ๊ณต๋žตํ•˜๊ธฐ ์œ„ํ•ด ๋‘ ๊ฐœ์˜ ๊ตฐ์ง‘์œผ๋กœ ๋‚˜๋ˆ ์„œ ์ธก๋ฉด์„ ๊ณต๋žตํ•˜๊ฑฐ๋‚˜, ๋Œ€์žฅ์ „ ๋А๋‚Œ์œผ๋กœ ํŠน์ • ๊ตฐ์ง‘๋งŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒŒ์ž„๋ชจ๋“œ๋ผ๋“ ์ง€ ๊ตฌํ˜„ํ•ด๋ณผ ์ˆ˜ ์žˆ์„๋“ฏ.


์†”์งํžˆ ๋ฒŒ์จ ๋‚ด๊ฒœ๊ตฌ๋ ค ๋ณ‘์ด ์กฐ๊ธˆ์”ฉ ์˜ฌ๋ผ์˜ค๋Š”๋ฐ ๋งˆ์Œ ๋‹ค ์žก์œผ๋ ค๊ณ  ๊ธ€์ข€ ์จ๋ดค์–ด. ํ›ˆ์ˆ˜, ์ถฉ๊ณ  ๊ฐ์‚ฌํžˆ ๋ฐ›์„๊ฒŒ..