조이조지브의 잡다한 블로그

Oculus Quest2를 위한 야구연습 App 만들기(with Unity)

목차

유니티를 이용하여 야구연습을 하는 Oculus Quest2를 위한 앱을 간단하게 보도록 하다. 지반 규율 중심으로 만들 것이며 화려하거나 재미하고는 거리가 멀다.

  1. 인성 모델링 위선 공을 던지는 피처의 개성 모델을 만들어야 한다. 3D 모델링은 아트의 영역이라 직접은 못만들고 MakeHunman이라는 무대가 소프트웨어를 이용하여 만들었다. MakeHuman은 OpenSouce(AGPL3) Tool이다. GUI 환경에서 클릭만으로 Human Model을 만들 수 있다. wiki 페이지 http://www.makehumancommunity.org/wiki/Main_Page 공식페이지 http://www.makehumancommunity.org/ Pose/Animate 텝에서 Rig Preset으로 Game engine으로 설정하면 유니티와 빈빈히 호환이된다. Pose는 T pose가 좋다.

fbx로 저장하고 유니티에서 사용한다.

  1. 유니티 배경만들기와 성품 배치 유니티에서 야구장을 만들고 위에서 만든 캑릭터를 배치하여보자. 캐릭터의 오른손에 야구공 프래팹을 만들어 붙여준다. 공을 줍는 동작이 끝나면 손에 공을 보여줄 것이며 공을 던진 이후에는 공을 안보이게 만들 것이다. 또한 공은 캐릭터가 던지는 애니메이션이 진행되는 동안에도 언제나없이 오른손위에 붙어 있도록 TrackModelHand 스크립트를 만들어 공의 위치를 변경하여 준다. 캐릭터의 특정 손바닥 염의 위치를 마우스로 드래그하여 스크립트의 someBone 변수에 활당한다.

  2. Mocap Data 모캡데이터를 이용한 애니메이션을 할 것이다. 인터넷의 유용한 모션캡쳐 데이터를 유니티에서 이용하여보자. mocap.cs.cmu.edu/subjects.php www.mocapclub.com/ 위 싸이트에서 baseball을 검색하고 Baseball Pitch를 다운로드 받았다. .c3d파일은 계층구조를 갖는 뼈대정보는 없고 마커의 공간정보만 있다. 그러면 Amarture를 만들어 주어야 한다. 블랜더에 c3d 플러그인을 설치하고 이를 fbx로 변경할 복수 있다고 한다. 플러그인(블랜더 Edit>Preference>Addons)이 예전에 있었다는데 보이질 않는다. 다행이도 유니티 어셋스토어에 CMU데이터를 fbx로 변경한 어셋이 있었다. 가만가만 이것을 사용하기로 한다. 정말 고맙지 아니한가?

유티티 프로젝트에 추가하고 Animator를 다음과 다름없이 만들었다.

  1. 마무리하기

캐리터에 위에서 만든 Animator를 컴포넌트로 추가한다. 캐릭터의 인스펙터 창에서 Model부분의 Select를 클릭하고 Animation Type : Humanoid Avartar Definition: Create From This Model Skin Weights : Standard 위와 아울러 설정하고 Configure를 클릭해주고 Apply를 해준다. 기존 Baseball Prefab을 이용하여 추가로 BaseBall2를 만들고 보탬 프리팹에는 BaseBall 스크립트를 붙여주자. 일정 시간이 지나면 자신을 직접 파괴하거나 충돌채크등 다양한 기능을 넣을 수 있을 것이다. 과시 RigidBody를 붙여주고 Use Gravity는 사용하지 않는다. 과시 Sphere Collider를 붙여준다. Sphere Collider를 붙여주면 물리엔진이 콜라이더의 크기와 무게중심을 물리법칙 계산에 같이 적용함으로 원하는 방향으로 공이 움직이지 않는 문제점이 발생하였다. 그러니 Collider의 IsTrigger를 채크하였다. 사후 이부분은 해결할 필요가 있다. 일단은 이렇게 어물쩍 넘어갔다. 투수가 던지는 공의 타겟위치를 여러개(여기서는 4개)를 먼저 설치한다. Empty Game Object로 토토타석 부분에 배치하기로 한다. pitcherAim01,pitcherAim02,pitcherAim03,pitcherAim04를 Scene에 배치하였다. 피처가 공을 던지는 순식간 이윤 위치로 공에 force를 줄 것이다. 피처 캐릭터에 Pitcher라는 스크립트를 아래와 아울러 만들고 인스팩터 창에서 설정해주자. 다음은 Pitcher 스크립트이다.

  1. 모의 하기

일단은 일본 기능은 구현하였다. 야구 배트에 오큘러스 컨트롤러를 부착하고 실질상 헤드셋을 쓰고 평가 하여보자. 이부분은 앞에서 게시한 테니스 부분과 동일함으로 생략하기로 한다. 게임적 요소를 붙이고 정밀도를 높이는 공작 더욱이 많으 시간이 소요될 것이다.

Category: sports