Byn's Research Note

AI based Mixed Reality, Human-Computer Interaction

↓ My Web CV & Portfolio 자세히보기

Extended Reality 11

Unity Programming [4] : 유니티와 인공지능 모델 (Unity & AI Model)

유니티(Unity)는 실시간 3D 시뮬레이션 환경을 제공하여 AI 모델의 훈련과 테스트를 효과적으로 지원한다. 특히, 물리 기반 시뮬레이션을 통해 로봇 제어, 자율주행차, 가상 환경에서의 사용자 행동 예측과 같은 다양한 AI 응용 사례를 개발할 수 있다. 이를 통해 유니티는 높은 확장성과 유연성을 바탕으로 AI 기술과의 통합을 가능하게 한다. 유니티에서 인공지능 모델을 활용할 수 있는 방법은 센티스, 바라쿠다, ML Agent 등이 있다. 센티스(Sentas)는 유니티 내에서 AI 및 머신러닝 모델의 실행을 지원하는 도구로, TensorFlow, PyTorch와 같은 프레임워크로 학습된 모델을 가져와 유니티 환경에서 빠르게 추론을 실행할 수 있다. 바라쿠다(Barracuda)는 유니티에서 제공하는 경량화..

Unity Development [4] : 애니메이션 (Animation)

유니티(Unity)에서 애니메이션은 캐릭터, 객체, UI 요소 등의 움직임을 제어하고 시각적 효과를 추가하는 데 사용된다. 유니티는 기본적으로 애니메이터 컨트롤러(Animator Controller)와 애니메이션 클립(Animation Clip)이라는 두 가지 주요 요소를 통해 애니메이션 시스템을 관리한다. 애니메이터 컨트롤러는 각 애니메이션 클립 간의 전환을 설정하고, 복잡한 상태 전환 논리를 구성할 수 있도록 돕는다. 애니메이터 컨트롤러는 상태 머신(state machine) 기반으로 동작하며, 각 상태는 특정 애니메이션 클립을 나타낸다. 예를 들어, 게임 캐릭터라면 '대기', '걷기', '달리기', '점프' 등의 상태가 있을 수 있고, 각 상태에 해당하는 애니메이션 클립을 연결할 수 있다. 이를 통..

Unity Programming [3] : 유니티 시스템 로직 (Unity System Logics)

1. 유니티 이벤트 프로그램에서 이벤트(Event)는 시스템 내에서 발생하는 특정 동작이나 상태 변화를 처리하는 메커니즘이다. 예를 들어, 사용자가 웹 페이지에서 버튼을 클릭하거나 화면을 터치하는 것과 같은 행동이 이벤트로 간주된다. 이벤트 시스템에서 "제공자"는 이와 같은 사용자 행동을 감지하고, 이를 구독자에게 알리는 역할을 한다. 제공자는 버튼 클릭, 마우스 이동, 키보드 입력 등 다양한 이벤트를 발생시키며, 구독자는 이러한 이벤트를 미리 "구독"하고 있다가, 이벤트가 발생할 때마다 반응을 한다. 예를 들어, 자바스크립트에서 addEventListener 메서드는 구독자 역할을 하며, 버튼 클릭 이벤트를 처리할 때마다 제공자가 발생시킨 클릭 정보를 받아서 지정된 함수를 실행한다.  using Uni..

Unirt Programming [2] : 데이터 전송 및 수신

유니티에서 도출한 데이터를 기록하는 방법에는 여러 가지가 있다. 첫 번째로, StreamWriter를 사용하여 로컬 시스템에 데이터를 저장하는 방법이 있다. 이를 통해 텍스트 파일로 데이터를 기록하거나 로그를 남길 수 있다. 두 번째로, HTTP 요청을 통해 서버와 통신하여 데이터를 전송하고, 서버 측에서 이를 처리하여 데이터베이스나 파일 시스템에 저장하는 방식이다. 마지막으로, 클라우드 저장소를 이용해 데이터를 기록하는 방법도 있다. 클라우드 서비스를 활용하면, 인터넷을 통해 언제 어디서나 데이터에 접근할 수 있으며, AWS, Google Cloud, Azure와 같은 서비스를 통해 데이터를 안정적으로 저장하고 관리할 수 있다. 이 외에도 각 저장 방식은 데이터의 크기, 보안 요구 사항, 접근성 등에 ..

Unity Development [3] : 컴포넌트 기반 아키텍처

프리팹 (Prefab) 태그와 레이어 (Tag and Layer)유니티에서 사용하는 게임 오브젝트는 각각의 이름이 존재하고, 이를 분류하기 위해 Tag, Layer라는 두 가지 요소를 사용한다. 두 요소가 정확히 무슨 차이이고, 어떻게 사용되는지 알아보자. 아무 게임 오브젝트나 선택한 후 인스펙터 창에서 Tag나 Layer를 클릭하고 하단 [Add Tag] 또는 [Add Layer]를 클릭하면 Tag & Layers 창으로 이동되며, 이곳에서 태그와 레이어를 관리할 수 있다.Tag유니티에서 태그 (Tags)는 게임 오브젝트를 구분하고 분류하는 데 사용되는 간단한 문자열 레이블이다. 주요 기능은 다음과 같다. 오브젝트 분류: 태그를 사용하여 오브젝트를 그룹화할 수 있다. 예를 들어, 모든 적 캐릭터에 "E..

Unity Programming [0] : 유니티 C# 프로그래밍 (OOP, DOD 등)

유니티에서 C# 객체지향 프로그래밍(OOP)은 복잡한 게임 시스템을 관리하고 유지보수성을 높이는 데 필수적이다. 객체 지향 프로그래밍을 이용하면 클래스와 상속, 다형성 등을 통해 코드를 모듈화하여 재사용성을 극대화하고, 확장성을 높여 새로운 기능을 쉽게 추가할 수 있다. 또한, 코드의 구조를 명확히 나눔으로써 협업 시에도 개발자 간의 작업 충돌을 최소화하고, 수정할 때 특정 부분만 수정하면 되므로 오류 발생 가능성을 줄일 수 있다. 이를 통해 효율적인 개발과 코드 관리가 가능해진다. 유니티 C#에서는 네임 스페이스, 클래스, 구조체, 제네릭 타입 등을 통해 이를 구현할 수있다. 코드를 간소화하려면 반복되는 부분을 별도의 메서드로 추출해 공통적인 기능을 모듈화하는 것이 좋습니다. 예를 들어, 각 손의 진행..

Unity Development [2] : 물리 시뮬레이션

콜라이더는 유니티에서 가장 많이 쓰이는 것 중 하나로, 충돌을 감지할 때 쓰입니다.3D에서는 Box Collider, Sphere Collider, Capsule Collider,2D에서는 Box Collider2D와 Circle Collider2D가 대표적으로 쓰입니다.콜라이더의 형태가 간단할수록 기기에 부하를 주지 않습니다.  왼쪽부터 박스콜라이더, 캡슐콜라이더, 스피어콜라이더위 그림은 콜라이더가 충돌을 감지하는 영역을 나타냅니다. 콜라이더의 요소1. Box ColliderisTrigger은 나중에 설명할 예정이니 지금은 무시합시다.Material은 물체 표면의 물리적 특성을 나타냅니다. 물체 표면의 마찰계수, 탄성계수, 정지마찰력 등을 설정할 수 있습니다. 물리 머터리얼을 따로 만들어 넣습니다.Ce..

Unity Development [1] : 사용자 인터페이스와 바인딩

더보기  Unity의 UI 시스템에서 Canvas는 화면에 UI 요소를 그리기 위한 기본적인 컨테이너이다. 모든 UI 요소는 Canvas 내부에 배치해야 렌더링되며, 화면 상의 위치, 크기, 스케일링 등이 적용된다. Canvas는 Render Mode에 따라 월드 스페이스, 카메라, 스크린 모드로 설정할 수 있으며, 월드 스페이스는 3D 공간에 UI를 배치해 오브젝트와의 상호작용을 가능하게 하고, 카메라 모드는 특정 카메라 뷰에 고정된 UI를, 스크린 모드는 화면 해상도에 맞춰 UI를 표시한다. 예를 들어, 게임의 메인 메뉴가 스크린 모드 Canvas에 추가되면, 화면 크기에 따라 자동으로 조정되며 언제나 동일한 위치에 표시될 수 있다. Unity의 Canvas Sorting Layer와 Order in..