๋•Œ๋Š” ๋จผ ๊ณผ๊ฑฐ



์ดˆ๋“ฑํ•™๊ต ์‹œ์ ˆ ๋ถ€๋ชจ๋‹˜ ์•ž์น˜๋งˆ๋ฅผ ๋’ค์ ธ ๋ฌธ๋ฐฉ๊ตฌ๋กœ ๋‹ฌ๋ ค๋‚˜๊ฐ€ ์ž‘์€ ์˜ค๋ฝ๊ธฐ ์•ž์— ์•‰์•„ 1945๋‚˜ ๋ฉ”ํƒˆ์Šฌ๋Ÿฌ๊ทธ๋ฅผ ํ•˜๋˜ ๋•Œ


ํƒ„๋ง‰์ด ์šฐ์ˆ˜์ˆ˜ ์Ÿ์•„์ ธ ๋‚˜์˜ค๊ณ  ์ฃผ๋จธ๋‹ˆ์— ์žˆ๋˜ ๋™์ „์€ ๊ทธ ๋‹น์‹œ ๋ฐ›์•„์“ฐ๊ธฐ ์ ์ˆ˜๋งˆ๋ƒฅ ์ฆ๋ฐœํ•ด๋ฒ„๋ ธ๋‹ค.



๊ทธ๋ฆฌ๊ณ  ๊ฝค ์˜ค๋ž˜ ์ง€๋‚œ ๊ณ ๋“ฑํ•™๊ต ์‹œ์ ˆ ๋‹ค์‹œํ•œ๋ฒˆ ํƒ„๋ง‰๊ฒŒ์ž„์„ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.


Rabi ribi๋ž€ ๊ฒŒ์ž„์„ ํ–ˆ์—ˆ๋Š”๋ฐ ํ•œ๊ธ€ํŒจ์น˜๋„ ์—†์–ด 7๋“ฑ๊ธ‰ ์˜์–ด๋กœ ๋Œ€์‚ฌ๋ฅผ ๋Œ€๊ฐ•๋Œ€๊ฐ• ๋„˜๊ธฐ๋ฉฐ ํ–ˆ๋˜ ๊ธฐ์–ต์ด ๋‚˜๋Š”๋ฐ


์ฒ˜์Œ์—” ๋ฐ”๋‹ˆ๊ฑธ์„ ๋ณด๊ณ  ํ–ˆ์ง€๋งŒ ์ƒ๊ฐ๋ณด๋‹ค ๊ฒŒ์ž„์ด ์งœ์ž„์„ธ๊ฐ€ ์ข‹์•„ ๋Œ€ํ•™์— ๋“ค์–ด๊ฐ€ ํ•œ๊ธ€ ์ง€์›ํ• ๋•Œ๊นŒ์ง€ ํ–ˆ๋˜ ๊ธฐ์–ต์ด ์žˆ๋‹ค.



๊ทธ๋กœ ๋ช‡๋…„๋’ค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณต๋ถ€๋ฅผ ๊ณ„์†ํ•˜๋˜ ๋‚˜๋‚  ๋“  ์ƒ๊ฐ์ด ๋‚˜๋„ ์ด๋Ÿฐ ๊ฒŒ์ž„์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค ์˜€๋‹ค.


๋Œ€1๋•Œ๋ถ€ํ„ฐ ์œ ๋‹ˆํ‹ฐ๋กœ ์‚ฝ์งˆ์„ ํ•˜๋‹ค ๊ฝค ์˜ค๋žœ์‹œ๊ฐ„์ด ์ง€๋‚œ ์ง€๊ธˆ ์–ด๋А์ •๋„ ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋‹จ ์ƒ๊ฐ์ด ๋“ค์–ด ํŒ€๊ณผ ํ•จ๊ป˜ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์•ก์…˜ ํƒ„๋ง‰ ๊ฒŒ์ž„์„ ๋งŒ๋“ค์–ด ๋ณผ๋ คํ•œ๋‹ค.





Rabi ribi๊ฒŒ์ž„์˜ gif


05b2de23fcd139ab2eed86e7449c756d5aac69e0deb616a7d67de9283a8a50b0f8f04a3b1c1961e2a4169600c505b2de23fcd139ab2eed86e7449c756d5aac69e0deb616a7d67deb2c3a8a50b0bea0da73ee47aaa10bd0335c1a


Rabi ribi๋ž€ ๊ฒŒ์ž„์€ ์ด๋Ÿฐ ์Šคํƒ€์ผ์ด๋‹ค.


์ด๊ฒŒ ์•„๋งˆ ์ƒ๋‹นํžˆ ๋†’์€ ๋‚œ์ด๋„์ธ๊ฑธ๋กœ ๊ธฐ์–ตํ•˜๋Š”๋ฐ ์‰ฌ์šด ๋‚œ์ด๋„์—ฌ๋„ ์ง„์งœ ํƒ„๋ง‰ ๊ฐœ์–ต๊นŒ๊ฐ€ ๊ฐœ์‹ฌํ•˜๋‹ค


์ดˆ๊ธฐ์—” ๊ฐ„๋‹จํ•œ ํŒจํ„ด๋„ ํ”ผํ•˜๊ธฐ ํž˜๋“ค์ง€๋งŒ ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ด ํ• ์ˆ˜๋ก ์–ด๋ ค์šด ํŒจํ„ด๋„ ํ”ผํ•ด์ง€๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค.


๋‚ด ์ƒ๊ฐ์—๋Š” ๊ทธ๋Ÿฐ์ ์ด ์ •๋ง ์žฌ๋ฏธ์žˆ์—ˆ์ง€ ์•Š๋‚˜ ์‹ถ๋‹ค.


์ง„์งœ ์ด๊ฑธ ์–ด๋–ป๊ฒŒ ํ”ผํ•ด? ์—์„œ ์™€ ใ……ใ…‚ ์ด๊ฒŒ ํ”ผํ•ด์ง€๋„ค ๋กœ ๋ณ€ํ•˜๋Š” ์ˆœ๊ฐ„ ๊ฒŒ์ž„์—์„œ ๋А๊ปด์ง€๋Š” ์นดํƒ€๋ฅด์‹œ์Šค๊ฐ™์€๋ฐ ์ข€ ์žˆ๋Š”๊ฒƒ ๊ฐ™๋‹ค.




ํƒ„๋ง‰์— ๋Œ€ํ•œ ์‹œ๋„๋Š” ์—ฌ๋Ÿฌ๋ฒˆ ํ–ˆ์—ˆ๋‹ค.


2ํ•™๋…„๋•Œ ๋‹จ์ˆœ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์— rigidbody์™€ circle collider๋ฅผ ๋‹ฌ๊ณ  cos sinํ•จ์ˆ˜๋ฅผ ๋ฐ•์•„ ๋งˆ๊ตฌ์žก์ด๋กœ ์‚ดํฌํ•˜๊ธฐ๋„ ํ•ด๋ดค์—ˆ๋‹ค.


ํ™”๋ฉด์— 500๊ฐœ ๊ฐ€๋Ÿ‰์˜ ํƒ„๋ง‰์ด ๋ฟŒ๋ ค์ง€๋Š” ์ˆœ๊ฐ„ 3700 2070s์˜ ์ปดํ“จํ„ฐ๋กœ๋„ 60fps์œ ์ง€๊ฐ€ ๊ฐ„๋‹น๊ฐ„๋‹น ๋˜๋Š”๊ฑธ ๋ณด๊ณ  ์•„์‰ฌ์›€์ด ๋А๊ปด์กŒ์—ˆ๋‹ค.


2์ฃผ๊ฐ€๋Ÿ‰ ๋งŒ๋“ค์—ˆ๋˜ ๊ฒŒ์ž„์˜ ๋ชจ์Šต์€ ๋Œ€๊ฐ• ์ด๋Ÿฐ์‹์ด์˜€๋‹ค.


0-5.webp

0-6.webp


์Šคํ”„๋ผ์ดํŠธ๋Š” 1945๊ป„ ๋‹๊ฑฐํ•ด์„œ ๋งŒ๋“ค์—ˆ๊ณ  ๋งต์˜ ๋ฐฐ๊ฒฝ์€ ๊ตฌ๊ธ€์–ด์Šค์—์„œ ๊ธ์–ด์™€ ๋ฐ•์•„๋„ฃ์—ˆ๋‹ค.


์ด๋•Œ ๋А๋‚€๊ฑด ์•„์‰ฌ์›€์ด์˜€๋‹ค. ๋” ๋งŽ์€ ํƒ„๋ง‰์„ ํ™”๋ฉด์— ๋ฟŒ๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์„๊นŒ? ํ•˜๋ฉฐ ์ฐพ์•„๋ณด๋˜ ์ค‘ ํ•˜๋‚˜์˜ ์‹œ์Šคํ…œ์„ ์ฐพ์•˜๋‹ค.



Unity Particle System.


ํ•˜๋‹จ์€ ์ € ํ”„๋กœ์ ํŠธ๋ฅผ ํ•œ ์ดํ›„ Particle System์œผ๋กœ ์ œ์ž‘ํ–ˆ๋˜ ํƒ„๋ง‰๋“ค์ด๋‹ค.


7df081ac301eb55e8af1d1bc10f11a39e9be95d3db16661c453b


7df082ac301eb55e8af1d1bc10f11a39591ed5ecee210e3a486d7df084ac301eb55e8af1d1bc10f11a394a5a2d578f7f4ab4c2f5


7df083ac301eb55e8af1d1bc10f11a39746873d3b529163a87e59e


์ด๊ฑด Line Drawer๋กœ ๋งŒ๋“  ๋ ˆ์ด์ €์ด๋‹ค.


๊ทผ๋ฐ ํ˜ผ์ž ๋งŒ๋“ค๋‹ค๋ณด๋‹ˆ ์ด๊ฒƒ์ €๊ฒƒ ๊ผฌ์—ฌ ์‹œ์Šคํ…œ๋„ ์—‰๋ง์ด์˜€๊ณ  ๊ด€๋ฆฌ๋„ ํž˜๋“ค๊ณ  ์ข€ ๋ณ„๋กœ์˜€๋‹ค.




์„œ๋ก ์ด ์ข€ ๊ธธ์—ˆ๋˜๊ฒƒ ๊ฐ™์€๋ฐ ์•”ํŠผ ์ข€ ์žฌ๋Œ€๋กœ๋œ ํƒ„๋ง‰ ์‹œ์Šคํ…œ์„ ๋„ฃ์€ ๊ฒŒ์ž„์„ ๋งŒ๋“ค๊ณ  ์‹ถ์–ด์„œ ๋„์ „ํ•ด๋ณด๋Š”๊ฑธ ์ผ์ง€๋กœ ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•ด ๊ธ€์„ ์˜ฌ๋ฆฐ๋‹ค.


๊ฒŒ์ž„์€ ์ตœ์ข…์ ์œผ๋กœ ์ŠคํŒ€์— ํŒ๋งคํ•˜๋Š”๊ฒƒ์ด ๋ชฉํ‘œ๋‹ค.




1. ์ŠคํŠธ๋ ˆ์Šค ํ…Œ์ŠคํŠธ


์šฐ์„  ํƒ„๋ง‰์— ์‚ฌ์šฉํ•  ๋ฉ”์ธ ์‹œ์Šคํ…œ์„ ์ •ํ•ด์•ผ ํ•œ๋‹ค.


๋‚˜๋Š” 3๊ฐ€์ง€์˜ ์‹œ์Šคํ…œ์„ ํ›„๋ณด๊ถŒ์— ์˜ฌ๋ ธ๋‹ค.


1. Unity์˜ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์— Circle collider๋ฅผ ๋•Œ๋ ค๋„ฃ๊ณ  ํ™”๋ฉด์— ๋ฟŒ๋ฆฌ๋Š” ๋ฐฉ์‹.


2. Particle System.


3. Github๋ฅผ ๋– ๋Œ๋‹ค ๋ฐœ๊ฒฌํ•œ ํƒ„๋ง‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ„๋„์˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๊ฐ€์ง„ ๋’ค Raycast๋กœ ๋ฌผ๋ฆฌ ๊ฒ€์ถœ์„ ํ•˜๊ณ  ComputeShade๋กœ ๋ Œ๋”ํ•˜๋Š” ๋ฐฉ์‹


์ด๋ฏธ์ง€๋ฅผ ๋ณด๋ฉฐ ์ฒœ์ฒœํžˆ ์ซ’์•„๊ฐ€ ๋ณด๊ฒ ๋‹ค.



7cf3c028e2f206a26d81f6e64584726911


1๋ฒˆ ํ›„๋ณด


์ผ์ • ๋ฐ”์šด๋”๋ฆฌ ๋‚ด์— 500, 1000, 2000๊ฐœ์˜ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์Šคํฐํ•œ ๋’ค ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ๋“ค์„ FixedUpdate ์ฃผ๊ธฐ๋งˆ๋‹ค X Y ์ขŒํ‘œ๋ฅผ -0.1~0.1 ๊ฐ€๋Ÿ‰ ์›€์ง์ด๊ฒŒ ํ•˜์˜€๋‹ค.


ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋ฅผ ๋Œ๋ ค๋ณด์•˜์„๋•Œ ํƒ„์ด 2์ฒœ๊ฐœ๋งŒ ์žˆ๋Š” ์ƒํ™ฉ์—์„œ 60fps๋ฅผ ๊ฐ„์‹ ํžˆ ์œ ์ง€ํ•˜๋Š”๊ฒƒ์„ ๋ณด์—ฌ์ฃผ์—ˆ๋‹ค.


Others๋ฅผ ๋บ€ ์ด์œ ๋Š” ์ €๊ฒŒ ์œ ๋‹ˆํ‹ฐ ์—๋””ํ„ฐ์—์„œ ๋จน๋Š” ์ž์›์ธ๊ฑธ๋กœ ์•Œ๊ณ ์žˆ๋Š”๋ฐ ๋นŒ๋“œํ•˜๋ฉด ์ € Others๋ฅผ ํ•ด์ œํ•œ๊ฑฐํ•˜๊ณ  ๋น„์Šทํ•˜๊ฒŒ ํ”„๋ ˆ์ž„์ด ๋‚˜์™€ ๋นผ๊ณ  ์ฒดํฌ๋ฅผ ํ–ˆ๋‹ค.


์—ฌ๊ธฐ์— ๋งต ๊ทธ๋ฆฌ๊ณ  ์—ฌ๋Ÿฌ ์Šคํฌ๋ฆฝํŠธ ์—ฌ๋Ÿฌ rigidbody๋ฅผ ๊ฐ€์ง„ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ํผํฌ๋จผ์Šค๋Š” ์ ์  ๋” ์ค„์–ด๋“ค๊ฒƒ์ด๊ณ 


ํ™”๋ฉด์— ํƒ„๋ง‰์„ ๊ฐ€๋“ ๋ฉ”์šฐ๋Š” ์ƒํ™ฉ์— ์ด๋Ÿฐ ๊ฒŒ์ž„์„ ๋นŒ๋“œํ•ด ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ํŒ๋งคํ•˜๋ฉด ์šฐ๋ฆฌ ๋ถ€๋ชจ๋‹˜๊ณผ ๋‚ด ๋งจํƒˆ์„ ์ง€ํ‚ค๊ธฐ ํž˜๋“ค๊ฒƒ์ด๋ผ ์˜ˆ์ƒ๋˜์–ด ํ๊ธฐํ•˜์˜€๋‹ค.


์ถ”๊ฐ€๋‚ด์šฉ - ๋ฌผ๋ฆฌ ๋ฉ”ํŠธ๋ฆญ์Šค์—์„œ ํƒ„๋ผ๋ฆฌ์˜ ์ถฉ๋Œ์„ ํ•˜์ง€ ์•Š๋„๋ก ์„ค์ • ํ•œ ๋’ค Rigidbody ์ถ”๊ฐ€ ๋ฐย Transform์œผ๋กœ ์ด๋™ํ•˜๋Š”๊ฒƒ์ด ์•„๋‹Œ Velocity๋กœ ์ด๋™ ํ•  ๊ฒฝ์šฐ ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ 4ms์ดํ•˜์˜ ํผํฌ๋จผ์Šค๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค



7ff3c028e2f206a26d81f6e0458576640e


7ef3c028e2f206a26d81f6e64f88766edc


2๋ฒˆ ํ›„๋ณด์ธ Particle System์ด๋‹ค


ํ™”๋ฉด์— 5๋งŒ๊ฐœ์˜ ํŒŒํ‹ฐํด์ด ๋– ์žˆ๋Š” ์ƒํ™ฉ์—์„œ๋„ ๋ง์ด ์•ˆ๋˜๋Š” ํผํฌ๋จผ์Šค๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.


๊ทผ๋ฐ ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ์ข€ ๊นŒ๋‹ค๋กœ์šด๊ฒŒ ๋‹จ์ ์ด๋‹ค.


Particle system์˜ ์„œ๋ธŒ ์ปดํฌ๋„ŒํŠธ?์ธ Trigger ํ•ญ๋ชฉ์—์„œ ์ถฉ๋Œ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•ด์ค„๊ป€๋ฐ ์ด ๋ถ€๋ถ„์— ์›ํ•˜๋Š” ์ฝœ๋ผ์ด๋”๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š”๊ฒŒ ์ƒ๊ฐ๋ณด๋‹ค ๊นŒ๋‹ค๋กญ๋‹ค ์ƒ๊ฐํ•œ๋‹ค.


๊ทธ๋ฆฌ๊ณ  ํŒŒํ‹ฐํด์€ Emit ๋˜๋Š” ์ˆœ๊ฐ„ ๋‚ด๊ฐ€ ๋” ์ด์ƒ ์กฐ์ ˆํ•  ์ˆ˜ ์—†๋‹ค. ( Force Field ์ œ์™ธํ•˜๋ฉด ์•„๋งˆ ๋ฐฉ๋ฒ•์ด ์—†์„๊ฒƒ๊ฐ™๋‹ค )


๊ทธ๋ ‡์ง€๋งŒ ๊ทธ๋Ÿฐ์ ์„ ๊ฐ์•ˆํ•ด๋„ ๋ง์ด ์•ˆ๋˜๋Š” ํผํฌ๋จผ์Šค๋ฅผ ๋ณด์—ฌ์ฃผ๋Š”๊ฑด ์ƒ๋‹นํ•œ ์žฅ์ ์ด๋‹ค.





3๋ฒˆ์งธ ํ›„๋ณด์˜€๋˜ ๊นƒํ—™์—์„œ ์ฐพ์€ ๊ธฐ๋ฌ˜ํ•œ ์นœ๊ตฌ๋‹ค

๋งํฌ) https://github.com/jongallant/Unity-Bullet-Hell


์ฝ”๋“œ๋ฅผ ์ข€ ๋œฏ์–ด๋ดค๋Š”๋ฐ ๋‚ด ์ˆ˜์ค€์œผ๋กœ ๊ตฌํ˜„๋„ ํž˜๋“ค๊ฒƒ ๊ฐ™๊ณ  ์ด๊ฑธ ๋”ฐ๋ผ ๋งŒ๋“œ๋Š”๊ฒƒ์—๋„ ์ƒ๋‹นํ•œ ์‹œ๊ฐ„์ด ๋“ค๊ฒƒ ๊ฐ™์•„์„œ 5์ผ ๋ถ™์žก๋‹ค๊ฐ€ ํฌ๊ธฐํ–ˆ๋‹ค.


๋งŒ์•ฝ ํƒ„๋ง‰์— ๊ด€์‹ฌ์ด ์žˆ๊ณ  ์œ„ 1,2ํ›„๋ณด๊ฐ€ ๋งˆ์Œ์— ๋“ค์ง€ ์•Š๋Š” ์‚ฌ๋žŒ์€ ์ •๋ง ๊ดœ์ฐฎ์€ ๋Œ€์•ˆ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.


์ฝ”๋“œ๋„ ์ข€ ์ž˜ ์ง ๊ฒƒ๊ฐ™๊ณ  ์•”ํŠผ ์‚ฌ์ง„์— ์ž˜ ๋ณด์ด์ง€ ์•Š๋Š”๋ฐ ์•„๋งˆ 15000, 10000 (์˜ค์ฐจ๋ฒ”์œ„ 500) ๊ฐœ๊ฐ€๋Ÿ‰์˜ ํƒ„์„ ๋„์› ์„๋•Œ์˜ ํผํฌ๋จผ์Šค๋‹ค


79f3c028e2f206a26d81f6e1418474655d


78f3c028e2f206a26d81f6e64088716aff


์œ„์˜ ์‚ฌ์ง„๋“ค์€ 15000๊ฐœ ๊ฐ€๋Ÿ‰์˜ ํƒ„




7bf3c028e2f206a26d81f6e64081776f05


์œ„์˜ ์‚ฌ์ง„์€ 10000๊ฐœ ๊ฐ€๋Ÿ‰์˜ ํƒ„์ด์˜€๋˜๊ฑธ๋กœ ๊ธฐ์–ตํ•œ๋‹ค.


์ด๊ฒƒ๋„ ํผํฌ๋จผ์Šค๊ฐ€ ์ƒ๋‹นํžˆ ๊ดœ์ฐฎ๊ณ  ๋ผ์ด์„ผ์Šค๋„ ๋ฌธ์ œ ์—†๋˜๊ฒƒ ๊ฐ™์ง€๋งŒ ๋‚ด ์ˆ˜์ค€์—์„œ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ด์„œ ๋„˜๊ฒผ๋‹ค.


๋‚ด๊ฐ€ ์ž‘์„ฑํ•˜์ง€ ๋ชปํ•œ๋‹ค๋ฉด ๊ทธ๊ฒŒ ์˜๋ฏธ์žˆ๋Š” ์ฝ”๋“œ์ผ๊นŒ ์‹ถ์€ ์ƒ๊ฐ๋„ ์žˆ์—ˆ๋˜๊ฒƒ ๊ฐ™๋‹ค





๊ทธ๋Ÿผ ํ›„๋ณด๊ตฐ์„ ์ •๋ฆฌํ•ด๋ณด๊ฒ ๋‹ค.


1. GameObject์— Circle Collider๋ฅผ ๋‹ฌ์•„ ๋ฌด์ง€์„ฑ์œผ๋กœ ์‚ดํฌํ•œ๋‹ค.

- ํผํฌ๋จผ์Šค๊ฐ€ ๋งค์šฐ ์•ˆ์ข‹์•„ ๋‹ค๋ฅธ ์žฅ์ ์ด ์žˆ๋”๋ผ๋„ ๊ณ ๋ คํ•  ํ•„์š”๊ฐ€ ์—†์Œ

-ย ๋ฌผ๋ฆฌ ๋ฉ”ํŠธ๋ฆญ์Šค์—์„œ ํƒ„๋ผ๋ฆฌ์˜ ์ถฉ๋Œ์„ ํ•˜์ง€ ์•Š๋„๋ก ์„ค์ • ํ•œ ๋’ค Rigidbody ์ถ”๊ฐ€ ๋ฐย Transform์œผ๋กœ ์ด๋™ํ•˜๋Š”๊ฒƒ์ด ์•„๋‹Œ Velocity๋กœ ์ด๋™ ํ•  ๊ฒฝ์šฐ ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ 4ms์ดํ•˜์˜ ํผํฌ๋จผ์Šค๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค

3600๊ฐœ์˜ ์ •๋„์˜ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ 8-8 ํ™˜๊ฒฝ์— ๋†“์ผ ๊ฒฝ์šฐ 16ms์ •๋„์˜ ํผํฌ๋จผ์Šค๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜๋Š”๋ฐ ๊ธฐ์กด์— ํ™•์ธํ•œ๊ฒƒ๊ณผ ํ™•์—ฐํžˆ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”๋‹ค.

Rigidbody๋กœ ํƒ„๋ง‰์„ ์ƒ์„ฑํ•˜๋Š”๊ฒƒ๋„ ์ƒ๋‹นํžˆ ๋งค๋ ฅ์ ์ธ ๋ฐฉํ–ฅ์ด๋ผ๊ณ  ์ƒ๊ฐ์ด ๋ฐ”๋€Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

์ง์ ‘ ๊ฒ€์ฆํ•ด์ฃผ์‹ ๋ถ„๊ป˜ ๊ฐ์‚ฌ๋ฅผ ํ‘œํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฐฉํ–ฅ์œผ๋กœ๋„ ํƒ„๋ง‰์„ ํ•œ๋ฒˆ ์ œ์ž‘ํ•ด๋ณด์•„์•ผ๊ฒ ๋‹ค.


2. Particle System์„ ์ด์šฉํ•œ๋‹ค.

์žฅ์ 

- ํผํฌ๋จผ์Šค๊ฐ€ ๋งค์šฐ ์ข‹์Œ

๋‹จ์ 

- ํ•œ๋ฒˆ ์†์— ๋– ๋‚œ ํƒ„์€ ์กฐ์ ˆํ•  ์ˆ˜ ์—†์Œ (Force Field ์ œ์™ธ ๊ทผ๋ฐ ํฌ์Šคํ•„๋“œ๋ฅผ ์“ฐ๋”๋ผ๋„ ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ์ง€๋Š” ์•„์ง ํ…Œ์ŠคํŠธ๊ฐ€ ๋งŽ์ด ์ง„ํ–‰๋˜์ง€ ์•Š์Œ.)

- ์ถฉ๋Œ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ฝœ๋ผ์ด๋” ๋“ฑ๋ก ๊ณผ์ •์ด ์กด์žฌํ•จ ( ์Šคํฌ๋ฆฝํŠธ ์ƒ์œผ๋กœ ์ œ์–ด ๊ฐ€๋Šฅ )

3. Compute Shade๋ฅผ ์ด์šฉํ•œ Gpu์— ์ง์ ‘ ๋ Œ๋” ๋ช…๋ น, ๋‚ด๋ถ€ ์Šคํฌ๋ฆฝํŠธ์—์„œ RayCast๋ฅผ ํ†ตํ•˜์—ฌ ๊ฐœ๋ณ„์ ์ธ ๋ฌผ๋ฆฌ์ฒ˜๋ฆฌ

์žฅ์ 

- ๋ฌด๋‚œํ•œ ํผํฌ๋จผ์Šค

- ์†์— ๋– ๋‚œ ํƒ„๋ง‰๋„ Shape, ์†๋„ ๊ฐ™์€ ๋ฌผ๋ฆฌ ์‚ฌํ•ญ๋„ ๋ณ€ํ˜• ๋ฐ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•จ

๋‹จ์ 

- ๋‚ด ๋‡Œ๋กœ๋Š” ์ด ์ฝ”๋“œ๋ฅผ ์ดํ•ด ๋ชปํ•˜๊ฒ ์Œ



์ด๋Ÿฌํ•œ ์ƒํ™ฉ์„ ๊ณ ๋ คํ•˜์˜€์„ ๋•Œ 2๋ฒˆ Particle System์œผ๋กœ ํƒ„๋ง‰์„ ๋งŒ๋“ค์–ด ๋ณผ๋ ค๊ณ  ํ•œ๋‹ค.



์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Particle System์œผ๋กœ ํƒ„๋ง‰์„ ๋งŒ๋“ค๋ ค๋ฉด ์–ด๋–ค ๋ฐ‘์ž‘์—…์„ ํ•˜๋ฉด ์ข‹์„์ง€์™€ ๋‚ด๊ฐ€ ์˜๊ฐ์„ ์–ป๊ฒŒ๋œ ์œ ํŠœ๋ธŒ ๋งํฌ๋ฅผ ์˜ฌ๋ฆด๋ ค๊ณ  ํ•œ๋‹ค.


์šฐ์„  ๊ฒŒ์ž„์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ด Particle System์„ Add Componentํ•ด์„œ ๋‹ฌ์•„์ฃผ๊ฑฐ๋‚˜ ์ƒ์„ฑํ•  ๋•Œ Particle System์„ ์„ ํƒํ•ด ๋งŒ๋“ค์–ด์ค€๋‹ค.


๊ทธ๋ฆฌ๊ณ  ํƒ„์„ ์ผ์ง์„ ์œผ๋กœ ๋ฐœ์‚ฌํ•ด์ฃผ๊ธฐ ์œ„ํ•ด Shape๋ฅผ ๋ณ€ํ˜•ํ•ด์ค€๋‹ค.


๋‚˜๋Š” Shape์˜ ํ•ญ๋ชฉ์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ผ์ง์„ ์œผ๋กœ ํƒ„๋ง‰์„ ๋ฐœ์‚ฌํ•˜๊ฒŒ ํ•˜์˜€๋‹ค.

Shape -> Edge

Radius -> 0์œผ๋กœ ์ž…๋ ฅํ•˜๋ฉด 0.0001๋กœ ์ž…๋ ฅ๋จ.

Mode -> ๊ทธ๋ƒฅ ๋‘ 

Spread -> ๊ทธ๋ƒฅ ๋‘์—ˆ์„ํƒ ๋ฐ 0์œผ๋กœ ์„ค์ •


์•„๋งˆ ๊ฒŒ์ž„์˜ค๋ธŒ์ ํŠธ๋ฅผ ๊ทธ๋ƒฅ ๋งŒ๋“ค๋ฉด 2D๋ฅผ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ์นด๋ฉ”๋ผ๋ฅผ Orthographic์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์„๋–ผ ์นด๋ฉ”๋ผ๊ฐ€ ๋ณด๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํƒ„์„ ๋ฐœ์‚ฌํ• ๊ฒƒ์ด๋‹ค.


๊ทธ๋ž˜์„œ ๋‚œ Particle System GameObject์˜ Rotation์˜ Y์ถ•์„ 180์œผ๋กœ ๋ณ€๊ฒฝํ•˜์˜€๋‹ค.


<๋ณ€๊ฒฝ ์‚ฌ์ง„>

743033c26e15d12cb66f5a61fe5dc0f9eaeb9ce5e53dbd01fc15bf7d9444ff612c8e82952234447df4




๊ทธ๋Ÿฌ๋ฉด ํƒ„๋ง‰์— ์‚ฌ์šฉํ•  ๋งˆํ…Œ๋ฆฌ์–ผ์„ ๋งŒ๋“ค์–ด๋ณผ ์ฐจ๋ก€๋‹ค.


PixelArt ์Šคํƒ€์ผ์˜ ๊ฒŒ์ž„์„ ๋งŒ๋“ค๊ฑฐ๊ธฐ์— ํƒ„๋ง‰๋„ ๊ทธ์— ๋งž์ถฐ ๋งŒ๋“ ๋‹ค.

PPU๋ฅผ ์„ค์ •ํ•ด์ฃผ๊ณ  Fiter Mode๋ฅผ Point, Max Size๋Š” ์Šคํ”„๋ผ์ดํŠธ์˜ ํฌ๊ธฐ์— ๋งž๊ฒŒ ๊ทธ๋ฆฌ๊ณ  Compression์„ None์œผ๋กœ ํ•ด์ฃผ์—ˆ๋‹ค.


์ดํ›„ ๋นˆ ๋งˆํ…Œ๋ฆฌ์–ผ์„ ๋งŒ๋“ค์–ด Legacy Shaders/Particles/Additive ๋กœ ์„ค์ •ํ•˜์˜€๋‹ค.


7a3033c26e15d12da9575b50fa5ae2f1308cbedc40b2e55a5ec4ab0f860706af23b4ec4630041161100bc1db



์ดํ›„ ๋งˆํ…Œ๋ฆฌ์–ผ์— ๋‚ด๊ฐ€ ๋„ฃ์„ ํƒ„๋ง‰์˜ ์Šคํ”„๋ผ์ดํŠธ๋ฅผ ๋„ฃ๊ณ  Particle System์˜ Renderer ํ•ญ๋ชฉ์— Material์— ๋งŒ๋“  ๋งˆํ…Œ๋ฆฌ์–ผ์„ ๋„ฃ์œผ๋ฉด ํ•˜๋‹จ์ฒ˜๋Ÿผ ๋ณ€ํ•˜๊ฒŒ ๋œ๋‹ค.



753617ce6837d42da8735a43ca5ae3d1ecbc93873bbd9f8635fed53886a6bece3791c3b4b257


Particle System ๋‚ด๋ถ€๋Š” ๋Œ€๋ถ€๋ถ„ ์ฝ”๋“œ์ƒ์—์„œ ์ˆ˜์ •ํ•ด์„œ (Material์ด๋‚˜ Shape ์ง€๊ธˆ ์„ค์ •ํ–ˆ๋˜ ๋ชจ๋“ ๊ฒƒ๋„) ํฌ๊ฒŒ ์˜๋ฏธ ์—†๋Š” ํ–‰์œ„๊ธด ํ•œ๋ฐ


ํƒ„๋ง‰์ด ๋‚˜๊ฐ„๋‹ค๋Š”๊ฑธ ํ™•์ธํ•ด ๋ณด๋Š”๊ฒŒ ์ข€ ์ค‘์š”ํ•œ๊ฒƒ ๊ฐ™๋‹ค.


๊ฐ€๋Šฅํ•œ๊ฒƒ์„ ์•Œ๊ณ  ๋ค๋น„๋Š”๊ฒƒ๊ณผ ๋ชจ๋ฅด๊ณ  ๋ค๋น„๋Š”๊ฒƒ์€ ํ•˜๋Š˜๊ณผ ๋•…์ฐจ์ด๋‹ˆ๊น



์ด๊ธ€์„ ์˜ฌ๋ฆฐ ๋’ค์—๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์ž„์‹œ์ ์œผ๋กœ ํŒŒํ‹ฐํด์„ ๋ถ„์‚ฌํ•ด๋ณด๊ณ  ๊ฐ„๋‹จํ•œ ํŒจํ„ด์„ ๋งŒ๋“œ๋Š”๊ฒƒ๊นŒ์ง€ ํ•ด๋ณผ๊ฒƒ ๊ฐ™๋‹ค.


์–ด๋А์ •๋„ ์ •๋ฆฌ๊ฐ€ ๋˜๋ฉด ๋˜ ์˜ฌ๋ฆฌ๋Ÿฌ์˜ด




๋ชฉํ‘œ ์ง€์  < ๋ณ€๋™๋  ์ˆ˜ ์žˆ์Œ >


1. ํŒŒํ‹ฐํด ์‹œ์Šคํ…œ์˜ ์„ค์ • <-- ํ˜„์ œ ์œ„์น˜


2. ํŒŒํ‹ฐํด ์‹œ์Šคํ…œ์„ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ์ •

3. ๊ฐ„๋‹จํ•œ ํŒจํ„ด์„ ๋งŒ๋“ค์–ด๋ณด๊ธฐ

4. ์—ฌ๋Ÿฌ ํŒจํ„ด์„ ์ด์–ด ์—ฐ์†์ ์œผ๋กœ ๊ทธ๋ฆฌ๊ณ  ๋™์‹œ์— ๋‹ค์–‘ํ•œ ํŒจํ„ด์„ ๋ถ„์‚ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ

5. ๋ณตํ•ฉ์ ์ธ ํŒจํ„ด์„ ๋งŒ๋“ค์–ด ๋ณด๊ธฐ

6. ์ฝ”๋“œ์ƒ์œผ๋กœ ๋ฏธ๋ฆฌ ์ œ์ž‘๋œ ํŒจํ„ด์„ ScriptAbleObject ํ˜น์€ Excel๋“ฑ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ ํƒ€ ์ธ์›๋„ ์‰ฝ๊ฒŒ ํŒจํ„ด์„ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ

7. ์ง€์˜ฅ์˜ ํด๋ฆฌ์‹ฑ ์ž‘์—…


-1๋ฒˆ์•ˆ์— ๋Œ€ํ•˜์—ฌ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๊ฒƒ์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค-