๐ก ์ด๋ฒ ํฌ์คํ ์์๋ ์ ๋ ฅ๊ณผ, ํธ๋ ์ด์ค๋ฅผ ์ด์ฉํ ์กํฐ์์ ์ํธ์์ฉ์ ๋ํด์ ์์ฑํ๊ฒ ๋ค.
์์ ํฌ์คํ ํ ์ํธ์์ฉ ๊ธฐ๋ฅ๋ค์ ์์ฉํ์ฌ ์ด์ ๋จน๊ณ , ์ ์ ๊ณต๊ฒฉํ๋ ๊ธฐ๋ฅ์ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
1. ์ํธ์์ฉ์ ์ํ ๊ธฐ์ด
2. Line Trace๋ฅผ ์ฌ์ฉํ ์ํธ์์ฉ
3. Overlap Event๋ฅผ ์ฌ์ฉํ ์ํธ์์ฉ
4. ์์ฉ
Project Settings - Engine - Collision - Trace Channels๋ก ์ด๋ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ New Trace Channel์ ๋๋ฌ Fire๋ฅผ Block ์ผ๋ก ์ค์ ํ์ฌ ์ค๋๋ค.
๊ธฐ์กด ์ฐ๋ฆฌ์ IA_Fire๋ฅผ ์ด์ง ์์ ํด์ฃผ๊ฒ ์ต๋๋ค.
Line Trace By Channel์ Trace Channel์ ๋ฐฉ๊ธ ์๋ก ์ถ๊ฐํ Fire๋ก ์ค์ ํด์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ Return Value๋ฅผ Branch์ ์ด์ด Hitํ์ ๋๋ง ๋์ํ์ฌ ์ค๋ฅ๊ฐ ๋์ง ์๊ฒ ํด์ค๋๋ค.
๊ทธ๋ฆฌ๊ณ Out Hit๋ฅผ ๋์ด์ Break Hit Result๋ฅผ ๊ฐ์ ธ์ต์๋ค.
Hit Actor์์ Actor Has Tag ๋
ธ๋๋ฅผ ๊ฐ์ ธ์์ Tag๊ฐ Enemy์ธ์ง ๊ฒ์ฌํ๋๋ก ๋ง๋ค์ด ์ค์๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์ด ๊ณต๊ฒฉ์ ๋ง๋๋ก ํด์ผ ํ๋๋ฐ, ์ธ๋ฆฌ์ผ์์๋ ์์ฃผ ๊ฐํธํ ๋ ธ๋๊ฐ ์์ต๋๋ค.
๋ฐ๋ก Apply Damage ์
๋๋ค.
Damaged Actor : ํผํด๋ฅผ ์ ์ ๋์
Base Damage : ํผํด๋
์ด 2๊ฐ๋ง ์๊ณ ๊ฐ์๋ค.
ํผํด๋ฅผ ์
์ ๋์์ Hit Actor์ฃ ?
Base Damage๋ ์ผ๋จ ์์๋ก 10์ ๋ฃ์ด ์ค์๋ค.
์ดํ ๊ฒ์์ ์ค๊ณ์ ๋ฐ๋ผ ๋จน์ ๋ฌด๊ธฐ์ Damage๊ฐ์ด ์๋ค๋ฉด ๊ฐ์ ธ์์ ๋ฃ์ผ๋ฉด ๋ฌด๊ธฐ๋ง๋ค ๋ค๋ฅด๊ฒ ํผํด๋ฅผ ์ค ์ ์๊ฒ ์ฃ ?
์ ์ฒด ํ๋ฆ๋๋ ๋น๊ต ํด๋ด
์๋ค.
์ด๋ฒ์ ํผํด๋ฅผ ์
ํ ์ ์ ๋ง๋ค์ด ๋ด
์๋ค.
Character๋ก BP_Enemy๋ฅผ ๋ง๋ค์ด ์ค์๋ค.
์บ๋ฆญํฐ ๋ฉ์๋ฅผ ๊ฐ๋จํ๊ฒ SKM_Manny๋ฅผ ๋ฃ์ด์คฌ์ต๋๋ค.
์ด์ ์๋ ๊ณผ์ ์ ํ๋์ฉ ์งํํ์ ์ผ ํฉ๋๋ค.
- Tag ์ค์
- Collision Presets ์ค์
ํ๊ทธ ์ค์ ๋ถํฐ ํ๊ฒ ์ต๋๋ค.
์ด ํ๊ทธ ์ค์ ์ ํตํ์ฌ ์ด์ BP_Player์ Actor Has Tag (Enemy)์ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋์์ต๋๋ค.
์ด์ Line Trace๊ฐ ๋ง๋๋ก ์ค์ ํด์ฃผ์ด์ผ ํฉ๋๋ค.
Line Trace๋ ํ ์ชฝ์ด ์ต์ Block์ด์ฌ์ผ ์ถฉ๋์ด ๊ฐ์ง๊ฐ ๋ฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ Fire ์ฑ๋์ ์ถ๊ฐํ ๋ Block์ผ๋ก ์ค ๊ฐ์ ํ์ธํด๋ด
์๋ค.
์ด์ ์ BP_Player์์ Apply Damage๋ ธ๋๋ฅผ ํตํด ํผํด๋ฅผ ์ค ๋์์ ์ ํ์ต๋๋ค.
ํผํด๋ฅผ ์ ์ ๋์์ Event Any Damage๋ฅผ ํตํด ํผ๊ฒฉ ์ ์ด๋ฒคํธ๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค.
์ฐ์ HP (Float) ๋ณ์๋ฅผ ๋ง๋ค์ด์ ์ ๋นํ ๊ฐ์ผ๋ก ๋ฃ์ด ์ค๋๋ค.
๊ทธ๋ฆฌ๊ณ AnyDamage ๋
ธ๋๋ฅผ ์ถ๊ฐํด์ค๋๋ค.
๋ฐํ๊ฐ์ Damage๊ฐ ๋ณด์ด๋๋ฐ ์ด ๊ฐ์ด Apply Damage์์ ์ค์ ํ Base Damage์ ๋๋ค.
HP์์ Damage๋ฅผ ๋บ ๊ฐ์ ๋ค์ Set ํด์ฃผ๋ฉด ์ฒด๋ ฅ์ด ๊ฐ์๋๊ฒ ์ฃ ?
์ด์ ์บ๋ฆญํฐ์ ์ฒด๋ ฅ์ด 0๋ณด๋ค ํฐ์ง๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ฌ ์์ฌ ์ฌ๋ถ๋ฅผ ํ๋จํด๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๋ฅ Branchํ๋ ๋ฃ์ผ๋ฉด ๋ฉ๋๋ค.
๊ฐ๋จํ์ฃ ?
True๋ฉด ์์กด, False๋ฉด ์ฌ๋ง์
๋๋ค.
True์๋ ๊ทธ๋ฅ ํ์ฌ ์ฒด๋ ฅ์ ์ถ๋ ฅํ๋๋ก ํด์ฃผ๊ฒ ์ต๋๋ค.
False์๋ ์ ์ด ์ฃฝ์ ๊ฒ์ฒ๋ผ ๋ณด์ผ ์ ์๊ฒ ํด์ฃผ๊ฒ ์ต๋๋ค.
Set Simulate Physics ๋ ธ๋์ Set Collision Enabled๋ ธ๋๋ฅผ ์ถ๊ฐํด์ Mesh์ ์ฐ๊ฒฐํด์ค๋๋ค.
Set Collision Enabled์ Type์ Collision Enabled(Query and Physics)๋ก ํด์ค๋๋ค.
์ ๋ Base Damage๋ 10, ์ ์ HP๋ 30์ผ๋ก ํด๋์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ โ์ปดํ์ผ ์ ์ฅโํ ํ๋ ์ด ํด๋ณด๋ ์ฒด๋ ฅ ๋ก๊ทธ 2๋ฒ ์ดํ, ํ์์ด ์ฐ๋ฌ์ง๋ ์ ์ ํ์ธํ ์ ์์ต๋๋ค.
์์ดํ ์ ํ๋ํ ์ ์๋๋ก ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ๐
ํค ๋งคํ์ ์ด์ ํฌ์คํ ์์ ๋ฑ๋กํ Eํค๋ฅผ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
Actor ํด๋์ค๋ก BP_Rifle์ ์์ฑํด์ฃผ๊ฒ ์ต๋๋ค.
2๊ฐ์ง ์์๋ฅผ ์ถ๊ฐํ๊ฒ ์ต๋๋ค.
Skeletal Mesh์ ์ด์ ๋ฃ๊ณ , Box Collision์ Scale์ (3,3,3)์ผ๋ก ์ฃผ์ด ์กฐ์ ํ์์ต๋๋ค.
BP_Rifle (Self)๋ฅผ ์ ํํ์ฌ Tag๋ฅผ Item์ผ๋ก ์ฃผ๊ฒ ์ต๋๋ค.
์ฐ์ BP_Player๋ฅผ ์์ ํด๋ณด๊ฒ ์ต๋๋ค.
Skeletal Mesh์ ๋ฃ์๋ Rifle Mesh๋ฅผ ์ง์์ค์๋ค.
๋ ๋ฒจ์ ์ด ์์ดํ
์ ๋จน์ผ๋ฉด ๋ค์ ์๊ธฐ๋๋ก ํ ๊ฒ์
๋๋ค.
์ด๋ฒ์๋ Line Trace๋ฅผ ์ฌ์ฉํด์ Item๊ณผ ์ํธ์์ฉํ๋๋ก ํ๊ฒ ์ต๋๋ค.
์ด์ Line Trace์ Actor Has Tag๊น์ง์ ๋ก์ง์ ๊ฐ๋ณ๊ฒ ํ ์ ์์ ๊ฒ๋๋ค.
์ด์ Hit Actor๋ฅผ ๋์ด์ BP_Rifle์ Castํด์ค๋๋ค.
Cast์์ Rifle์ Skeletal Mesh๋ฅผ ๊ฐ์ง๊ณ ์๋ Skeletal Mesh Component๋ฅผ ๊ฐ์ง๊ณ ์ค๊ณ , ํด๋น Mesh๊ฐ ๊ฐ์ง Asset์ ๋ถ๋ฌ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ Set Skeletal Mesh Asset ๋
ธ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
Target์ BP_Player์ Rifle์
๋๋ค!!
๊ทธ๋ฆฌ๊ณ ์๋ New Mesh์๋ ๋ถ๋ฌ์จ BP_Rifle์ Asset์ ๋ฃ์ด ์ค๋๋ค.
์ด์ ๋จน์ผ๋ฉด ์์ดํ
์ด ์ฌ๋ผ์ง๋๋ก ํ๊ฒ ์ต๋๋ค.
Destroy Actor ๋
ธ๋๋ฅผ ์ถ๊ฐํ๊ณ BP_Rifle์ ๋ ํผ๋ฐ์ค๋ฅผ ๊ฐ์ง ๊ฐ์ Target์ ๋ฃ์ด ์ค๋๋ค.
โ์ปดํ์ผ ์ ์ฅโํ ํ๋ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
Line Trace๋ก ์ํธ์์ฉํ์ฌ Player์๋ Rifle Mesh๊ฐ ์
ํ์ก๊ณ , ์์ดํ
์ ์ฌ๋ผ์ง ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ด๊ฒ์ผ๋ก ํ์ตํ ์ํธ์์ฉ์ ์์ฉํ์ฌ ์์ดํ ์ค๊ธฐ์ ํผ๊ฒฉ์ ๊ตฌํํ์์ต๋๋ค.
๋ํ ์ผ์ ์ข ๋ ์ถ๊ฐํด์ฃผ๋ฉด์ ๊ณต๋ถํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
1. ์ํธ์์ฉ์ ์ํ ๊ธฐ์ด
2. Line Trace๋ฅผ ์ฌ์ฉํ ์ํธ์์ฉ
3. Overlap Event๋ฅผ ์ฌ์ฉํ ์ํธ์์ฉ
4. ์์ฉ