유니티에서 휴머노이드 캐릭터의 애니메이션 리타게팅 한 캐릭터 모델에서 다른 캐릭터 모델로 애니메이션을 적용하는 방법 애니메이션이 존재하지않는 첫번째 캐릭터에서 애니메이션이 존재하는 두번째 캐릭터의 애니메이션을 사용하기 1)유니티에서 휴머노이드 아바타를 생성한 첫번째 캐릭터 게임 오브젝트를 준비합니다. 유니티에서 3D 캐릭터 모델의 휴머노이드 아바타 생성하기(Humanoid Avatar) 첫번째 캐릭터(Ch46_nonPBR) 2)애니메이션이 완료된 두번째 캐릭터를 준비합니다. 예에서 지오메트리가 존재하지않고 본 오브젝트로만 구성된 애니메이션된 모델을 3D맥스에서 내보내기하였습니다. 3)유니티 프로젝트에 애니메이션된 두번째 캐릭터 모델을 가져오기합니다. 두번째 캐릭터(New_Recording_1) 4)3D프..
유니티에서 3D 캐릭터 모델의 휴머노이드 아바타 생성하기(Humanoid Avatar) 1)mixamo 웹사이트에서 T-Pose 캐릭터 모델을 다운로드합니다. https://www.mixamo.com/ 2)다운로드한 T-Pose 캐릭터 모델을 3D프로그램에서 확인합니다. 3D맥스에서 캐릭터 모델의 리깅이 완료되어있는것을 확인할수있습니다(rig, skin) 3)모델을 유니티 프로젝트에서 가져오기합니다(import) 4)씬에 해당 모델을 추가하고 계층 구조를 확인합니다(mixamorig) 5)모델의 import settings에서 rig의 animation type을 휴머노이드(humanoid)로 설정합니다. 6)avatar definition을 create from this model로 설정하고 apply..
유니티의 메카님 애니메이션 시스템(Mecanim Animation System) Mecanim Animation System https://docs.unity3d.com/462/Documentation/Manual/MecanimAnimationSystem.html 유니티의 애니메이션 시스템으로 시각적 프로그래밍 도구를 사용하여 애니메이션 클립의 정렬, 전환(트랜지션, transition), 상호작용을 설정하고 관리할수있습니다. 특히 휴머노이드 캐릭터에 대한 애니메이션 셋업 워크플로우를 제공하며 한 캐릭터 모델에서 다른 캐릭터 모델로 애니메이션을 적용할수있는 애니메이션 리타겟팅 기능을 제공합니다(Animation retargeting) 메카님 워크플로우 1-3D프로그램(마야, 맥스,기타)에서 3D아티스트 ..
유니티 에셋 추천 - 도시 시스템 생성 에셋 Fantastic City Generator 빠르고 쉬운 방법으로 도시 및 교통 시스템을 생성할수있는 에셋입니다. https://assetstore.unity.com/packages/3d/environments/urban/fantastic-city-generator-157625 Fantastic City Generator 소개영상 https://youtu.be/q2GhMVubc3E https://youtu.be/lr94kNKMEuA FCG traffic system, 교통시스템 https://youtu.be/LDujofxGoqs FCG adding buildings, 사용자 빌딩 오브젝트 추가 https://youtu.be/kVrWir_WjNY
유니티(Unity)의 스트리밍 에셋 폴더(StreamingAssets)https://docs.unity3d.com/Manual/StreamingAssets.html유니티는 프로젝트 빌드 과정에서 씬(Scenes) 및 에셋(Assets)을 바이너리 파일로 결합합니다. StreamingAssets 폴더를 사용하면 해당 폴더에 존재하는 모든 파일을 타겟 플랫폼의 파일 시스템(특정 폴더)로 그대로 복사하며 Application.streamingAssetsPath 속성을 사용하여 파일 및 리소스에 접근할수있습니다.Application.streamingAssetsPath의 반환 경로는 플래폼마다 다르기때문에 경로 처리가 필요합니다(플랫폼 종속성)StreamingAssets 폴더를 사용하는 경우 변환이나 압축 없이..
유니티에서 프리팹(Prefab) 사용하기(프리팹생성, apply, select, revert) 씬에서 여러번 재사용되는 게임 오브젝트를 프리팹으로 만들고 사용하는 방법(apply, select, revert) 1)씬에 empty 게임오브젝트를 생성하고(player) 하위에 큐브 오브젝트 두개를 구성합니다. 2)이 게임 오브젝트(player)의 프리팹 에셋을 생성하려면 해당 게임 오브젝트를 선택하고 프로젝트(project) 윈도우의 에셋(Assets) 폴더로 드래그, 드롭합니다. 에셋 폴더에 프리팹 에셋이 생성된것을 확인할수있으며 씬에 존재하는 해당 프리팹 게임 오브젝트는 파랑으로 표시됩니다(Hierarchy) 3)씬의 프리팹 오브젝트를 복사합니다. 씬(hierarchy)에 존재하는 프리팹 오브젝트의 속성..
유니티 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..
유니티 콘솔(console)에 로그 메시지 출력하기(Debug.Log) Debug.Log 함수를 사용하여 프로그램을 디버깅하는데 도움이 되는 정보 메시지를 출력할수있습니다. 문자열 표현으로 변환할 문자열 또는 개체를 함수의 파라미터로 전달합니다. https://docs.unity3d.com/ScriptReference/Debug.Log.html
유니티 에셋 수평선 밴딩 이펙트 에셋 Horizon Bending https://assetstore.unity.com/packages/tools/particles-effects/horizon-bending-55306 Horizon Bending 소개영상 https://youtu.be/5TUSVj8yka8 Horizon Bending 튜토리얼 https://youtu.be/kdMws6Td8iA
유니티 브러시 페인팅 도구 폴리 브러시(poly brush) 브러시 도구를 사용하여 메시 변형 모델링(sculpt mesh), 텍스처 페인팅(blend textures and colors), 버텍스 컬러 페인팅(paint vertex colors), 오브젝트 분산(scatter objects) 기능을 사용할수있는 패키지(Package)로 유니티 패키지 관리자에서 다운로드할 수 있습니다. https://unity.com/features/polybrush 폴리 브러시 소개영상(poly brush) https://youtu.be/JQyntL-Z5bM
유니티 URP 프로젝트에서 객체당 라이트 제한 개수 설정(per object limit) 1)씬에 6개의 조명을 추가합니다. 2)6개의 조명중 4개만 plane 오브젝트에 영향을 미치고있는것을 확인할수있습니다. 유니티 URP에서 객체당 조명 제한 개수는 기본 4로 설정되어있습니다. 3)객체당 라이트 한계(per object limit)를 설정하려면 project settings의 graphics에서 URP 에셋으로 이동합니다. 4)lighting의 additional lights에서 per object limit가 기본값 4로설정되어있는것을 확인할수있습니다. 5)최대값인 8로 설정합니다. 성능 고려사항 때문에 URP에서 객체당 라이트 제한은 8개입니다. 6)씬에 8개의 조명을 추가합니다. 7)8개의 조명..
유니티에서 콜라이더의 충돌 무시(Physics.IgnoreCollision) Physics.IgnoreCollision(collider1, collider2) 함수는 충돌 감지 시스템이 collider1과 collider2 사이의 충돌을 무시하도록 설정합니다. https://docs.unity3d.com/ScriptReference/Physics.IgnoreCollision.html 1)충돌에 사용할 두개의 오브젝트를 생성합니다(sphere1, sphere2) 2)예에서 Sphere1의 콜라이더를 트리거로 설정하고(isTrigger 체크) 리지드바디 컴포넌트를 추가하였습니다. 3)Sphere2의 콜라이더에서 isTrigger 속성을 체크해제하고 리지드바디 컴포넌트를 추가하지않았습니다. 4)Sphere1의..