유니티에서 윈도우 폴더의 파일을 복사하기, 삭제하기(File.Copy, File.Delete) File.Copy함수를 사용하여 파일 복사하기 1)윈도우에서 두 개의 폴더를 준비합니다. 2)첫번째 폴더에 다른 폴더로 복사할 파일들을 위치시킵니다(source) 3)두번째 폴더는 첫번째 폴더에서 복사하여 새로 파일을 생성할 폴더입니다(backup) 4)유니티에서 스크립트를 작성합니다. 지정한 폴더에 위치한 모든 파일을 문자열로 가져오기하고 모든 파일에 대해 첫번째 폴더(sourceDir)의 기존 파일을 두번째 폴더(backupDir)의 새 파일로 복사합니다. 5)게임을 시작하면 해당 폴더에서 복사하여 생성한 파일들을 확인할수있습니다. File.Delete함수를 사용하여 파일 삭제하기 6)윈도우 폴더에서 삭제할..
유니티에서 윈도우 폴더의 이미지 파일을 로드하여 텍스처로 사용하기 1)윈도우 폴더에 텍스처로 사용할 이미지 파일을 위치시킵니다. 2)유니티에서 스크립트를 작성합니다. 지정한 경로의 이미지 파일을 읽기하고 텍스처로 로드하여 게임오브젝트의 메인 텍스처로 사용합니다.
유니티에서 윈도우 폴더의 파일 읽기 File.ReadAllBytes(String) 함수 File.ReadAllBytes함수는지정한 경로의 파일을 열기하고 파일의 내용을 바이트배열로 읽기하고 파일을 닫기합니다. https://learn.microsoft.com/ko-kr/dotnet/api/system.io.file.readallbytes?view=net-7.0 1)윈도우 폴더에 이미지 파일을 준비합니다. 2)유니티에서 스크립트를 작성합니다. 이미지 파일이 위치한 폴더의 경로와 파일명을 지정하여 File.ReadAllBytes함수를 사용합니다. 3)게임을 시작하면 콘솔 윈도우에서 해당 파일을 읽기하고 파일의 크기를 출력합니다. Debug.Log(bytes.Length); 4)해당 이미지 파일의 크기가 동일..
유니티 텍스처 이미지 로드함수 ImageConversion.LoadImage 이미지 파일(PNG, JPG, 기타 지원 파일 형식)의 바이트 배열을 텍스처로 로드하는 함수 사용방법 함수 사용에서 텍스처 형식, 압축형식, 색 공간, 기타에 대한 내용을 아래 웹사이트에서 확인 https://docs.unity3d.com/ScriptReference/ImageConversion.LoadImage.html 1)씬에 텍스처를 맵핑할 게임오브젝트를 준비합니다. 2)아래 스크립트를 작성하고 게임오브젝트에 추가합니다. 새로운 텍스처를 생성하고 이미지의 바이트 배열을 텍스처로 로드합니다. 해당 텍스처를 스크립트의 게임오브젝트 재질의 메인 텍스처로 사용합니다.
유니티에서 휴머노이드 캐릭터의 애니메이션 리타게팅 한 캐릭터 모델에서 다른 캐릭터 모델로 애니메이션을 적용하는 방법 애니메이션이 존재하지않는 첫번째 캐릭터에서 애니메이션이 존재하는 두번째 캐릭터의 애니메이션을 사용하기 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아티스트 ..
유니티에서 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..
유니티에서 프리팹(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..