유니티에서 메시 콜라이더 사용하기(mesh collider, convex) 오브젝트의 메시와 유사한 형태의 콜라이더를 생성하여 기본적인 콜라이더(primitives - box collider, sphere collider, capsure collider)보다 정확한 충돌을 표현할수있다. 하지만 충돌을 처리하는데 발생하는 오버헤드에 유의해야한다. (씬에서 메시의 와이어프레임 표시하기, 메시콜라이더에서 최적화된 mesh사용하기, 메시콜라이더의 convex 사용하기) 1)3D프로그램에서 제작한 메시 에셋을 유니티에서 불러오기한다. 2)에셋 폴더에서 메시를 선택하면 정점 및 트라이의 개수를 확인할수있다. 3)씬의 draw mode를 wireframe으로 설정하면 메시의 와이어프레임을 표시한다. 4)오브젝트에 m..
유니티 스크립트에서 버튼에 온클릭 리스너 추가하기(onClick.AddListener) 스크립트에서 버튼에 온클릭 이벤트 리스너 추가하는 방법 1)일반적으로 버튼 컴포넌트에서 직접 게임 오브젝트를 참조하고 함수를 설정하는 방법으로 온클릭 리스너를 추가할수있다. 2)스크립트에서 버튼에 리스너를 추가하려면 onClick.AddListener 함수를 사용한다. btn1.onClick.AddListener(btn1print); 추가할 함수에 인수가 존재하지않으면 함수명을 입력한다. btn2.onClick.AddListener(delegate { btn2print("Hello"); }); btn3.onClick.AddListener(() => btn3print("goodbye")); 추가할 함수에 인수가 존재하면..
유니티 이전 버전 에디터 제거하기 유니티 허브에서 제거 1)유니티 허브의 설치 메뉴에서 컴퓨터에 설치된 모든 버전의 에디터를 확인할수있다. 2)항목을 선택하고 설치 제거를 진행할수있다. 유니티 에디터 폴더에서 제거(uninstall.exe) 3)유니티의 설치 경로는 아래와 같다. C:\Program Files\Unity\Hub\Editor 4)제거하려는 버전의 에디터 폴더에서 uninstall.exe를 실행하여 프로그램을 제거할수있다.
유니티에서 애니메이션 클립 분할하고 프레임 범위설정하기 (사용 프로그램 - unity 2019.4.16f1) 한개의 클립에 존재하는 다수의 애니메이션을 분할할수있다. 1)애니메이션의 임포트설정에서 한개의 애니메이션 클립이 존재하는것을 확인할수있다(take001) 2)미리보기를 플레이하면 클립에 존재하는 다수의 애니메이션을 순차적으로 재생한다. 3)애니메이션 클립 하단의 add to list를 클릭한다. 4)클립의 이름을 설정하고 애니메이션의 시작과 끝 프레임을 설정한다. 5)apply를 클릭하면 설정을 적용하고 프로젝트의 에셋에서 애니메이션 클립이 추가된것을 확인할수있다.
3D맥스에서 애니메이션의 root motion 제거하기(in-place) 캐릭터 애니메이션을 root motion에서 in-place로 수정하는 방법 root motion 애니메이션(walk) 1)캐릭터 애니메이션의 root 오브젝트를 선택한다. 2)애니메이션을 실행하면 root 오브젝트에 모션이 설정되어있는것을 확인할수있다. 3)시작 프레임으로 이동하고 root 오브젝트의 모든 키를 선택한다. 4)타임라인에서 마우스 우클릭한후 delete selected keys를 선택하면 키를 제거한다. 5)root 오브젝트의 모션이 제거되고 애니메이션이 in-place로 수정된것을 확인할수있다. in-place 애니메이션(walk)
3D맥스에서 root motion 애니메이션 설정하기 3D맥스에서 캐릭터 애니메이션을 in-place(IP)에서 root motion(RM)으로 변경하고 유니티에서 불러오기하는 방법이다. 유니티 에셋스토어의 유료 에셋을 사용하였다. assetstore.unity.com/packages/3d/characters/animals/reptiles/crocodile-8696?locale=ko-KR in-place 애니메이션(swim) 루트 모션(root motion)은 애니메이션에 존재하는 root transform의 모션이 게임오브젝트의 위치(transform position)와 회전(transform rotation)을 제어한다. 1)맥스에서 root 오브젝트를 선택한다. 2)키 프레임을 추가하여 y축으로 이..
3D맥스에서 애니메이션 역방향으로 설정하기(reverse) (프로그램 버전 - 3dmax 2018) 1)맥스에서 모델 및 애니메이션을 불러오기한다. 캐릭터 걷기 애니메이션 2)캐릭터 애니메이션을 구성하는 모든 bone 오브젝트를 선택하고 상단의 graph editors 메뉴에서 track view - dope sheet으로 이동한다. 3)좌측 목록에서 모든 bone 오브젝트를 선택한다. 4)상단의 time 메뉴에서 select를 선택한다. 5)클릭, 드래그해서 프레임 범위를 선택한다. 6)상단의 time 메뉴에서 reverse를 선택한다. 7)애니메이션이 역방향으로 설정된것을 확인할수있다.
3D맥스에서 fbx 내보내기 설정(dummies to bones) 맥스에서 저장한 애니메이션의 최상위 root 오브젝트가 유니티에서 제외되는 문제 dummy를 bone 오브젝트로 설정하여 내보내기하는 방법 1)아래에서 dummy 오브젝트가 캐릭터 애니메이션을 구성하고있다. 2)애니메이션을 내보내기한다(fbx) 2)fbx파일을 유니티에서 불러오기한다. 3)유니티에서 애니메이션의 최상위 오브젝트(root)가 제외된것을 확인할수있다. 4)3D맥스에서 최상위 root오브젝트를 선택한다. 5)상단의 animation 메뉴에서 bone tools로 이동한다. 6)bone properties에서 bone on에 체크한다. 7)애니메이션을 다시 내보내기한다. fbx export 옵션에서 convert deforming..
유니티에서 애니메이션의 루트모션(root motion) 비활성화하기 1)아래는 루트 모션이 설정되어있는 애니메이션이다. assetstore.unity.com/packages/3d/characters/animals/reptiles/gecko-54027 2)애니메이션의 루트모션(root motion)을 비활성화하려면 임포트세팅에서 root node를 none으로 설정한다. 3)게임 오브젝트의 애니메이터 컴포넌트에서 apply root motion을 체크해제한다.
유니티에서 역방향 애니메이션 클립 만들기(reverse) (사용자 스크립트를 사용한 방법, 애니메이션의 속도에 음수값을 입력하는 방법, 애니메이션의 키프레임을 수정하는 방법) 사용자 스크립트를 사용하는 방법(Straafe, ReverseAnimationContext.cs) 1)모델의 애니메이션 파일(fbx)에서 애니메이션 클립을 복사한다(ctrl+d) 2)에디터에 아래 깃허브에서 사용자 Straafe가 작성 및 제공하는 스크립트를 추가한다. github.com/Straafe/unity-editor-tools/blob/master/ReverseAnimationContext.cs 3)복사한 애니메이션 클립을 선택하고 마우스 우클릭한후 create reversed clip을 선택한다. 4)역방향 애니메이션 클..
유니티에서 애니메이션을 좌우대칭(mirror)으로 만들기 animation mirror를 사용하여 좌우대칭 애니메이션 클립을 만드는 방법이다. mirror속성은 휴머노이드(humanoid) 애니메이션 타입에서 사용 가능하다. 1)프로젝트에서 모델의 걷기 애니메이션 파일을(fbx) 임포트하였다(좌로 걷기, WalkLeft) 2)임포트 세팅의 rig에서 애니메이션 형식이 휴머노이드로 설정되어있는지 확인한다(humanoid) 3)animation에서 애니메이션 클립을 확인할수있다. 좌로 걷기 애니메이션(WalkLeft) fbx 파일을 복사하는 방법 5)fbx파일을 복사하고 이름을 재설정한다(TurnRight) 6)복사한 fbx 파일의 임포트세팅에서 애니메이션 클립의 이름을 재설정한다(WalkRight) 7)애..
유니티에서 fbx파일의 애니메이션 클립 복사하기 1)프로젝트의 에셋 폴더에서 fbx파일의 애니메이션 클립을 선택한다. 2)상단의 edit 메뉴에서 duplicate를 선택한다(ctrl+d) 3)애니메이션 클립이 복사된것을 확인할수있다. 4)애니메이션 클립을 선택하면 애니메이션 윈도우에서 키 프레임 애니메이션을 확인 및 수정할수있다.