유니티의 메카님 애니메이션 시스템(Mecanim Animation System) Mecanim Animation System https://docs.unity3d.com/462/Documentation/Manual/MecanimAnimationSystem.html 유니티의 애니메이션 시스템으로 시각적 프로그래밍 도구를 사용하여 애니메이션 클립의 정렬, 전환(트랜지션, transition), 상호작용을 설정하고 관리할수있습니다. 특히 휴머노이드 캐릭터에 대한 애니메이션 셋업 워크플로우를 제공하며 한 캐릭터 모델에서 다른 캐릭터 모델로 애니메이션을 적용할수있는 애니메이션 리타겟팅 기능을 제공합니다(Animation retargeting) 메카님 워크플로우 1-3D프로그램(마야, 맥스,기타)에서 3D아티스트 ..
유니티에서 rokoko 스튜디오의 얼굴 표정 라이브 스트리밍하기 rokoko studio와 face capture 앱을 사용하여 사용자의 얼굴 모션을 캡쳐하고 유니티에서 실시간 스트리밍하는 방법 1)PC의 rokoko studio와 모바일의 face capture 앱을 연결하고 유니티에서 사용할 actor 오브젝트를 준비합니다. rokoko 스튜디오와 face capture 앱을 사용하여 실시간 얼굴 애니메이션 클립 만들기 2)rokoko studio의 우측에서 livestream을 선택합니다. 3)유니티의 설정으로 이동해서 forward IP 및 Port의 기본설정에 체크합니다. 4)실시간 스트리밍이 활성화된것을 확인할수있습니다. 5)유니티에서 rokoko 에셋을 다운로드 및 설치하고 아래 표시한 씬을..
유니티 무료 얼굴 애니메이션(facial animation blendshape) 에셋 실시간 face capture 앱과 함께 사용할수있는 얼굴 blendshape 및 캐릭터 세트를 제공합니다. (AR Face Assets, The Realtime Rascals Face Capture Character Pack) AR Face Assets https://assetstore.unity.com/packages/essentials/asset-packs/ar-face-assets-184187 The Realtime Rascals Face Capture Character Pack https://assetstore.unity.com/packages/3d/characters/animals/the-realtime-ra..
유니티(Unity)의 스트리밍 에셋 폴더(StreamingAssets)https://docs.unity3d.com/Manual/StreamingAssets.html유니티는 프로젝트 빌드 과정에서 씬(Scenes) 및 에셋(Assets)을 바이너리 파일로 결합합니다. StreamingAssets 폴더를 사용하면 해당 폴더에 존재하는 모든 파일을 타겟 플랫폼의 파일 시스템(특정 폴더)로 그대로 복사하며 Application.streamingAssetsPath 속성을 사용하여 파일 및 리소스에 접근할수있습니다.Application.streamingAssetsPath의 반환 경로는 플래폼마다 다르기때문에 경로 처리가 필요합니다(플랫폼 종속성)StreamingAssets 폴더를 사용하는 경우 변환이나 압축 없이..
유니티(Unity) 트랜스폼 회전 관련 함수 모음(Transform.Rotate, Transform.LookAt, 기타)Transform.Rotate게임 오브젝트를 회전시키는 데 사용되는 함수. 회전에 오일러 각도(euler Angles)를 사용하며 회전의 축을 월드(world) 또는 로컬(local)로 지정할수있습니다. https://docs.unity3d.com/ScriptReference/Transform.Rotate.htmlRotate(Vector3 eulerAngles); 축(X, Y, Z)에 대해 회전할 각도를 포함한 Vector3를 사용 Rotate(new Vector3(30, 0, 0))은 X축을 기준으로 30도 회전 Rotate(float xAngle, float yAngle, float..
유니티에서 프리팹(Prefab) 사용하기(프리팹생성, apply, select, revert) 씬에서 여러번 재사용되는 게임 오브젝트를 프리팹으로 만들고 사용하는 방법(apply, select, revert) 1)씬에 empty 게임오브젝트를 생성하고(player) 하위에 큐브 오브젝트 두개를 구성합니다. 2)이 게임 오브젝트(player)의 프리팹 에셋을 생성하려면 해당 게임 오브젝트를 선택하고 프로젝트(project) 윈도우의 에셋(Assets) 폴더로 드래그, 드롭합니다. 에셋 폴더에 프리팹 에셋이 생성된것을 확인할수있으며 씬에 존재하는 해당 프리팹 게임 오브젝트는 파랑으로 표시됩니다(Hierarchy) 3)씬의 프리팹 오브젝트를 복사합니다. 씬(hierarchy)에 존재하는 프리팹 오브젝트의 속성..
유니티(Unity) 실습 예제 - 총알을 발사하는 씬 구성하기 1)씬에 새로운 큐브(cube) 오브젝트를 생성하고 바닥(Ground)과 벽(Wall)을 구성합니다. 2)총알로 사용할 3D 모델을 프로젝트에 가져오기(import)하고 씬에 오브젝트를 추가합니다(Bullet) 3)총알 모델의 오브젝트 로컬(local) 축을 확인합니다. z축이 모델의 측면 방향으로 설정되어있는것을 확인할수있습니다. 4)새로운 게임 오브젝트를 생성합니다(create empty) 5)총알 모델의 오브젝트(Bullet)를 GameObject의 자식 오브젝트로 설정하고 위치(position)를 초기화합니다(0, 0, 0) 6)총알 모델의 앞 방향이 GameObject의 z축 방향과 일치하도록 회전시킵니다. 7)GameObject이 ..
유니티 실습 예제 공굴리기 게임 만들기2 (아이템 프리팹 설정, 아이템 획득, 획득 개수 업데이트, UI 텍스트 표시) 1)씬에 cube 오브젝트를 생성합니다(Pick_up) 2)Pick_up 오브젝트를 프리팹(prefab)으로 설정합니다. 3)프리팹의 오브젝트(Pick_up)를 다중 복사하고 위치를 설정합니다. 새로운 게임 오브젝트(empty gameobject)를 생성하고 복사한 오브젝트들의 부모 오브젝트로 설정합니다. 4)Pick_up 오브젝트의 재질을 설정합니다. 5)인스펙터(inspector) 패널의 tag에서 add tag로 이동합니다. 6)+를 클릭하고 새로운 태그 이름을 입력하고 save를 클릭합니다. 7)씬에서 Pick_up 오브젝트를 선택하고 새로 추가한 태그를 설정합니다(P_u) pr..
유니티 실습 예제 공굴리기 게임 만들기1 (플레이어 방향키 이동 설정, 카메라 이동 설정) 1)씬에 sphere, plane 게임 오브젝트를 생성합니다(player, ground) 2)새로운 재질을 생성하고 ground에 할당합니다. 3)플레이어(player)에 리지드바디(rigidbody) 컴포넌트를 추가합니다. 4)상단의 edit 메뉴에서 project settings의 input으로 이동합니다. 5)Horizontal, Vertical 축에 대한 입력이 좌우 및 상하 방향 키로 설정되어있는것을 확인할수있습니다. 6)플레이어(player)에 새로운 사용자 스크립트를 추가합니다(PlayerController) 7)사용자 스크립트를 작성합니다. 게임을 플레이하고 방향 키를 입력하면 플레이어(player)..
유니티 webGL 프로젝트 사용자 템플릿(templates) 설정하기 https://docs.unity3d.com/Manual/webgl-templates.html 1)유니티에서 webGL프로젝트를 빌드하고 브라우저에서 실행하면 일반적으로 아래와 같은 기본 템플릿을 확인할수있습니다. 2)project settings의 player에서 resolution and presantation로 이동합니다. webGL template에. default 템플릿으로 설정되어있는것을 확인할수있습니다. 3)새로운 사용자 템플릿을 프로젝트에 가져오기합니다. 예에서 아래 웹사이트의 프로젝트 템플릿을 다운로드 및 가져오기하였습니다(웹페이지에서 전체화면으로 게임을 실행하는 템플릿) https://github.com/greggma..
유니티에서 직렬화 가능 유형 https://docs.unity3d.com/kr/530/ScriptReference/SerializeField.html 공용 비정적 필드(public nonstatic fields)를 직렬화할수 있습니다(직렬화 가능 유형, serializable types) [SerializeField] 속성으로 표시된 비공용 비정적 필드(nonpublic nonstatic fields)를 직렬화할수 있습니다. 정적 필드(static fields)를 직렬화할수 없습니다. 속성(properties)을 직렬화할수 없습니다. 직렬화 가능 유형(serializable types) UnityEngine.Object에서 상속되는 모든 클래스(GameObject, Component, MonoBehavi..
유니티에서 인스펙터 Debug mode 활성화하기 디버그 모드(Debug mode)를 활성화하면 인스펙터에서 해당 클래스의 속성과 값을 표시합니다. https://docs.unity3d.com/Manual/InspectorOptions.html Normal mode 1)일반 모드(Normal)에서는 컴포넌트의 속성에 대한 편집기로 구성된 인스펙터를 확인할수있습니다. Debug mode 2)인스펙터의 우측 상단에 표시한곳을 클릭하고 debug를 선택합니다. 3)디버그 모드(Debug mode)에서는 컴포넌트의 속성과 값을 표시하는것을 확인할수있습니다. 4)디버그 모드에서는 private으로 선언한 멤버 변수를 인스펙터에서 표시합니다.