์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋ฐ”๋‹ฅ์„ ์ฐพ๋Š” ๊ฐ€์ด๋“œ๋ฐฉ์‹์ด ์–ด๋–ค๊ฒƒ์ดย ์žˆ๊ณ  ๊ฐ€์ด๋“œ๋Š” ์–ด๋–ค๊ฒŒย ์ข‹์„์ง€ ์†Œ๊ฐœํ•ด๋ณผ๊ป˜



1. ๋ฐ”๋‹ฅ์„ ์ฐพ๋Š” ๊ฐ€์ด๋“œ๊ฐ€ ์™œ ์ค‘์š”ํ•œ๊ฐ€?


AR ๊ฒŒ์ž„์„ ํ•ด๋ณธ์‚ฌ๋žŒ์€ ์•Œ๊ฒ ์ง€๋งŒ ๋ณดํ†ต ๊ฒŒ์ž„์ปจํ…์ธ ๋ฅผ ์ฆ๊ธฐ๊ธฐ๊นŒ์ง€ ๊ต‰์žฅํžˆ ์–ด๋ ค์šด ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค.


๊ณ ์ „์ ์ธ ๋งˆ์ปค๊ฐ€ ํ•„์š”ํ•œ AR ๊ฒŒ์ž„์˜ ๊ฒฝ์šฐ ๋งˆ์ปค๋ฅผ ์ธํ„ฐ๋„ท์—์„œ ๋‹ค์šด๋ฐ›์•„์„œ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜,

์œ ํฌ์™• ์นด๋“œ ๊ฐ™์€ ๋งˆ์ปค๋ฅผ ๊ตฌ๋งคํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„์žˆ๋‹ค.

์ด๊ฒŒ ๋ฌด์Šจ ๋ง์ด๋ƒ๋ฉด ๋งˆ์ปค๊ฐ€ ์—†์œผ๋ฉด ๊ฒŒ์ž„ ๋˜๋Š” ์ปจํ…์ธ ๋ฅผ ์ฆ๊ธธ์ˆ˜ ์—†์—ˆ๋‹ค๋Š” ๋œป์ด๋‹ค.


์ดˆ์ฐฝ๊ธฐ์—๋Š” ์ด๊ฑธ ํ•ด๊ฒฐํ•ด๊ธฐ ์œ„ํ•ด์„œ ์ด๋ฏธ ๊ธฐ๋ฐ˜์ด ์žˆ๋Š” ํšŒ์‚ฌ๋“ค์€ ์ด๋ฏธ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์นด๋“œ, ์นดํƒˆ๋กœ๊ทธ, ์ง€ํ, ๋ช…ํ•จ ๋“ฑ์„

์ด์šฉํ–ˆ์—ˆ๋Š”๋ฐ ์ด๊ฒƒ๋„ ์‚ฌ์šฉ์ž๋ฅผ ํฌ๊ฒŒ ํŽธํ•˜๊ฒŒ ํ•˜์ง„ ๋ชปํ–ˆ๋‹ค.


๋งˆ์ปค๋ฒ ์ด์Šค ๋ฐฉ์‹์ด ์‹คํŒจํ•œ ์ด์œ ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ด์ง€๋งŒ ๋‚ด์ƒ๊ฐ์€ ๋ถˆํŽธํ•จ > ์ปจํ…์ธ  ์žฌ๋ฏธ์˜€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

AR ๊ฒŒ์ž„์ด ํฅํ•˜๋ ค๋ฉด AR๊ฒŒ์ž„์„ ์œ„ํ•ด ์ค€๋น„ํ•˜๋Š” ์งœ์ฆ๋‚จ ๋ณด๋‹ค ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด๊ฐ€ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผํ•˜๋Š”๋ฐ ๋งˆ์ปค๋ฅผ ์ค€๋น„ํ•˜๊ณ  ์นด๋ฉ”๋ผ๋กœ ์ฐ๋Š”๊ฑด ๋ถˆํŽธํ•จ์ด ๋„ˆ๋ฌด ์ปธ์—ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํฌ์ผ“๋ชฌ๊ณ  ์ด์ „ AR ๊ฒŒ์ž„๋“ค์˜ ์ปจํ…์ธ ๋Š” ๊ตณ์ด AR๋กœ ํ•˜์ง€์•Š์•„๋„ ๋˜๋Š” ๊ทธ๋Ÿฐ ์ปจํ…์ธ ๋“ค์ด์˜€๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด ์ด๋Ÿฐ๊ฑฐ


์œ„ ๊ฒŒ์ž„์„ ๋น„ํ•˜ํ•  ์ƒ๊ฐ์€ ์—†๊ณ  ์ €๋Ÿฐ ํ˜•์‹์˜ ๊ฒŒ์ž„์„ ๊ตณ์ดย ์นด๋ฉ”๋ผ๋กœ ๋ฐ”๋‹ฅ์„ ์ฐ์–ด์„œ ํ•  ์ด์œ ๊ฐ€ ์—†์—ˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.


๊ทธ๋ฆฌ๊ณ  ํฌ์ผ“๋ชฌ๊ณ ๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ ํฌ์ผ“๋ชฌ๊ณ ๋Š” ์นด๋ฉ”๋ผ, GPS๋กœ ์ฆ๊ฐ•ํ˜„์‹ค์„ ๊ตฌํ˜„ํ–ˆ๋‹ค.

ํฌ์ผ“๋ณผ์„ ๋˜์ ธ์„œ ํฌ์ผ“๋ชฌ์„ ์žก๋Š”๊ฒƒ์— ํŠน๋ณ„ํ•œ ๊ธฐ์ˆ ์€ ์—†๋‹ค. ๊ทธ๋ƒฅ ์นด๋ฉ”๋ผ ๋น„๋””์˜ค ์•ž์— 3D๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  GPS๋ฅผ ์ด์šฉํ•ด์„œ ์‚ฌ์šฉ์ž์˜ ์œ„์น˜์™€ ๋ชฌ์Šคํ„ฐ๋“ค์˜ ์œ„์น˜๋ฅผ ์ƒํ˜ธ์ž‘์šฉ ์‹œํ‚จ๋‹ค.


ํฌ์ผ“๋ชฌ๊ณ ๊ฐ€ ๋‚˜์˜ค๋ฉด์„œ ์นด๋ฉ”๋ผ ํ™”๋ฉด๋งŒ ์ด์šฉํ•˜๋Š”๊ฒŒ AR์ด ์•„๋‹ˆ๋ผ GPS๋‚˜ ๋‹ค๋ฅธ ๊ฒƒ์„ ์ด์šฉํ•˜์—ฌ ํ˜„์‹ค์„ธ๊ณ„์™€ ์ƒํ˜ธ์ž‘์šฉ์„ ํ• ์ˆ˜์žˆ์œผ๋ฉด

์„ฑ๊ณตํ• ์ˆ˜์žˆ๋‹ค๋Š” ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๊ฐ€ ๋˜์—ˆ๋‹ค.


ํฌ์ผ“๋ชฌ๊ณ ๊ฐ€ ๋‚˜์˜ค๊ณ  GPS ๊ธฐ๋ฐ˜์˜ ๋ชฌ์Šคํ„ฐ๋ฅผ ์žก๋Š” ์ปจํ…์ธ ๋“ค์ด ๋งŽ์ด ์ƒ๊ฒผ๋Š”๋ฐ ์ด๊ฒƒ๋“ค์ด ํฅํ–ˆ๋˜๊ฑด

๋“œ๋””์–ด AR๊ฒŒ์ž„๋งŒ์˜ ์ปจํ…์ธ ๋ฅผ ์ฐพ์•„์„œ ๊ทธ๋Ÿฐ๊ฑฐ ๊ฐ™๋‹ค.


VR๊ฒŒ์ž„๋„ ์ดˆ์ฐฝ๊ธฐ์—” ์Šค์นด์ด๋ฆผVR ๋“ฑ๊ณผ ๊ฐ™์€ ์ด๋ฏธ ์žˆ๋Š” ๊ฒŒ์ž„์— ๋ถ™์—ฌ์„œ "์ด๋Ÿฐ๊ฑด ๊ตณ์ด VR๋กœ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‚˜?" ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค๊ฒŒ ํ–ˆ์ง€๋งŒ

์š”์ฆ˜ ๋‚˜์˜ค๋Š” VR ๊ฒŒ์ž„์„ ๋ณด๋ฉด VR๋งŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๋А๋‚Œ์„ย ์ž˜ ์‚ด๋ ค์„œ ๋งŒ๋“  ๊ฒŒ์ž„๋“ค์ด ์ถœ์‹œ ๋˜๊ณ  ์žˆ๋‹ค.


AR๊ฒŒ์ž„์ด ์ดˆ์ฐฝ๊ธฐ๋ผ ๋ณด๊ธด ์ข€ ํž˜๋“ค์ง€๋งŒ

๋งˆ์ปค๋ฒ ์ด์Šค -> ํฌ์ผ“๋ชฌ๊ณ  -> ARCore ๋˜๋Š” ARKit SDK ๋กœ ์ ์  ๋ฐฉํ–ฅ์„ ์žก์•„๊ฐ„๋‹ค๋Š” ๋А๋‚Œ์ด๋“ ๋‹ค.



๊ฒฐ๋ก ์ ์œผ๋กœ AR๊ฒŒ์ž„์€ ๋‘๊ฐ€์ง€๊ฐ€ ํ•„์š”ํ•˜๋‹ค.ย 

ย - AR ์ปจํ…์ธ ๋ฅผ ์ฆ๊ธฐ๊ธฐ ์œ„ํ•œ ๊ณผ์ •์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ฒƒ

ย - AR ๋งŒ์˜ ์ปจํ…์ธ ๋ฅผ ๋งŒ๋“ค๊ฒƒ


์šฐ๋ฆฌ๋Š” ๋‘๋”์ง€ ์žก๊ธฐ ๊ฒŒ์ž„์„ ๋งŒ๋“ค๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

๋‘๋”์ง€๊ฐ€ ์ƒ์„ฑ๋  ์ง€์ ์„ ์‚ฌ์šฉ์ž๊ฐ€ ์ฐพ๊ธฐ ๊นŒ์ง€์˜ ๋ฐฉ์‹์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ณ , ๋‘๋”์ง€์žก๋Š”๊ฑธ AR๋งŒ ํ• ์ˆ˜์žˆ๋Š” ๊ทธ๋Ÿฐ ์ปจํ…์ธ ๋กœ ๋งŒ๋“ค์–ด ๋ณด๋ฉด ๋˜๊ฒ ๋‹ค.



2. ๋ฐ”๋‹ฅ์„ ์ฐพ๋Š” ๊ฐ€์ด๋“œ๋Š” ์–ด๋–ค๊ฒƒ๋“ค์ด ์žˆ๋Š”๊ฐ€?


์ฒซ๋ฒˆ์งธ๋Š” ์•„์ฃผ ๊ณ ์ „์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ "๋ฐ”๋‹ฅ์„ ์Šค์บ”ํ•˜์„ธ์š”", "๋ฐ”๋‹ฅ์„ ๋ฐ”๋ผ ๋ณด์„ธ์š”", "๋ฐœ์„ ๋ฐ”๋ผ๋ณด์„ธ์š”."ย ๋ผ๋Š” ํ…์ŠคํŠธ๋ฅผ ๋ฟŒ๋ฆฌ๋Š” ๊ฒƒ์ด๋‹ค.
์•„๋ž˜ ์Šค์ƒท์„๋ณด๊ณ  ์ดํ•ดํ•˜๋ฉด๋œ๋‹ค.

viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73fef87fa11d028313cb65f50fe50c4dcac889073db7c93630c95f8aed5d14bd08a87d4f7d1ba8b1f05042cb7161944da5c66c25719660b


๋ณ‘์‹ ๊ฐ™์€ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐ ํ•˜๊ฒ ์ง€๋งŒ ์„ฑ์ธ, ์ „๋ฌธ๊ฐ€๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ์ปจํ…์ธ ๋Š” ์•„์ฃผ ์ ์ ˆํ•œ ์˜ˆ๋ผ๊ณ  ๋ณผ์ˆ˜์žˆ๋‹ค.

์ € App์€ IOS MagicPlan์ด๋ž€ ์•ฑ์ธ๋ฐ AR๋กœ ์ง‘ ๋„๋ฉด์„ ๊ทธ๋ฆฌ๋Š” ์•ฑ์ด๋‹ค.


๋‘๋ฒˆ์งธ๋Š” ๊ธ€ + ๊ทธ๋ฆผ์œผ๋กœ ์„ค๋ช…ํ•ด์ฃผ๋Š”๊ฑฐ๋‹ค.


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73fef87fa11d028313cb65f50fe50c4dcac889073db7c93630c95f8aed5d14bd08a87d4f7d1ba8b1f05042cb04c1015d15d62cf5719660b



๊ทธ๋ ‡๋‹ค. ๋ญ”๊ฐ€ ์กด๋‚˜ ๊ฑฐ์ฐฝํ•œ๊ฒŒ ์žˆ์„๊บผ ๊ฐ™์ง€๋งŒ ๋ณ„๋กœ.. ์™€!์ด๊ฑฐ๋‹ค ํ•˜๋Š”๊ฒŒ์ž„์€ ๋‚˜๋„ ๋ชป๋ดค๋‹ค.ย 


๊ทธ๋ƒฅ ์ด์œ UI์™€ ํ…์ŠคํŠธ๋กœ ์กฐ์ง€๋ฉด ๋˜๋Š”๊ฒƒ์ด๋‹ค.


๊ฐ€์žฅ ์ž˜๋˜์–ด์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒŒ์ž„์€ ์•„๋ž˜ ๋™์˜์ƒ์ด๋‹ค.




3. ๋‘๋”์ง€ ๊ฒŒ์ž„ ๋ฐ”๋‹ฅ ๊ฐ€์ด๋“œ ์ œ์ž‘


๋‘๋”์ง€ ๊ฒŒ์ž„์—์„œ๋Š” ํ…์ŠคํŠธ ๊ฐ€์ด๋“œ + ๋‘๋”์ง€๊ฐ€ ๋ฐ”๋‹ฅ์„ ์ฐพ์•„๋‹ฌ๋ผ๊ณ  ๋งํ•˜๋Š” ๋ชจ์Šต์„ย  ํ‘œ์‹œํ•œ๋‹ค.

viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73fef87fa11d028313cb65f50fe50c4dcac889073db7c93630c95f8aed5d14bd08a87d4f7d1ba8b1f05042ce01a4340df0937975719660b


์œ„์™€ ๊ฐ™์ด ์ƒ๋‹จ์— ๊ฐ€์ด๋“œ ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•˜๊ณ 
์•„๋ž˜์ชฝ์— ๋‘๋”์ง€ ๊ตด์„ ์‚ด์ง ๊ธฐ์šธ์—ฌ์„œ ๋ฐ”๋‹ฅ์„ ์ฐพ์•„๋‹ฌ๋ผ๊ณ  ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.


์ดํ›„์— ๋ฐ”๋‹ฅ์„ ์ฐพ์œผ๋ฉด Screen center์— Ray๋ฅผ ์ด์„œ ์„ค๋ช…ํ•˜๋Š” ๋‘๋”์ง€๋ฅผ ๊ณ„์† ์ด๋™ ์‹œํ‚ค๊ฒŒ ๋งŒ๋“ค์–ด๋ณด์ž

TrackableHit hit;
TrackableHitFlags raycastFilter = TrackableHitFlags.PlaneWithinBounds | TrackableHitFlags.PlaneWithinPolygon;
if (Session.Raycast(Screen.width/2f, Screen.height/2f, raycastFilter, out hit))
{
if (hit.Trackable.TrackingState == TrackingState.Tracking)
{
guidMoleObj.transform.position = hit.Pose.position;
guidMoleObj.transform.rotation = hit.Pose.rotation;

guidMoleObj.transform.LookAt(FirstPersonCamera.transform);
guidMoleObj.transform.rotation = Quaternion.Euler(0.0f,
guidMoleObj.transform.rotation.eulerAngles.y, guidMoleObj.transform.rotation.z);

if (GameManager.GetState() == GameManager.State.FindPlane)
{
GameManager.SetState(GameManager.State.START);
}
}
}

์œ„ ์ฝ”๋“œ๋Š” Screen ์ค‘์•™์œผ๋กœ Ray๋ฅผ ์ด์„œ TrackableHit์„ ์–ป์–ด์˜ค๋Š” ์ฝ”๋“œ์ด๋‹ค.
์–ด๋””์„œ ๋งŽ์ด ๋ณธ์‚ฌ๋žŒ๋„ ์žˆ์„ํ…๋ฐ ์œ ๋‹ˆํ‹ฐ์—์„œ Camera์—์„œ Ray๋ฅผ ์ด์„œย RaycastHit์„ ์–ป์–ด์˜ค๋Š” ๊ฒƒ๊ณผ ๋˜‘๊ฐ™์€ ์ฝ”๋“œ์ด๋‹ค.

์ดํ•ด๊ฐ€ ์•ˆ๋œ๋‹ค๋ฉด ์œ ๋‹ˆํ‹ฐ Raycast ํ•จ์ˆ˜๋ฅผ ์ฐพ์•„๋ณด๊ณ  ํ…Œ์ŠคํŠธํ•ด๋ณด๋Š”๊ฒŒ ์ดํ•ด๊ฐ€ ๋” ๋น ๋ฅผ๊บผ๋‹ค.


์•„๋ž˜๋Š” ํ…Œ์ŠคํŠธ ๋™์˜์ƒ์ด๋‹ค.
๋‹ค์Œ๊ธ€์—๋Š” AR ํŠน์ƒ‰์„ ์ž˜ ์‚ด๋ฆฐ ๋‘๋”์ง€ ๊ฒŒ์ž„์— ๋Œ€ํ•ด์„œ ์จ๋ณผ๊ป˜