๐ก ์ด๋ฒ ํฌ์คํ ์์๋ ์ ๋ ฅ๊ณผ, ํธ๋ ์ด์ค๋ฅผ ์ด์ฉํ ์กํฐ์์ ์ํธ์์ฉ์ ๋ํด์ ์์ฑํ๊ฒ ๋ค.
์ํธ์์ฉ์ ์ํด์ ์ ๋ง ๊ฐ๋จํ๊ฒ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ํด์ ์ตํ์ผ๋ ์ง์ ํ์ฉํด๋ณด๊ฒ ์ต๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ ๋ฌธ์ ์ด์ด ๋ณด๊ฒ ์ต๋๋ค.
1. ์ํธ์์ฉ์ ์ํ ๊ธฐ์ด
2. Line Trace๋ฅผ ์ฌ์ฉํ ์ํธ์์ฉ
3. Overlap Event๋ฅผ ์ฌ์ฉํ ์ํธ์์ฉ
4. ์์ฉ
Line Trace์ ์ด์ฉํ ์ํธ ์์ฉ์ ํตํด ๋ฌธ์ ์ฌ๋ ๋ก์ง์ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ๐
์ํธ์์ฉ์ ํ ์ ์๋ ํค์
๋ ฅ์ ์์ฑํ๊ฒ ์ต๋๋ค.
IA_Interact๋ฅผ ์์ฑํฉ์๋ค.
๊ทธ๋ฆฌ๊ณ IMC์์ E์
๋ ฅ์ผ๋ก ๋งคํํด์ฃผ๊ฒ ์ต๋๋ค.
BP_Player์๊ฒ ์
๋ ฅ ์ถ๊ฐ ํ print๋ฅผ ์ฐ์ด์ ํ์ธํฉ์๋ค.
์๋์ต๋๋ค.
์ด์ Eํค๋ฅผ ๋๋ฅด๋ฉด Line Trace๊ฐ ๋ฐ์ฌ๋๋๋ก ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
์ ํฌ๊ฐ ๋ฐ์ฌํ Trace์ ์ฑ๋์ ์ค์ ํด์ฃผ์ด์ผ ํฉ๋๋ค.
Collision Filtering (Block, Overlap, Ignore) ์ค์ ์ผ๋ก ์ํธ์์ฉํ ๋ฌผ์ฒด๋ฅผ ๊ตฌ๋ถํด์ฃผ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ด์ฃ .
ํด๋ฐ์ Edit - Project Settings๋ก ๊ฐ์ค์๋ค.
๊ทธ๋ฆฌ๊ณ Engine - Collision์ผ๋ก ๋ค์ด๊ฐ์ ์ ์ฑ๋์ ์์ฑํด์ค์๋ค.
์ด๋ฆ์ Interaction, Default Response๋ Overlap์ผ๋ก ์ค์ ํฉ๋๋ค.
BP_Player์๊ฒ ์ํธ์์ฉ Line Trace๊ฐ ๋ฐ์ฌ๋ ์์น๊ฐ ๋ Mesh๋ฅผ ํ๋ ์ถ๊ฐํด์ฃผ๊ฒ ์ต๋๋ค.
Static Mesh๋ก ํ๋ ์์ฑํ์ฌ Interaction์ด๋ผ๊ณ ์ด๋ฆ ์ง์ด์คฌ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๋นํ ์์น๋ก ์ค์ ํด์ค์๋ค.
์ ๋ ์บ๋ฆญํฐ์ ๊ฐ์ดํ ์ ๋๋ก ์ค์ ํ์ต๋๋ค.
BP_Player์๊ฒ Event Graph๋ก ์ด๋ํด์ IA_Interact๋ฅผ ์์ ํด์ค์๋ค
Line Trace By Channel ๋
ธ๋๋ฅผ ์ถ๊ฐํฉ์๋ค.
Start์ End๋ฅผ ๋จผ์ ์ค์ ํด์ค์๋ค.
๋ฐ์ฌ์ ๊ธฐ์ค์ด ๋ Interaction์ ๊ฐ์ ธ์ต์๋ค.
๊ทธ๋ฆฌ๊ณ World Location๊ณผ World Rotation์ ๊ฐ์ ธ์ต๋๋ค.
Start๋ Get World Location์ ๊ฐ์ ๊ทธ๋๋ก ์ด์ด์ฃผ๋ฉด ๋ฉ๋๋ค.
End๋ Rotation์ ๊ฐ์ ๊ณฑํด์ Trace์ ๋ฐฉํฅ๊ณผ ๊ธธ์ด๋ฅผ ๊ณ์ฐํด์ฃผ๊ณ , ์์์ ์ ๋ํด์ ๋์ ์ ์ค์ ํด์ค๋๋ค.
๊ทธ๋ฆฌ๊ณ Trace Channel์ ์ฐ๋ฆฌ๊ฐ ์์ฑํ Interaction์ผ๋ก ๋ณ๊ฒฝํด์ค์๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์ ํ์ธํ๊ธฐ ์ํด Draw Debug Type์ For Duration์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
โ์ปดํ์ผ ์ ์ฅโํ ํ๋ ์ดํด๋ณด๋ฉด Line Trace๊ฐ ๋์ค๋๊ฑธ ํ์ธํ ์ ์์ต๋๋ค.
๊ณฑํ๊ธฐ์ ๊ฐ์ ์ ์กฐ์ ํด ์ ๋นํ ๊ธธ์ด๋ก ์ค์ ํฉ๋๋ค.
์ด์ ๋ฌธ์ ๋ง๋ค์ด ๋ด
์๋ค.
์ฐ์ Actor๋ก BP_Door ๋ง๋ค์ด ์ค์๋ค.
Static Mesh ์ปดํฌ๋ํธ ์ถ๊ฐํด์ฃผ๊ณ ๋ฌธ Mesh๋ฅผ ๋ฃ์ด์ค์๋ค.
Door์ ํ์์ Box Collision์ ์ถ๊ฐํด์ค์๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์ ํ ์นธ์ ์ค์ ํฉ๋๋ค.
Line Trace๋ก ๋ฌธ์ ๊ฒ์ถํ๊ธฐ ์ํด์๋ 2๊ฐ์ง๊ฐ ํ์ํฉ๋๋ค.
Line Trace๊ฐ ๊ฐ์งํ๊ธฐ ์ํด ์ถฉ๋์ ๊ฒ์ฌํฉ๋๋ค.
๊ฐ์งํ ๋์์ ์ ๋ณด ์ค ํ๊ทธ๋ฅผ ๊ฐ์ ธ์ ๊ฒ์ฌ ํ ๋ก์ง์ ์คํํฉ๋๋ค.
์ถฉ๋๊ฒ์ฌ๋ฅผ ์ํด Box์ Collision ์ค์ ์ ๋จผ์ ์์ ํ๊ฒ ์ต๋๋ค.
์ ์ค์ ์ผ๋ก ์ฐ๋ฆฌ๋ ์ถฉ๋์ด ๊ฐ๋ฅํ๋๋ก ๋ง๋ค์์ต๋๋ค.
BP_Door๋ฅผ ์ ํํ์๊ณ Details์์ tag๋ฅผ ๊ฒ์ํด์ค๋๋ค.
Actor์์ ํ๊ทธ ์ถ๊ฐํด์ Door๋ก ์ค์ ํฉ๋๋ค.
BP_Door์๊ฒ ํ๊ทธ๋ฅผ ์ฃผ์
์ผ ํฉ๋๋ค
์ด์ ์ฐ๋ฆฌ๋ BP_Door์๊ฒ Door๋ผ๋ ํ๊ทธ๋ฅผ ์ค๊ฒ๋๋ค.
๊ฐ์งํ ๋์ ์ค Door ํ๊ทธ๋ฅผ ๊ฐ์ง ์กํฐ๋ง ๊ตฌ๋ถํด์ ๋ก์ง์ ์์ฑํ ์ ์์ต๋๋ค.
BP_Player์ Event Graph๋ก ๊ฐ๋๋ค.
Line Trace By Channel ๋
ธ๋์ Out Hit ๋ฐํ๊ฐ์ ๋์ด์ Break Hit Result ๋
ธ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
๊ทธ๋ผ ์๋ง์ ๋ฐํ๊ฐ๋ค์ด ์์ต๋๋ค.
์ฐ๋ฆฐ ์ฌ๊ธฐ์ Hit Actor์ ์ฌ์ฉํ ๊ฒ๋๋ค.
์ ๋ง ๋ค์ํ ๊ฐ๋ค์ ํ์ฉํ ์ ์๋๋ฐ ์์ธํ ๊ฒ์ ์๋ ๊ณต์๋ฌธ์ API๋ฅผ ํ์ธํ์๊ธธ ๋ฐ๋๋๋ค.
Hit Actor๋ฅผ ๋์ด์ Actor Has Tag๋
ธ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ Tag๋ฅผ Door๋ก ๋ณ๊ฒฝํด์ค๋๋ค.
์ถฉ๋ํ ์กํฐ์ ํ๊ทธ๋ฅผ ๊ฒ์ฌํด์ฃผ๋ ๊ฒ๋๋ค.
์ด๋ฅผ Branch์ ์ฐ๊ฒฐํด์ ์ถ๋ ฅํด๋ณด๊ฒ ์ต๋๋ค.
โ์ปดํ์ผ ์ ์ฅโํ ํ๋ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ฌธ์ Trace๋ฅผ ๋ฐ์ฌํด์ ์ถฉ๋ํ ๋๋ง Hello๊ฐ ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ์์ต๋๋ค.
์ด์ ๋ฌธ์ด ์ด๊ณ ๋ซํ๋ ๋ก์ง์ผ๋ก ์์ ํ๋ฉด ๋ฉ๋๋ค.
BP_Door๋ฅผ ์บ์คํ
ํด์ ๊ฐ์ ธ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฌธ์ด 90๋๋ก ์ด๋ฆฌ๋๋ก ํ๋ฉด ๋๊ฒ ์ฃ ?
โ์ปดํ์ผ ์ ์ฅโํ ํ๋ ์ดํด๋ณด๋ฉด ๋ฌธ์ด ์ด๋ฆฌ๋๊ฑธ ํ์ธํ ์ ์์ต๋๋ค.
๋ฒ์ปฅ ์ด๋ฆฌ๋ค์.
์ด๊ฒ์ผ๋ก Line Trace๋ฅผ ํ์ฉํด์ ๋ฌธ๊ณผ ์ํธ์์ฉ ํด๋ณด์์ต๋๋ค.
Line์ด ์๋๋ผ ์ข ๋ ๋๊ฒ ์ํธ์์ฉ์ ํ๊ณ ์ถ๋ค ํ์๋ฉด Box Trace๊ฐ์ด ๋ฒ์๊ฐ ์๋ Trace๋ฅผ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ์ค ํ๋ ์ด์ด๊ฐ ์ง์ ๋ฌธ์ ๊ฐ์ ์กฐ์ ํ์ง ์์ต๋๋ค.
์๋ง์ ๊ฒ์ ์์๋ค์ ๊ฐ์ ํ๋ํ๋ ๋ค ์กฐ์ ํด์ฃผ๋ฉด Player์ ๋ก์ง์ด ๋๋ฌด ๋ณต์กํด์ง๊ฒ ์ฃ ?
isDoorOpen๊ฐ์ ๋ณ์๋ฅผ True, False๋ก๋ง ๋ณ๊ฒฝํด์ฃผ๊ฑฐ๋,
์ปค์คํ
์ด๋ฒคํธ๋ฅผ ๋ง๋ค์ด์ ํธ์ถํ๋๋ก ํ๋ฉด ๋์ฃ .
๊ทธ๋ฆฌ๊ณ ๋ฌธ์ด ๋ถ๋๋ฝ๊ฒ ์ด๊ณ ๋ซํ๋ ๊ธฐ๋ฅ์ ๋์ค์ ๋ฃ์ด ๋ณด๊ฒ ์ต๋๋ค.
ํ๋ ์์ ํ์๋ฉด Line Trace๊ฐ ์ถฉ๋ํ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฉด Error๊ฐ ๋ฐ์ํฉ๋๋ค.
๊ทธ๋์ ์ถฉ๋์ ๊ฐ์งํ ๊ฒฝ์ฐ์๋ง ๋ก์ง์ ์ํํ๋๋ก Branch๋ฅผ ์ถ๊ฐํ๊ณ ๋ง๋ฌด๋ฆฌํ๊ฒ ์ต๋๋ค.
1. ์ํธ์์ฉ์ ์ํ ๊ธฐ์ด
2. Line Trace๋ฅผ ์ฌ์ฉํ ์ํธ์์ฉ
3. Overlap Event๋ฅผ ์ฌ์ฉํ ์ํธ์์ฉ
4. ์์ฉ