๋์์จ ์ญ๋์์ธย ๊ฐ๋ฐ์ผ์ง
์ต๊ทผ์ ์นด๋ฉ๋ผ ์์ ๊ด๋ จย ๋ถํธํ๋ค๋ ํผ๋๋ฐฑ์ด ๋ง์์
๋ฝ์จ ์์คํ ์ ๋์ ํด๋ดค์ด
๋ฝ์จ์ ๋ฃ์ผ๋๊น ํ์คํ ํ๋ ์ดํ๊ธฐ ํจ์ฌ ์พ์ ํ๊ณ
๋ณด์ค์ ์์๋ ์์ ์ ์ผ๋ก ๋ฉ์ง ๊ตฌ๋๋ฅผ ์ ์งํด์ค์
์ง์์ ๋ฃ์์ด์ผ ํ๋ค๋ ์๊ฐ์ด ๋ค๋๋ผ๊ณ .. ํฌ
ย
ํน์ ๊ถ๊ธํ ์ธ๋ถ์ด๋ฅผ ์ํด ๋ง๋ ๊ณผ์ ์ ์กฐ๊ธ ๊ณต์ ํด๋ณด์๋ฉด
์ ๋ํฐ์ Cinemachine์์ ์ ๊ณตํ๋ CinemachineTargetGroup ์ปดํฌ๋ํธ์
๋ฒ์ถ์ผ์บ Aim์์ย Group Composer๋ฅผ ์ฌ์ฉํ๋ฉด
์์ฒ๋ผ ํ๋ ์ด์ด์ ํ๊ฒ์ด ์นด๋ฉ๋ผ ๋ฐ์ผ๋ก ๋ฒ์ด๋์ง ์๊ฒย ์์ฐ์ค๋ฝ๊ฒ ์ก์์ค
์ด๊ฒ ์๊ฐ๋ณด๋ค ์ค์ํ ์์๋๋ผ๊ณ .
๋๋ ์ฌ๊ธฐ์ ์นด๋ฉ๋ผ๋ฅผ ๋ฝ์จํ ํ๊ฒ์ชฝ์ผ๋ก ํ์ ์์ผ ๋ฐ๋ผ๋ณด๊ฒ ํ๋ย ์ํ๋ ๋ฝ์จ์ ๋๋์ ๋ผ ์ ์์์ด,
(์ด๊ฑด VCam์ย Follow ํ๊ฒ์ย ย Look At Constraint๋ฅผ ์ ์ฉํด๋ ๋์ง๋ง,
๋๋์ด ๋ฑ๋ฑํ๊ณ ํ์ดํธํ๊ธฐ ๋๋ฌธ์ ๋ถ๋๋ฝ๊ฒย ํ๋ ค๋ฉด ๋ฐ๋ผ๋ณด๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ง์ ์์ฑํ๊ธด ํด์ผํ ๊ฑฐ์ผ)
์ด๋ ๊ฒ ํ๋ฉด ๋ณ๋ก ์ฝ๋ฉํ ๊ฒ๋ ์์ดย ๊ด์ฐฎ์ ๋๋์ย ๋ฝ์จ์ด ๊ตฌํ!
ํ์ง๋ง ์์ง ๋ช๊ฐ์ง ๋ฌธ์ ๊ฐ ์๋๋ฐ
- ์นด๋ฉ๋ผ์ ์ฝ๋ผ์ด๋๊ฐย ์ ๋๋ก ๋์ํ์ง ์๋ ๋ฌธ์ -> ๊ฒฐ๊ตญ์ย ๊บผ์ผ ํ์
- ์์ธ์ ์ ๋ชจ๋ฅด๊ฒ ์ง๋งย ํน์ ์ํฉ์์ย ์นด๋ฉ๋ผ๊ฐ ๋๋๋ ๊ฑฐ๋ฆฌ๋ ๋ฌธ์
์ด๋ฐ ๋ฌธ์ ๋ค๋ ์์ด์, ์กฐ๊ธ ๋ณด์/์ฐ๊ตฌ๋ ํ์ํ ๊ฑฐ ๊ฐ๋ค.
(ํน์ ํด๊ฒฐ๋ฒ ์์๋๋ถ ์๋ค๋ฉด ์กฐ์ธ์ข ใ )
์ถ๊ฐ๋ก ๋ฝ์จ ๋ฒํผ์ ๋๋ ์ ๋ ๋๊ตด ํ๊ฒ์ผ๋ก ํ ์งย ๊ณจ๋ผ๋ด๋ ๋ฐฉ๋ฒ์ผ๋ก๋
์นด๋ฉ๋ผ๊ฐ ๋ฐ๋ผ๋ณด๋ ๋ฐฉํฅ์ผ๋ก SphereCast ํ๋ค๋ ์ด์ผ๊ธฐ๋ ๋ค์๋๋ฐ
๋๋ ๊ทธ๋ฅ ์นด๋ฉ๋ผ Ray(์ ๋ถ)์์ ํน์ ์ ๊น์ง์ย ๊ฑฐ๋ฆฌ๋ฅผ ์ฌ๋ ๋ฐฉ๋ฒ์ผ๋ก ํด๋ดค์ด.
...
์์ ๊ทธ๋ฆผ๋ง์ผ๋ก๋ ์ฌ์ค ๋๋ ์ดํดํ๊ธฐ ์ด๋ ค์ ๊ธฐย ๋๋ฌธ์
๊ทธ๋ฅ ์ฝ๋๋ก ๊ธ์ด์ด.
//UnityEditor.HandleUtility์์ ๊ธ์ด์จ ์ฝ๋
ย ย public static float DistancePointLine(Vector3 point, Vector3 lineStart, Vector3 lineEnd)
ย ย {
ย ย ย ย return Vector3.Magnitude(ProjectPointLine(point, lineStart, lineEnd) - point);
ย ย }
ย ย public static Vector3 ProjectPointLine(Vector3 point, Vector3 lineStart, Vector3 lineEnd)
ย ย {
ย ย ย ย Vector3 rhs = point - lineStart;
ย ย ย ย Vector3 vector = lineEnd - lineStart;
ย ย ย ย float magnitude = vector.magnitude;
ย ย ย ย Vector3 vector2 = vector;
ย ย ย ย if (magnitude > 1E-06f)
ย ย ย ย {
ย ย ย ย ย ย vector2 /= magnitude;
ย ย ย ย }
ย ย ย ย float value = Vector3.Dot(vector2, rhs);
ย ย ย ย value = Mathf.Clamp(value, 0f, magnitude);
ย ย ย ย return lineStart + vector2 * value;
ย ย }
์ด์ ๋๋ต ํต์ฌ ์ฌ๋ฃ๋ ๊ฐ์ถฐ์ก๊ธฐ ๋๋ฌธ์
๋๋จธ์ง ๊ตฌํ์ ์ฌ๋ฌ๋ถ์ ๋ชซ์ผ๋ก ๋จ๊ธฐ๊ณ ๋๋ ๋ฐํ๋๋ก ํ๊ฒ ๋ค.
๊ทธ๋ผ ๋ชจ๋ ์ฆ๊ฑฐ์ด ๊ฐ๋ฐ~
ยท [Project BS] ์ญ๋์์ธ ํธ๋ ์ผ๋ฌ ๋ณ๋ค
ํธ์๋ฒ์ค ์ ์ฌ ใฑใฑ
์ ๋ ํ๊ฒํ ๊ตฌํ ๋ทฐํฌํธ ์ขํ (0.5, 0.5) ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ๊ฐ๊น์ด ์ ํ๋๊ฑธ๋ก ํ์์ ์๊ฒ๋ ใฑใ ์๊ฑฐ๊ฐ์
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
์ ๋ 3D๋ฉ๋ฏธ๊ฐ ์์ด์๊ทธ๋ฐ๊ฐ ๋ฐ๋ชจ ์์ํ์๋ง์ ๋ฉ๋ฏธ๊ฐ ๋๋๋ผ๊ตฌ์ค... ๋ฝ์จ์ถ๊ฐ๋ ํ์คํ ์ข์๋ฏ!
์ข์ ์ธ๋์์ ์ฌ๋ผ์์ด๋ ์ธ์ฐ๊ฒ ํ๋๋ ์นด๋ฉ๋ผ๊ฐ ์๋์น๋ ๊ตฌ๊ฐ์ด ์๊ฒจ์.. ์ผ๋จ FOV ์กฐ์ ํ๊ณ , ๋ฝ์จ ๋ฃ์๋๋ ์ด๋์ ๋ ํด๊ฒฐํ์ง ์์๋ ์ถ์ด์. ์ง์์ ์ ๊ฒฝ์ข ์ผ์ด์ผ ํ๋๋ฐ
์ผ.. ์นด๋ฉ๋ผ๋ง ๋ฐ๊ปด๋ ์ด๋ ๊ฒ ๊ตฌ๋๊ฐ ๋ฐ์ง๊ฐ ๋์น๋ค ใ ใ
์ปค๋ง ๊ธฐ๋ฅ ๋ฃ์์๊ฐ์์ด?? 3์ธ์นญ์ด๋ผ ์ปค๋ง ๊ธฐ๋ฅ ์์ผ๋ฉด ์ข๊ฒ ๋ค!!
ํ์์ด ์๊ธฐ๋ฉด ๊ณ ๋ฏผํด๋ณผ๋ฏ ใ