
์ด๋ฒ ๊ธ์ ์ธํ๋ฐ์ ํตํด ์ธ๋ฆฌ์ผ5 VR ๊ฐ์๋ฅผ ์๊ฐํ์ฌ ์ค์ตํ ๋ด์ฉ์ ์ ๋ฆฌํ ํฌ์คํ ์ ๋๋ค. ๊ฐ์๋ฅผ ๋ณด๋ฉด์ ์ ๊ฐ ์ดํดํ ๊ฒ์ ํ ๋๋ก ๊ธ์ ์ ์ ๊ฒ์ด๊ธฐ์, ์๋ฒฝํ ์ ๋ณด๊ฐ ์๋ ์ ์์ต๋๋ค.
[์ ๋ฌธ์๋ฅผ ์ํ UE5] Part5. ์ธ๋ฆฌ์ผ ์์ง VR - ์ธํ๋ฐ | ๊ฐ์
์ธ๋ฆฌ์ผ ์์ง ๊ธฐ๋ฐ์ ์ฌ๋ฌ ๊ฐ์ง VR ๊ธฐ์ ์ ํ์ตํ๋ ๊ฐ์์ ๋๋ค. ์ด๋์๋ ๊ณต๊ฐ๋์ง ์์ ์ธ๋ฆฌ์ผ ๊ธฐ๋ฐ์ VR ๊ธฐ์ ๋ค์ ํฐ๋ํ ์ ์์ต๋๋ค., - ๊ฐ์ ์๊ฐ | ์ธํ๋ฐ
www.inflearn.com
์๋ก์ด Input(์ ๋ ฅ) ์ฒ๋ฆฌ ๋ฐฉ์

Edit -> Project Settings๋ก ๋ค์ด๊ฐ ์ค๋๋ค. ๊ธฐ์กด 5.1 ์ด์ ๋ฒ์ ์์์ Input(์ ๋ ฅ) ์ฒ๋ฆฌ๋ Engine - Input ์นดํ ๊ณ ๋ฆฌ ์์์ ๋ชจ๋ ๊ฒ์ ์ฒ๋ฆฌํ์์ต๋๋ค. ํ์ง๋ง 5.1 ์ดํ ๋ฒ์ ๋ถํฐ๋ ๊ธฐ์กด Input์ ์ฌ์ฉํ์ง ์๊ณ , Enhanced Input ๋๋ Input Mapping Contexts(IMC) ์์ ์์ํ๊ธฐ๋ฅผ ๊ถ์ฅํ๊ณ ์์ต๋๋ค.


์ด๋ฒ ๊ธ์์๋ IMC(Input Mapping Contexts)์ ๊ดํด ์๊ฐํ๊ณ , ์ด๊ฑธ ์ด์ฉํด ์ด๋๊น์ง ๊ตฌํํ๋ ๊ฑธ๋ก ๋ง๋ฌด๋ฆฌํ๊ฒ ์ต๋๋ค.
IMC(Input Mapping Context)๋ฅผ ์ ํ์ํ ๊น?
์๋ง ๊ธฐ์กด Input ์ฒ๋ฆฌ ๊ตฌํ์ ์ ์๋์ ๋ถ๋ค์ ๊ตณ์ด ๋ฒ๊ฑฐ๋กญ๊ฒ ๋ง๋๋์ง ์ดํด๊ฐ ์ ๋ ์๋ ์์ต๋๋ค.
์๊ท๋ชจ์ ๊ฐ๋ฐ์ ํ๊ฑฐ๋ ๊ฒ์์ Input(์ ๋ ฅ) ๋ฐฉ์์ด ๋ณต์กํ์ง ์๋๋ค๋ฉด ๊ธฐ์กด Input ๋ฐฉ์์ ์ฌ์ฉํด๋ ํฌ๊ฒ ๋ฌธ์ ๊ฐ ์๊ธฐ์ง๋ ์์ต๋๋ค. ๋ค๋ง, ๊ฐ๋ฐ์ ๊ท๋ชจ๊ฐ ํฌ๊ฑฐ๋, ๋ณต์กํด์ง๋ค๋ฉด ๋ง์ด ๋ฌ๋ผ์ง์ฃ .
์ฌ์ฉ์๊ฐ VR ํ๊ฒฝ์ ์ฒดํํ๊ธฐ ์ํ ์ฅ๋น์ ๋ฐ๋ผ ๊ทธ๋ฆฌ๊ณ ์ ์ ๊ฐ ์ง๊ธ ์ด๋ค ์ํฉ์ ๋์ฌ์๋์ง์ ๋ฐ๋ผ ๊ฐ์ (๋ฐฉํฅํค A๋ฅผ ๋๋ฅด๊ฑฐ๋ / ์กฐ์ด์คํฑ์ ์ ์๋๋ก ํ๋ค๊ฑฐ๋ / ๋ง์ฐ์ค ์ผ์ชฝ ํด๋ฆญ์ ํ๋ค๊ฑฐ๋ ๋ฑ) Input Key๋ฅผ ๋๋ฌ๋ ์๋ฏธ๊ฐ ๋ฌ๋ผ์ง ์ ์๊ธฐ์ ์ด์ ๋ง๊ฒ ๊ตฌํํด ์ฃผ๋๋ฐ ๋ฒ๊ฑฐ๋ก์์ด ์๊ธฐ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ ๊ธฐ์ Input Mapping Context๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๊ฐ ๋ค๋ฅธ Action ๋ฌถ์๋ค์ ๋ง๋ค์ด ์ฃผ์ด ์ํฉ์ ๋ง๊ฒ ๋ฌถ์๋ค์ ๋ถ๋ฌ์์ ์ ๋์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ ๊ฒ์ด์ฃ .


์์๋ฅผ ๋ค์ด, [์ฒซ ๋ฒ์งธ ์ฌ์ง] ์ผ์์ ์ฌ์ฉํ์ฌ ์ด๋ค Action์ ์ทจํ๋ ค๊ณ ํ ๋ ์คํ๋ฌ์ค์์ ์ผ์ชฝ ์ปจํธ๋กค๋ฌ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ์ ๋์ [๋ ๋ฒ์งธ ์ฌ์ง] ์ผ์์ ์ฌ์ฉํ์ฌ Menu์์ Interaction์ ํ๊ณ ์ ๋๊ฐ์ด ์คํ๋ฌ์ค ์ผ์ชฝ ์ปจํธ๋กค๋ฌ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ์ ๋ ์ด์ Input ๋ฐฉ์์์๋ ์ํฉ๋ง๋ค If / else ๋ฑ์ผ๋ก ๋ถ๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํด์คฌ์ด์ผ๋ง ํ๋ค๋ฉด Input Mapping Contexts๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ํ์ํ ์ํฉ์ ๋ฐ๋ผ ๋ถ๋ฌ์ค๊ธฐ๋ง ํด์ฃผ๋ฉด ๋ฉ๋๋ค.

์ด๋ ๊ฒ Add Mapping Context ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์์ ๋ง๋ค์๋ IMC๋ค์ ๋ถ๋ฌ์ ํ์ฑํํด ์ฃผ๊ณ , ๊ฐ๊ฐ์ IMC๋ค์ ๋ฃ์ด์ฃผ์ด ํ์ํ ๋๋ง๋ค ์ฐ๊ฒฐํด ์ฃผ์ด ๋ณต์กํ๋ ๊ตฌ์กฐ๋ฅผ ํจ์ฌ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ ํ ์ ์๊ฒ ๋ฉ๋๋ค. Priority๋ฅผ ํตํด์ ์ฐ์ ์์๋ ์ ํด์ค ์ ์๊ฒ ๋ค์.
IMC๋ฅผ ์ด์ฉํด VR์์ ์ด๋ ๊ตฌํ

์ฐํด๋ฆญํ ๋ค Input - Input Action์ ํด๋ฆญํ์ฌ ์์ง์ Action์ ๋ด๋นํ IA_VR_Move๋ฅผ ๋ง๋ค์ด ์ค๋๋ค.

๊ทธ ๋ค์ ์ด๋ค ์ํฉ์ Action ๋ฑ์ ์ทจํ ๊ฒ์ธ์ง์ ๋ํ ๋ฌถ์์ธ Input Mapping Context ํ๋๋ฅผ ๋ง๋ค์ด ์ค๋๋ค. ์์ง ํน๋ณํ ์ํฉ์ ์๊ธฐ์ IMC_VR_Default๋ก ๋ง๋ค์ด ์ฃผ์์ต๋๋ค. ์ด๋ฆ์ ๊ฐ์ ์๋ง๊ฒ ์ง์ผ์๋ฉด ๋ฉ๋๋ค.

IA_VR_Move๋ก ๋์ด์์ ์ค์ ์ ํด์ค๋๋ค. VR ํ๊ฒฝ์์์ ์ปจํธ๋กค๋ฌ๋ ์กฐ์ด์คํฑ์ด ์<->์๋๋ก ์ฌ๋ ธ๋ค ๋ด๋ ธ๋ค ๋ฐฉ์์ ์ฌ์ฉํ๋๋ฐ Value Type์ Axis1D๋ก ๋ง์ถฐ -1์์ 1์ ๋ฒ์๋ฅผ ๊ฐ๋๋ก ํด์ค๋๋ค.
๋ํ Dead Zone ๊ตฌ๊ฐ์ ๋ง๋ค์ด ์กฐ์ด์คํฑ์ ๋ฏผ๊ฐ๋๋ฅผ ์กฐ์ ํฉ๋๋ค. ์ค์๋ก ์กฐ์ด์คํฑ์ ์กฐ๊ธ๋ง ์์ง์๋๋ฐ ์์น ์๋ ํ๋์ ์ทจํ์ง ์๋๋ก 0.5 ~ 1.0์ ๊ตฌ๊ฐ๋ง ํ๋์ ๋ฐ์ํ๋๋ก ์ ๋ํฉ๋๋ค.

์ด์ IMC๋ก ๋์ด์ ์ด๋ป๊ฒ ๊ธฐ๊ธฐ๋ฅผ ์๋ํ๋ฉด ์์์ ๋ง๋ค์๋ IA_VR_Move๋ฅผ ์ทจํ ๊ฒ์ธ์ง์ ๋ํด ์ค์ ์ ํด์ค๋๋ค.
์ ๋ ์คํ๋ฌ์ค ๊ธฐ๊ธฐ๋ง ์์ผ๋ฏ๋ก Oculus๋ก๋ง ํด์ฃผ์๊ณ , ThumbStic Y Axis๋ก ์ ํํ์ฌ ์กฐ์ด์คํฑ ์<->์๋๋ก ์กฐ์ํ๋ฉด ํ๋์ ์ทจํ๋๋ก ๋ง๋ค์ด ์ค๋๋ค. ( ์ฐธ๊ณ ๋ก Y Axis๋ ์<->์๋, X Axis๋ ์ข<->์ฐ ์ ๋๋ค. )
์ ํค๋ณด๋ W๋ ์ถ๊ฐํ์ฌ VR ํ๊ฒฝ์ด ์๋ ์ผ๋ฐ ํ๊ฒฝ์์๋ ์์ง์์ ํ ์คํธํ๊ธฐ ์ํด ๋ง๋ค์ด ์ฃผ์์ต๋๋ค.

์ด์ ์ฐ๋ฆฌ์ ์ฃผ์ฒด์ธ BP_Pawn์ผ๋ก ๋์ด์ Add Mapping Context ํจ์๋ฅผ ํธ์ถํ์ฌ ์ฐ๋ฆฌ๊ฐ ๋ง๋ค์๋ IMC๋ฅผ ํ์ฑํํด ์ค๋๋ค. ๋ฐ๋์ ์ ์ฌ์ง๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก ์ฐ๊ฒฐํด ์ค๋๋ค.

Add Mapping Context๋ฅผ ๋ถ๋ฌ์ฌ ๋ Context Sensitve๋ฅผ ์ ๊น ์ฒดํฌ ํด์ ํด ์ฃผ์ ์ผ ํฉ๋๋ค.

Enhanced Input Action ์ ํธ์ถํ์ฌ ํ์ฑํํ IMC ์์ ๋ง๋ค์๋ Action์ ๋ถ๋ฌ์ ์์ง์์ ๊ตฌํํ์ฌ ์ฐ๊ฒฐํฉ๋๋ค.

Enhanced Input Action ์ ๋ถ๋ฌ์ฌ ๋ ์กฐ๊ธ ์ ์ ์ฒดํฌ ํด์ ํ Context Sensitive ๊ฐ ์ฒดํฌ๊ฐ ๋์๋์ง ํ์ธํด ์ฃผ์ธ์.

์์ง์์ ๊ตฌํํ๊ธฐ ์ ์ฐ๋ฆฌ๊ฐ ์ด์ ์ IMC ์ค์ ์ ํ ๋ "Input Key"๋ฅผ ๋ฃ์ด์ฃผ์ด ์์ง์์ด ๊ตฌํ๋๋๋ก ์ค์ ์ ํด์ฃผ์์ต๋๋ค. Print Text()๋ก ๋ก๊ทธ๋ฅผ ์ฐ์ด ์ ์ ์ฉ๋์๋์ง ํ์ธ ์์ ์ ๊ฑฐ์ณ์ฃผ์๋ฉด ์ข์ต๋๋ค.

์์์ ์ ๋ ํค๋ณด๋ "W"๋ฅผ ๋๋ฌ์ ์ผ๋ฐ ํ๋ฉด์์๋ ์์ง์์ ์ฒดํฌํ ์ ์๋๋ก ๋ง๋ค์ด ์ฃผ์์ต๋๋ค. ๋ก๊ทธ๋ฅผ ํ์ธํ์๋ฉด Started -> Triggered -> Completed ์์ผ๋ก ์ ์ ์ฉ๋ ๊ฑธ ํ์ธํ ์ ์์ต๋๋ค.

์์ง์ ๊ตฌํ ์ฝ๋๋ ๊ฐ์ ๋ค์ํ ๋ฐฉ์์ผ๋ก ๊ตฌํํ ์ ์์ต๋๋ค. ์ ๋ ์ธ๋ฆฌ์ผ์์ ์์ง์ ๊ธฐ๋ฅ์ ๋ํ Add Movement Input ํจ์๋ฅผ ๊ฐ์ ธ์ ๊ตฌํ์ ์งํํ์์ต๋๋ค.
Triggerd๋ก ์ฐ๊ฒฐํ์ฌ ์ฐ๋ฆฌ๊ฐ ๊ณ์ํด์ "Input Key" ๊ฐ์ ๋ฐ๋ผ ์์ง์์ ๋ฐ์ํ๋๋ก ๋ง๋ค์ด ์ค๋๋ค.
ํ์ง๋ง ์ฌ๊ธฐ๊น์ง ํด์ ๋น๋๋ฅผ ํด๋ณด๋ฉด ์์ง ์์ง์ผ ์๋ ์์ ๊ฒ์ ๋๋ค. Add Movement Input ํจ์๋ ์ฐ๋ฆฌ๊ฐ "์ด๋ํ๊ฒ ๋ค." ์์ฌํ์๋ง ํ ๋ฟ ์์ง์ ์์ฒด๋ฅผ ๊ด๋ฆฌํ๋ ํจ์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ด์ฃ .

์ฐ๋ฆฌ์ ์์ฌ์ฝ๋๋ฅผ ๋ฐ์์ค Floating Pawn Movement ์ปดํฌ๋ํธ๋ฅผ ์์ฑํฉ๋๋ค. ์ด์ ์ฐ๋ฆฌ์ ์์ฌ ํ์๋ฅผ ๋ฐ์์ ๋ชจ๋ ์์ง์์ ๊ด๋ฆฌํ๊ฒ ๋ฉ๋๋ค.

๋น์ฐํ ์ฐ๋ฆฌ์ ๋ชจ๋ ์์ง์์ ๊ด๋ฆฌํ๋ ์ปดํฌ๋ํธ์ด๋, Detail ์ฐฝ์ ์ดํด๋ณด์๋ฉด ์ต๋ ์๋๋ ์กฐ์ ํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ๊น์ง ์ ์ค์ ์ ํด์ฃผ์๊ณ , ํ ๋ฒ VR ํ๊ฒฝ์์ ์ ์์ง์ด๋์ง ํ ์คํธํด ๋ณด์๊ธธ ๋ฐ๋๋๋ค. ๋๋ฆ ์ ๋ฆฌํด์ ์ด ๊ธ์ธ๋ฐ๋ ์ดํดํ ๋ด์ฉ์ ์ ์ ๋ฌํด ๋๋ ธ๋์ง ์๋ฌธ์ด ๋๋ค์. ๊ธด ๊ธ ๋๊น์ง ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์๊ณ ๋ง์ผ์ จ์ต๋๋ค.
'Unreal > VR' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[UE5 VR] ์ธ๋ฆฌ์ผ VR ๊ฐ๋ฐ - ์ฌ์ฉ์๋ค์ ๋๋์ด ๊ณ ์ (0) | 2023.06.13 |
---|---|
[Unreal Engine 5.1] ์ธ๋ฆฌ์ผ ์์ง 5 VR ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ (2) | 2023.06.05 |