본문바로가기

문서

!!!!

Home > 문서 > Manual

Manual

  • 1. 통합개발환경
    • 1.1 통합개발환경
      • 1.1.1 H/W 요구사항
      • 1.1.2 S/W 요구사항
    • 1.2 통합개발환경 구성도
    • 1.3 통합개발환경 구조
      • 1.3.1 Project
      • 1.3.2 Scene
      • 1.3.3 Simulation Object
      • 1.3.4 Component
      • 1.3.5 Asset
    • 1.4 통합개발환경 GUI 구성
      • 1.4.2.1 Main Menu
        • 1.4.2.1.1 File Menu
        • 1.4.2.1.2 Edit Menu
        • 1.4.2.1.3 Assets Menu
        • 1.4.2.1.4 Object Menu
        • 1.4.2.1.5 Component Menu
        • 1.4.2.1.6 Window Menu
        • 1.4.2.1.7 Help Menu
      • 1.4.2.2 Toolbar
        • 1.4.2.2.1 Transform Tool
        • 1.4.2.2.2 기즈모 제어
        • 1.4.2.2.3 시뮬레이션 제어
        • 1.4.2.2.4 Scene 가시화 제어
        • 1.4.2.2.5 IDE 구성 제어
      • 1.4.2.3 Scene View
      • 1.4.2.4 Simulation View
      • 1.4.2.5 Hierarchy View
      • 1.4.2.6 Project View
      • 1.4.2.7 Inspector View
      • 1.4.2.8 Scenario View
      • 1.4.2.9 Console View
  • 2. 코어 엔진
    • 2.1 시뮬레이션 엔진
      • 2.1.1 기능
      • 2.1.2 특징
      • 2.1.3 주요 스펙
      • 2.1.4 워크플로
      • 2.1.5 사용법
    • 2.2 오디오 엔진
      • 2.2.1 기능
      • 2.2.2 특징
      • 2.2.3 주요 스펙
      • 2.2.4 워크플로
      • 2.2.5 사용법
    • 2.3 행위 제어 엔진
      • 2.3.1 기능
      • 2.3.2 특징
      • 2.3.3 주요 스펙
      • 2.3.4 워크플로
      • 2.3.5 사용법
    • 2.4 특수효과 파티클 엔진
      • 2.4.1 기능
      • 2.4.2 특징
      • 2.4.3 주요 스펙
      • 2.4.4 워크플로
      • 2.4.5 사용법
    • 2.5 체감형장치 IO엔진
      • 2.5.1 기능
      • 2.5.2 특징
      • 2.5.3 주요 스펙
      • 2.5.4 워크플로
      • 2.5.5 사용법
        • 2.5.5.1 컴포넌트 설명
          • 2.5.5.1.1 키보드 컴포넌트
          • 2.5.5.1.2 마우스 컴포넌트
          • 2.5.5.1.3 조이스틱 컴포넌트
          • 2.5.5.1.4 휠 컴포넌트
          • 2.5.5.1.5 시리얼 컴포넌트
          • 2.5.5.1.6 HMD 컴포넌트
          • 2.5.5.1.7 립 모션 컴포넌트
          • 2.5.5.1.8 키넥트 컴포넌트
    • 2.6 상황제어 UI/UX 엔진
      • 2.6.1 기능
      • 2.6.2 특징
      • 2.6.3 주요 스펙
      • 2.6.4 워크플로
      • 2.6.5 사용법
    • 2.7 항공용 가시화 엔진
      • 2.7.1 기능
      • 2.7.2 특징
      • 2.7.3 주요 스펙
      • 2.7.4 워크플로
      • 2.7.5 사용법
    • 2.8 HLA/RTI 기반 네트워크 엔진
      • 2.8.1 기능
      • 2.8.2 특징
      • 2.8.3 주요 스펙
      • 2.8.4 워크플로
      • 2.8.5 사용법
        • 2.8.5.1 컴포넌트 설명
          • 2.8.5.1.1 RTIFactory 컴포넌트
          • 2.8.5.1.2 RTIDemonManager 컴포넌트
          • 2.8.5.1.3 RTICommunication 컴포넌트
          • 2.8.5.1.4 HLA/RTI 네트워크 엔진 API 사용
    • 2.9 가시화엔진
      • 2.9.1 기능
      • 2.9.2 특징
      • 2.9.3 주요 스펙
      • 2.9.4 워크플로
      • 2.9.5 사용법
      • 2.9.6 컴포넌트 설명
      • 2.9.7 사용 예제
    • 2.10 물리엔진
      • 2.10.1 기능
      • 2.10.2 특징
      • 2.10.3 주요 스펙
      • 2.10.4 워크플로
      • 2.10.5 사용법
      • 2.10.6 컴포넌트 설명
      • 2.10.7 사용 예제
    • 2.11 훈련환경 연동엔진
      • 2.11.1 기능
      • 2.11.2 특징
      • 2.11.3 주요 스펙
      • 2.11.4 워크플로
      • 2.11.5 사용법
  • 3. 저작가이드
    • 3.1 컨텐츠 저작 가이드
  • 4. 부록
1. 통합개발 환경
1.1 통합개발환경

이트레이닝 시스템 개발에 필요한 11개의 공통 엔진 (시뮬레이션, 가 시화, 물리, 네트워크, 체감형장치 I/O, 행위제어, 오디오, 파티클, 상황제어 UX/UI, 실내외 훈련황경 연동, 항공용 3D 렌더링 엔진)을 기반으로 다양한 분야의 3D 컨텐츠 제작을 지원하는 도구

그림 1 이트레이닝 시스템 통합개발환경 그림 1 이트레이닝 시스템 통합개발환경
1.1.1. H/W 요구사항

본 저작 도구를 위해 권장되는 H/W 사양은 다음과 같다.

CPU Intel i7 6700 1
32GB RAM 1
HDD 1TB 1
통신카드 - 1
통신포트 - 1
전시부 32인치 FHD 1
그래픽카트 Geforce GTX980 1
표준 인터페이스 한글 표준자판, 마우스 1
체감형 인터페이스 3종 휠, HMD 등 3(각 1)
1.1.2. S/W 요구사항

본 저작 도구를 위해 권장되는 S/W 요구사항은 다음과 같다.

구분 명칭 버전 제조사 기능
운영체제 Windows 10 Microsoft 운영체제(64bit)
개발환경 통합개발환경 소프트웨어 1.4.0.2 2세부 통합개발환경 제공
유틸리티 MonoDevelop 5.7.0 스크립트 에디터
Visual Studio 2013 Microsoft 통합개발환경
3ds Max 2015 SP2 Autodesk 3D 모델링 툴
Mono Framework 3.12.1 Mono Project 멀티플랫폼 지원 .NET 프레임워크
ABIMO - 하이컴텍 훈련환경 제작
1.2 통합개발환경 구성도

이트레이닝 시스템 통합개발환경은 WYSIWYP 방식 비주얼 프로그래밍 환경, 플러그인 도구로 구성되며, 각항목에 대한 세부 구성은 다음 그림과 같다.

그림 2 이트레이닝 시스템 통합개발환경 구성도 그림 2 이트레이닝 시스템 통합개발환경 구성도
1.3 통합개발환경 구조

이트레이닝 시스템 통합개발환경으로 제작되는 컨텐츠는 Project, Scene, Component, Asset이 포함되며 각 항목은 다음과 같이 세부적으로 구성된다.

1.3.1 Project

이트레이닝 시스템 통합개발환경에서 1개의 Project는 객체 집합으로 이루어진 Scene들과 다양한 Resource를 가지는 Asset들을 관리하는 최상위 개념이다.

그림 3 통합개발환경 Project 구조 그림 3 통합개발환경 Project 구조
1.3.2 Scene

이트레이닝 시스템 통합개발환경의 Scene은 컨텐츠 저작을 위해 제공하는 가상 3차원 공간으로 컴포넌트 집합을 가지는 Simulation Object들을 관리한다.

그림 4 통합개발환경 Scene구조 그림 4 통합개발환경 Scene구조
1.3.3 Simulation Object

이트레이닝 시스템 통합개발환경의 Object는 기능 컴포넌트를 포함 할 수 있는 컨테이너 객체이며, Scene에서 존재하는 모든 객체는 Simulation Object이다. Simulation Object는 자기 자신이 어떠한 특성이나 기능을 가지지 않으며, 컴포넌트의 구성에 따라 Simulation Object의 특성이나 기능을 정의할 수 있다.

1.3.4 Component

Simulation Object는 컴포넌트를 포함할 수 있는 컨테이너 객체이며, 컴포넌트는 Simulation Object의 특성이나 기능을 정의할 수 있는 최소 단위의 요소이다. 모든 Simulation Object는 Transform 컴포넌트를 기본으로 소유하며 Transform 컴포넌트를 사용하여 Simulation Object의 위치, 크기, 회전에 대한 특성을 정의한다. 컴포넌트에는 Camera, Rigidbody, Collider, Audio등의 컴포넌트가 존재한다.

1.3.5 Asset

이트레이닝 시스템 통합개발환경의 Asset은 Scene을 구성하기 위해 공용으로 사용되는 물질적인 자원으로 정적 유형의 자원과 동적 유형의 자원으로 분리된다. Asset은 하나의 Project내의 여러 Scene에서 공유될 수 있다.

그림 5 이트레이닝 시스템 통합개발환경 Asset 구조 그림 5 이트레이닝 시스템 통합개발환경 Asset 구조
1.4 통합개발환경 GUI 구성

이트레이닝 시스템 통합개발환경의 GUI 구성은 크게 Project Wizard, Main Window, Main Menu, Toolbar, Scene View Window, Simulation View Window, Hierarchy Window, Project Window, Inspector Window, Scenario Window, Console Window로 구성될 수 있으며 사용자가 원하는 Window를 제작하여 시현할 수 있도록 지원될 예정이다.

1.4.1. Project Wizard

이트레이닝 시스템 통합개발환경 실행 시 Project의 생성 및 기존 프로젝트의 로드 기능을 제공하여 주는 마법사로서, 새 프로젝트의 이름/경로/타입 지정이 가능하고 포함 가능한 기본 Asset을 지정할 수 있는 기능을 제공한다. 또한, 최근 사용된 프로젝트의 목록을 시현하고 로드할 수 있으며 파일 탐색기를 통한 프로젝트 폴더 지정 기능도 제공한다.

그림 6 Project Wizard 새 프로젝트 생성 기능 그림 6 Project Wizard 새 프로젝트 생성 기능
그림 7 Project Wizard 최근 프로젝트 로드 기능 그림 7 Project Wizard 최근 프로젝트 로드 기능
1.4.2. Main Window

이트레이닝 시스템 통합개발환경의 Main Window는 여러개의 재배치 가능한 Window들을 관리하는 최상위 Window로 Main Window에 포함된 각 View 및 Window는 Tab 기반으로 구성되어 사용자의 기호에 맞춰 Window Size 조정 및 Docking 할 수 있는 기능을 제공한다.

1.4.2.1. Main Menu

이트레이닝 시스템 통합개발환경 Main Window의 최상단에 위치되는 메뉴 모음으로 File Menu, Edit Menu, Assets Menu, Object Menu, Component Menu, Window Menu, Help Menu로 구성되며 각 항목은 다음과 같은 기능을 제공한다.

그림 8 이트레이닝 시스템 통합개발환경 Main Menu 구성 그림 8 이트레이닝 시스템 통합개발환경 Main Menu 구성
1.4.2.1.1. File Menu

프로젝트 및 Scene 생성/저장/로드 기능을 제공하고 제작된 컨텐츠의 배포를 위한 Build 및 실행 기능을 제공한다.

그림 9 File Menu 구성 그림 9 File Menu 구성
1.4.2.1.2. Edit Menu

DE 편집 사항에 대한 편집 되돌리기, 복원 기능을 제공하고 객체의 복사, 붙여넣기, 이름변경, 삭제 기능 및 현재 Project에 대한 다양한 설정 기능을 제공한다.

그림 10 Edit Menu 구성 그림 10 Edit Menu 구성
1.4.2.1.3. Assets Menu

Asset에 대한 생성/편집, 마켓플레이스 접속, Asset의 삽입/추출 기능을 제공한다.

그림 11 Assets Menu 구성 그림 11 Assets Menu 구성
1.4.2.1.4. Object Menu

현재의 Scene에 객체를 추가하는 기능을 제공한다. 사용자의 편의를 위해 기 정의된 객체(Cube, Sphere, Plane 등) 및 컴포넌트가 미리 구성된 Light, Audio, Camera 등의 객체 추가 기능도 제공된다.

그림 12 Object Menu 구성 그림 12 Object Menu 구성
1.4.2.1.5. Component Menu

Hierarchy Window에서 선택된 객체에 기능 컴포넌트를 추가할 수 있는 기능을 제공한다.

그림 13 Component Menu 구성 그림 13 Component Menu 구성
1.4.2.1.6. Window Menu

Main Window를 구성하는 하위 Window 들을 제어하고, 기 정의된 Layout을 설정하거나 사용자가 지정한 Layout을 저장할 수 있는 기능을 제공한다.

그림 14 Window Menu 구성 그림 14 Window Menu 구성
1.4.2.1.7. Help Menu

이트레이닝 시스템 통합개발환경에 대한 프로그램 정보, Script API Reference 및 전문가 지식 처리 기능 링크 기능을 제공한다.

그림 15 Help Menu 구성 그림 15 Help Menu 구성
1.4.2.2. Toolbar

Scene에 대한 제어를 지원하는 기능으로 Transform Tools, 기즈모 제어, 시뮬레이션 제어, Scene 가시화, IDE 구성에 대한 제어 기능을 제공한다.

1.4.2.2.1. Transform Tool

Scene 뷰 화면을 이동할 수 있는 Hand Tool, 선택한 Object의 3차원 좌표 변환 Tool, 선택한 Object를 회전시킬 수 있는 Rotate Tool, 선택한 Object의 크기를 변경할 수 있는 Scale Tool로 구성된다

그림 16 Transform 도구 구성 그림 16 Transform 도구 구성
1.4.2.2.2. 기즈모 제어

선택한 3D 모델 중심좌표 표시 방법 옵션을 설정할 수 있는 Pivot/Center 버튼, 선택한 Object의 좌표축을 Local 좌표/Global 좌표 시현을 제어할 수 있는 버튼을 제공한다.

그림 17 기즈모 제어 도구 구성 그림 17 기즈모 제어 도구 구성
1.4.2.2.3 시뮬레이션 제어

Scene 뷰 화면에서 작성된 View를 실제 Simulation View에서 실행 및 정지할 수 있는 기능을 제공한다.

그림 18 시뮬레이션 제어 도구 구성 그림 18 시뮬레이션 제어 도구 구성
1.4.2.2.4 Scene 가시화 제어

Scene View에 표시할 Object의 Layer 관리 기능을 제공한다.

그림 19 Scene 가시화 제어 도구 구성 그림 19 Scene 가시화 제어 도구 구성
1.4.2.2.5 IDE 구성 제어

모든 IDE 윈도우의 Layout 배치를 관리할 수 있는 기능을 제공한다.

그림 20 IDE 구성 제어 도구 구성 그림 20 IDE 구성 제어 도구 구성
1.4.2.3 Scene View

컨텐츠를 저작하기 위한 화면으로서 모든 오브젝트를 선택 및 배치할 수 잇는 기능을 제공하고, View Mode 및 기즈모 옵션을 설정할 수 있는 기능을 제공한다.

그림 21 Scene View 구성 그림 21 Scene View 구성
1.4.2.4 Simulation View

컨텐츠를 실행 모드 카메라에 렌더링하여 출력하는 화면으로 Aspect 모드 변경 기능 및 기즈모 On/Off 기능을 제공한다.

그림 22 Simulation View 구성 그림 22 Simulation View 구성
1.4.2.5 Hierarchy View

현재 Scene에 추가된 모든 Object를 계층 구조로 표시하여 주는 창으로 Object 간 부모-자식 관계 설정 기능을 제공한다.

그림 23 Hierarchy Window 구성 그림 23 Hierarchy Window 구성
1.4.2.6 Project View

현재 프로젝트의 모든 Resource 파일을 표시하는 창으로 Scene/Mesh/Texture/Material/Shader/Script 파일 등 프로젝트의 Assets 폴더 아래의 모든 Resource를 표시하는 기능을 제공한다.

그림 24 Project Window 구성 그림 24 Project Window 구성
1.4.2.7 Inspector View

선택된 Object의 Name, Tag, Layer와 같은 속성 편집 기능을 제공하고 Object에 컴포넌트 추가, 추가된 컴포넌트의 삭제/편집 기능을 제공한다.

그림 25 Inspector Window 구성 그림 25 Inspector Window 구성
1.4.2.8 Scenario View

비주얼 스크립팅 시스템으로 노드 기반 그래프 에디터 윈도우로서 흔히 블루프린트라고 일컬어지는 비주얼 스크립팅 노드 망을 만들고 편집하능 기능을 제공한다.

그림 26 Scenario Window 구성 그림 26 Scenario Window 구성
1.4.2.9 Console View

오류, 경고 및 ETIDE에 의해 생성된 다른 메시지를 보여주는 윈도우로서 ETETrace.Warning, ETETrace.Error, ETETrace.Log를 통해 콘솔에 자신의 메시지를 표시하는 기능을 제공한다.

그림 27 Console Window 구성 그림 27 Console Window 구성
2. 코어 엔진
2.1 시뮬레이션 엔진
2.1.1 기능

해당 엔진은 시뮬레이션 장면을 구성하고 다른 단위엔진들을 연결해주고 기능을 구동시키는 역할을 합니다.

2.1.2 특징

본 엔진의 특징은 다양한 기능을 가진 엔진/컴포넌트등을 조합하여 사용자에게 적합한 시뮬레이션 환경 구성이 가능합니다. - MVC 구조를 이용하였습니다. - 다양한 기능을 가진 subsystem, processor와 연동이 가능합니다. - 다양한 종류의 컴포넌트 조합을 통해 시뮬레이션 오브젝트의 특성을 정의할 수 있습니다.

2.1.3 주요 스펙

15 종류 이상의 컴포넌트를 관리, 검색이 가능합니다.

2.1.4 워크플로

그림 28 시뮬레이션 엔진 워크플로 그림 28 시뮬레이션 엔진 워크플로
2.1.5 사용법

시뮬레이션 오브젝트를 추가합니다. Hierarchy 뷰에서 컨텍스트 메뉴를 연 뒤 Create Empty를 클릭하면 시뮬레이션 오브젝트가 추가됩니다.

그림 29 시뮬레이션 오브젝트 추가 그림 29 시뮬레이션 오브젝트 추가

시뮬레이션 오브젝트 간에는 부모, 자식 관계 설정이 가능합니다. 자식으로 삼을 오브젝트를 드래그 하여 부모로 삼을 오브젝트 위로 옮기면 부모 자식 관계가 설정됩니다. Rename 메뉴로 시뮬레이션 오브젝트의 이름 변경이 가능합니다. Delete 메뉴로 시뮬레이션 오브젝트를 삭제 할 수 있습니다. 시뮬레이션 오브젝트의 위치를 수정합니다. 시뮬레이션 오브젝트는 Inspect 뷰에서 Transform 컴포넌트 값의 수정을 통해 3차원 좌표 및 회전각들을 수정 할 수 있습니다.

그림 30 시뮬레이션 오브젝트 Transform 컴포넌트 그림 30 시뮬레이션 오브젝트 Transform 컴포넌트

시뮬레이션 오브젝트는 복사가 가능합니다. Hierarchy 뷰의 컨텍스트 메뉴의 Copy, Paste 메뉴를 통해 시뮬레이션 오브젝트를 복 사 할 수 있습니다.

그림 31 시뮬레이션 오브젝트 Clone 기능 그림 31 시뮬레이션 오브젝트 Clone 기능

이 때 시뮬레이션 오브젝트가 소유한 컴포넌트들도 복사가 됩니다. 시뮬레이션 오브젝트에 컴포넌트를 추가합니다. 인스펙터 하단의 Add Component 버튼을 통해 시뮬레이션 오브젝트에 컴포넌트를 추가 할 수 있습니다.

그림 32 시뮬레이션 오브젝트 컴포넌트 추가 그림 32 시뮬레이션 오브젝트 컴포넌트 추가

컴포넌트는 종류별로 분류되어 있습니다.

2.2 오디오 엔진
2.2.1 기능

오디오 엔진은 ETIDE(이트레이닝 공통플랫폼 코어 엔진)에서 오디오 관련 기능을 구현하기 위한 엔진입니다. 사용자는 오디오 엔진의 컴포넌트를 이용하여 간편하게 오디오 기능을 구현 할 수 있습니다.

2.2.2 특징

본 엔진의 특징은 3차원 음향 효과를 낼 수 있는 필터를 제공하는 것입니다. 이를 위해 다음과 같은 기능을 제공합니다. - 오디오 소스-리스너의 위치를 고려한 음향 효과 제공 - 다양한 음향효과 필터 지원

2.2.3 주요 스펙

- 5종 필터 지원: High-pass, low-pass, echo, flange, distortion filter

2.2.4 워크플로
그림 33 오디오엔진 워크플로 그림 33 오디오엔진 워크플로
2.2.5 사용법

기본적인 소리 재생 및 음량 조절 샘플 가이드 - 컴포넌트 추가 Hierarchy 패널에서 가청 컴포넌트를 추가 할 객체를 선택

그림 34 시뮬레이션 오브젝트 선택 그림 34 오디오엔진 워크플로

- Add Component/Audio/AudioListener 선택

그림 35-1 그림 35 컴포넌트 추가 그림 35 컴포넌트 추가

- ‘가’~‘다’와 같은 방법으로 다른 객체를 생성한 뒤, AudioSource 컴포넌트도 추가

그림 36 Audio Source 컴포넌트 추가 그림 36 Audio Source 컴포넌트 추가

- 오디오 파일 경로 설정 AudioSource 컴포넌트의 path 변수에 재생할 오디오 파일 경로를 입력

그림 37 Audio Path 설정 그림 37 Audio Path 설정

- 시뮬레이션 재생 ETIDE 상단의 재생 버튼 선택

그림 38 시뮬레이션 재생 그림 38 시뮬레이션 재생

- 오디오 엔진 API 사용
Project 패널에서 마우스 우클릭으로 사용자 스크립트 생성

그림 39 사용자 스크립트 생성 그림 39 사용자 스크립트 생성

생성한 사용자 스크립트를 AudioSource 컴포넌트가 포함되어 있는 오브젝트에 추가

그림 40 사용자 스크립트 추가 그림 40 사용자 스크립트 추가

사용자 스크립트 편집 (오디오의 볼륨 값을 1로 변경)

그림 41 사용자 스크립트 편집 그림 41 사용자 스크립트 편집
2.3 행위 제어 엔진
2.3.1 기능

행위 제어 엔진은 ETIDE(이트레이닝 공통플랫폼 코어 엔진)에서 캐릭터 애니메이션 생성 기능을 구현하기 위한 엔진입니다. 사용자는 행위 제어 엔진의 컴포넌트를 이용하여 간편하게 애니메이션 생성 기능을 구현 할 수 있습니다.

2.3.2 특징

본 엔진의 특징은 모션 캡처 데이터를 이용하여 사실적인 캐릭터 애니메이션을 제공하는 것입니다. 이를 위해 다음과 같은 기능을 제공합니다.
- 모션 캡처 데이터의 저차원화를 통해 적은 수의 데이터로 애니메이션 생성
- 최적 정책 생성을 통해 사용자 입력에 빠르고 정확한 반응 애니메이션 생성

2.3.3 주요 스펙

- 3초 이내 사용자 입력에 반응하는 애니메이션 생성
- 1.5m 이내 오차로 사용자 입력에 반응하는 애니메이션 생성

2.3.4 워크플로
그림 42 행위제어 엔진 워크플로 그림 42 행위제어 엔진 워크플로
2.3.5 사용법

기본적인 데이터 저차원화 및 애니메이션 생성 샘플 가이드

- 데이터 저차원화
Hierarchy 패널에서 행위 제어 컴포넌트를 추가 할 객체를 선택

그림 43 시뮬레이션 오브젝트 선택 그림 43 시뮬레이션 오브젝트 선택

저차원수, 학습 반복 횟수를 입력
저차원화 실행 버튼으로 저차원화 실행

- 애니메이션 생성
Hierarchy 패널에서 행위 제어 컴포넌트를 추가 할 객체를 선택


필요한 데이터를 읽을 스크립트 경로를 입력
애니메이션 실행 후 사용자 입력(키보드, 마우스)로 캐릭터 제어

2.4 특수효과 파티클 엔진
2.4.1 기능

특수효과 파티클 엔진은 ETIDE(이트레이닝 공통플랫폼 코어 엔진)에서를 위한 파티클 특수효과 기능을 제공하는 엔진입니다. 폭발, 불꽃, 연기등의 효과를 사용자가 손쉽게 설정하여 표현할 수 있습니다.

2.4.2 특징

본 엔진의 특징은 사용자가 손쉽게 파티클을 씬에 생성하여 각종 이펙트들을 만들 수 있게 할 수 있으며, 속도/색/방향 등 여러 가지 설정 값을 통하여 다양한 효과들을 표현할 수 있습니다. 주요 기능은 다음과 같습니다.

- 파티클 생성 기능
- 파티클 렌더링 기능
- 파티클 애니메이션 기능
- 파티클 피직스 기능

2.4.3 주요 스펙

- 한 개의 씬에서 200개 이상의 파티클을 렌더링

2.4.4 워크플로
그림 44 특수효과 파티클 엔진 워크플로 그림 44 특수효과 파티클 엔진 워크플로
2.4.5 사용법
2.4.5.1 컴포넌트 추가 방법 설명

컴포넌트를 추가할 빈 시뮬레이션 객체를 추가하거나, 현재 있는 객체를 선택한다.

그림 45 시뮬레이션 오브젝트 선택 그림 45 시뮬레이션 오브젝트 선택

Inspact 창의 Add Component를 툴러서 나오는 메뉴에서, Effects->Particle System을 클릭하여 Particle Component를 추가하여 준다.

그림 47 Particle 컴포넌트 추가 그림 47 Particle 컴포넌트 추가 그림 47 Particle 컴포넌트 추가
2.4.5.2 컴포넌트 사용법 설명
2.4.5.2.1 파티클 효과 제작 방법

Inspact 창의 각종 파라메터를 조절하여 원하는 효과를 제작 가능 본 방법 설명에서는 간단한 폭파 효과에 대하여 제작법을 설명하겠습니다.
아래 그림과 같이 인스펙터 창을 선택하고서 다음 페이지의 내용에 맞추어서 값을 조절합니다.

그림 48 Particle 컴포넌트 인스펙터창 그림 48 Particle 컴포넌트 인스펙터창

- 파티클 폭발 효과 제작
Particle Component의 생성 값을 조절
Size Grow를 클릭 후 3을 입력.
Random Force X, Y, Z를 차례대로 클릭하여 -50을 입력.
MinSize를 클릭하여 1을 입력.
MaxSize를 클릭하여 5를 입력.
MinEmission을 클릭하여 100을 입력.
MaxEmission을 클릭하여 200을 입력.
RandomVelocity X, Y, Z를 차례대로 클릭하여 10을 입력.
AngularVelocity를 클릭하여 120을 입력.
RandomAngularVelocity를 클릭하여 -60을 입력.
RandomRotation을 체크.
Radius를 클릭하여 1을 입력.
IsOnShot을 체크.

그림 49 Particle 컴포넌트 수정 그림 49 Particle 컴포넌트 수정

인스펙터 창의 ResourcePath 제일 오른쪽 버튼을 클릭하여 나오는 리소스 선택창에서 "flameD.png"를 선택하여 더블클릭한다.
* 텍스쳐 리소스는 “생성 된 Project 폴더/Assets/Permitive/Particle” 폴더에 저장 되어 있으며, 필요시 추가하여 사용가능(PNG 이미지 파일)

그림 50 Particle 텍스쳐 리소스 선택 화면 호출 그림 50 Particle 텍스쳐 리소스 선택 화면 호출
그림 51 Particle 텍스쳐 리소스 선택 및 적용 그림 51 Particle 텍스쳐 리소스 선택 및 적용

저작도구 화면에서 파티클이 폭발하듯이 생성되었다가 사라짐을 확인한다.

그림 52 Particle 컴포넌트 기능 확인 그림 52 Particle 컴포넌트 기능 확인

실행모드를 클릭하면 파티클이 실행모드에서 저작모드와 동일한 효과가 렌더링 됨을 확인한다.

그림 53 Particle 컴포넌트 재생 확인 그림 53 Particle 컴포넌트 재생 확인
2.4.5.2 파티클 프리셋 사용 설명

Inspact 창 PresetType을 통해서 미리 설정 된 효과 값을 반영하는 것이 가능하며 사용방법을 설명하겠습니다.

그림 54 Particle Preset 위치 그림 54 Particle Preset 위치

PresetType은 총 4가지의 타입이 제공 되며, 각 타입은 아래와 같습니다.

- INIT : 파티클 생성시 초기 값
- PRESET_SNOW : 눈/내리는 먼지 등
- PRESET_SMOKE : 연기/먼지바람 등
- PRESET_BOME : 폭발/불꽃 등

그림 55 Particle Preset 종류 그림 55 Particle Preset 종류

Particle Preset은 사용하고자 하는 프리셋을 선택 후 효과가 바로 반영 되며, 사용자 필요에 따라서 ResourcePath를 이용하여 텍스쳐를 변경하여 원하는 효과를 바로 적용이 가능하도록 제공하는 기능입니다.

그림 56 PRESET_SNOW 효과 및 텍스쳐 변경시 예시 화면 그림 56 PRESET_SNOW 효과 및 텍스쳐 변경시 예시 화면
그림 57 PRESET_SMOKE 효과 및 텍스쳐 변경시 예시 화면 그림 57 PRESET_SMOKE 효과 및 텍스쳐 변경시 예시 화면
그림 58 PRESET_BOME 효과 및 텍스쳐 변경시 예시 화면 그림 58 PRESET_BOME 효과 및 텍스쳐 변경시 예시 화면
2.4.5.3 파티클 충돌 기능 사용 방법

타 오브젝트의 Collider와 충돌을 설정하는 방법에 대하여 설명하겠습니다.

파티클 오브젝트 기본 생성을 해둡니다. 함께 충돌을 할 타 오브젝트(Cube 오브젝트)를 같이 생성하여 줍니다.

그림 59 파티클 및 Cube 오브젝트 생성 그림 59 파티클 및 Cube 오브젝트 생성

생성 된 Cube 오브젝트의 Inspect 창에서 Add를 눌러, Physics->Box Collider를 컴포넌트에 추가한 후 size 값을 0.1로 넣어준다.

그림 60 Cube의 BoxCollider 설정 그림 60 Cube의 BoxCollider 설정

파티클 컴포넌트의 RandomForce의 X, Z 값에 30을 입력하고, Force의 Y 값에 5를 넣어서 파티클이 위로 넓게 퍼지는 모습으로 변하는 것을 확인한다.

그림 61

파티클 컴포넌트 Inspect창 제일 아래에 있는 Enable Collider를 체크하면 파티클이 Cube에 부딫혀서 일부가 멈추는 현상을 확인 할 수 있다.

그림 62 Particle 충돌 효과 Enable 그림 62 Particle 충돌 효과 Enable
그림 63 Particle 충돌효과 예시 그림 63 Particle 충돌효과 예시
2.5 체감형장치 IO엔진
2.5.1 기능

체감형장치 IO엔진은 ETIDE(이트레이닝 공통플랫폼 코어 엔진)에서 기본 입력장치 및 체감형 입력장치의 기능을 제어하기 위한 엔진입니다. 사용자는 체감형장치 IO엔진의 컴포넌트를 이용하여 간편하게 입력장치들의 기능을 제어 할 수 있습니다.

2.5.2 특징

본 엔진의 특징은 다양한 체감형 장치들을 별도의 연동작업 없이 컴포넌트 추가만으로 간편하게 제어할 수 있는 것입니다.

- SteeringWheel Contoller(Logitech SteeringWheel G27) 제어
- HMD(Oculus-Rift, Vive, VR Controller) 제어
- Motion Seat 제어 – Serial communition 이용
- Leap Motion 제어
- Kinect 제어
- Vive Tracker 제어

2.5.3 주요 스펙

- 기본 입력장치 3종 (키보드, 마우스, 조이스틱) 제어 기능 제공
- 체감형 입력장치 6종 (휠 컨트롤러, Leap Motion, Kinect, Vive Tracker, HMD, Serial 통신) 제어 기능 제공

2.5.4 워크플로
그림 64
2.5.5 사용법

- 엔진 컴포넌트 삽입 방법
Hierarchy 패널에서 체감형장치 컴포넌트를 추가 할 객체를 선택

그림 65 시뮬레이션 오브젝트 선택 그림 65 시뮬레이션 오브젝트 선택

해당 객체의 Inspector창에서 Add Component 버튼 선택

그림 66 Add Component 선택 그림 66 Add Component 선택

하위 메뉴의 Miscellaneous를 선택한 후, 원하는 디바이스 컴포넌트 추가

그림 67 컴포넌트 추가 그림 67 컴포넌트 추가

해당 객체에 선택한 디바이스의 컴포넌트가 추가된 것을 확인 할 수 있다.

그림 68 컴포넌트 추가 확인 그림 68 컴포넌트 추가 확인
2.5.5.1 컴포넌트 설명
2.5.5.1.1 키보드 컴포넌트

- 시뮬레이션 모드에서 키보드 이벤트를 얻어오기 위한 컴포넌트
- 키보드 연결 상태, 눌려진 키 등을 알 수 있다.

그림 69 키보드 컴포넌트 그림 69 키보드 컴포넌트

● 사용법
- 키보드를 연결함.
- 키보드 컴포넌트를 추가함.
- UserBehavior 스크립트를 추가함.

그림 70 키보드 컴포넌트 사용법 그림 70 키보드 컴포넌트 사용법
2.5.5.1.2 마우스 컴포넌트

- 시뮬레이션 모드에서 마우스 이벤트를 얻어오기 위한 컴포넌트
- 마우스 연결 상태, 마우스 커서의 위치, 눌려진 버튼 등을 알 수 있다.

그림 71 마우스 컴포넌트 그림 71 마우스 컴포넌트

● 사용법
- 마우스를 연결함.
- 마우스 컴포넌트를 추가함.
- UserBehavior 스크립트를 추가함.

그림 72 마우스 컴포넌트 사용법 그림 72 마우스 컴포넌트 사용법
2.5.5.1.3 조이스틱 컴포넌트

- 시뮬레이션 모드에서 조이스틱 이벤트를 얻어오기 위한 컴포넌트
- 3축의 움직임, Pov, Slider, 눌려진 버튼 등을 알 수 있다.

그림 73 조이스틱 컴포넌트 그림 73 조이스틱 컴포넌트

● 사용법
- 조이스틱을 연결함.
- 조이스틱 컴포넌트를 추가함.
- UserBehavior 스크립트를 추가함.

그림 74 조이스틱 컴포넌트 사용법 그림 74 조이스틱 컴포넌트 사용법
2.5.5.1.4 휠 컴포넌트

- 시뮬레이션 모드에서 휠 컨트롤러의 이벤트를 얻어오고 제어하기 위한 컴포넌트
- 핸들 회전량, 브레이크, 엑셀, 클러치 값과 눌려진 버튼 등을 알 수 있다.

그림 75 휠 컴포넌트 그림 75 휠 컴포넌트

● 사용법
- Logitech SteeringWheel G27을 연결함.
- 휠 컴포넌트를 추가함.
- 스크립트를 추가함.

그림 76 휠 컴포넌트 사용법 그림 76 휠 컴포넌트 사용법
2.5.5.1.5 시리얼 컴포넌트

- 시리얼 포트의 셋팅을 하고, 열고 닫을 수 있다.
- 시리얼 통신을 이용하여 메시지를 보낼 수 있다.
- 시리얼 통신을 이용하여 메시지를 받을 수 있다.

그림 77 시리얼 컴포넌트 그림 77 시리얼 컴포넌트

● 사용법
- 시리얼 포트로 device/pc 와 pc를 연결함.
- 시리얼 컴포넌트를 추가함.
- 스크립트를 추가함.

그림 78 시리얼 컴포넌트 사용법 그림 78 시리얼 컴포넌트 사용법
2.5.5.1.6 HMD 컴포넌트

- 양안 렌즈 각각의 위치와 회전을 알 수 있다.
- HMD와 연동되는 VR컨트롤러의 위치와 회전값을 알 수 있다.
- HMD와 연동되는 트래커의 위치와 회전값을 알 수 있다.

그림 79 HMD 컴포넌트 그림 79 HMD 컴포넌트
그림 80 HMD 컴포넌트의 컨트롤러와 트래커 속성 그림 80 HMD 컴포넌트의 컨트롤러와 트래커 속성

● 사용법
- Oculus-Rift 혹은 HTC Vive를 연결함.
- SteamVR 런타임 설치(Oculus-Rift의 경우 Oculus 런타임 설치)
- HMD 컴포넌트를 추가함.
- UserBehavior 스크립트를 추가함.

그림 81 HMD 컴포넌트 사용법 그림 81 HMD 컴포넌트 사용법
그림 82 HMD 트래커 사용법 그림 82 HMD 트래커 사용법
2.5.5.1.7 립 모션 컴포넌트

- 립 모션의 장치 상태를 가져올 수 있다.
- 립 모션 장치로부터 손의 개수를 얻어온다.
- 립 모션 장치로부터 손 뼈들의 위치를 얻어온다.
- 립 모션 장치로부터 손 뼈들의 회전값을 얻어온다.

그림 83 립 모션 컴포넌트 그림 83 립 모션 컴포넌트

● 사용법
- 립 모션을 연결함
- Leap SDK 설치
- 립 모션 컴포넌트를 추가함.
- 스크립트를 추가함.

그림 84 립 모션 컴포넌트 사용법 그림 84 립 모션 컴포넌트 사용법
2.5.5.1.8 키넥트 컴포넌트

- 키넥트 장치 상태를 가져올 수 있다.
- 키넥트 장치로부터 인식된 신체의 숫자를 가져온다.
- 키넥트 장치로부터 인식된 신체의 구성 위치를 받아온다.

그림 85 키넥트 컴포넌트 그림 85 키넥트 컴포넌트

● 사용법
- 키넥트 장치를 연결함.
- 키넥트 런타임을 설치함.
- 키넥트 컴포넌트를 추가함.
- 스크립트를 추가함.

그림 86 키넥트 컴포넌트 사용법 그림 86 키넥트 컴포넌트 사용법
2.6 상황제어 UI/UX 엔진
2.6.1 기능

상황제어 UI/UX 엔진은 ETIDE(이트레이닝 공통플랫폼 코어 엔진)에서 UI/UX 관련 기능을 구현하기 위한 엔진입니다. 사용자는 상황제어 UI/UX 엔진의 컴포넌트를 이용하여 간편하게 UI/UX 기능을 구현 할 수 있습니다.

2.6.2 특징

본 엔진의 특징은 Text, Image, PushButton, CheckBox 등 UI/UX 컴포넌트를 제공하는 것입니다. 주요 기능은 다음과 같습니다.

- Text 기능
- Image 기능
- PushButton 기능
- CheckBox 기능
- RadioButton 기능
- Slider 기능
- ScrollBar 기능
- EditBox 기능
- Spinner 기능

2.6.3 주요 스펙

상황제어 UI/UX 엔진 정확도 95% 만족

2.6.4 워크플로
그림 87 상황제어 UI/UX 엔진 워크플로 그림 87 상황제어 UI/UX 엔진 워크플로
2.6.5 사용법능

- 엔진 컴포넌트 삽입 방법
Hierarchy 패널에서 UI/UX 컴포넌트를 추가할 객체 선택

그림 88 시뮬레이션 오브젝트 선택 그림 88 시뮬레이션 오브젝트 선택

키보드 및 마우스 이벤트 처리를 위하여 IO 엔진을 먼저 추가

그림 89 키보드, 마우스 컴포넌트 추가 그림 89 키보드, 마우스 컴포넌트 추가

상황제어 UI/UX 엔진의 GUI Input 컴포넌트 추가

그림 90 GUI Input 컴포넌트 추가 그림 90 GUI Input 컴포넌트 추가

PushButton 컴포넌트 추가

그림 91 Push Button 컴포넌트 추가 그림 91 Push Button 컴포넌트 추가

ETIDE 상단의 재생 버튼 선택

그림 92 시뮬레이션 재생 그림 92 시뮬레이션 재생

- 상황제어 UI/UX 엔진 API 사용
[Asset] 메뉴 마우스 오른쪽 클릭하여 나오는 Context 메뉴를 그림과 같이 선택

그림 93 스크립트 생성 그림 93 스크립트 생성

Script의 이름을 지정하고 [OK] 버튼 클릭

그림 94 스크립트명 설정 그림 94 스크립트명 설정

생성된 Script 파일을 더블클릭하여 다음과 같이 소스 수정 후 저장

그림 95 스크립트 수정 그림 95 스크립트 수정

수정된 Script 파일을 객체에 추가 후 1)가)5)의 실행 버튼 클릭

그림 96 스크립트 연결 그림 96 스크립트 연결
2.7 항공용 가시화 엔진
2.7.1 기능

항공용 가시화 엔진은 ETIDE(이트레이닝 공통플랫폼 코어 엔진)에서 항공 관련 비행 시뮬레이션 기능 및 대용량 지형을 처리하기 위한 엔진입니다. 사용자는 항공용 가시화 엔진의 컴포넌트를 이용하여 간편하게 비행 시뮬레이션 기능을 구현 할 수 있습니다.

2.7.2 특징

본 엔진의 특징은 대용량 지형 데이터를 효과적으로 처리하여 비행 시뮬레이션 환경을 구성 하는 것입니다. 이를 위해 아래와 같은 기능을 제공 합니다.

= 고도 정보맵(Height Map) 로드 기능
= 텍스쳐 로드 기능
= 고도 정보와 텍스쳐를 사용하여 영상기반 지형 생성 기능
= DISTANCE-FROM-EYEPOINT 에따른 Dynamic LOD 로드 기능
= 지형 데이터 페이징 기능
= 텍스쳐 밉맵 기능
= 지형의 Polygon에 구멍을 뚫는 Terrain Hole 기능

2.7.3 주요 스펙

= 6종 포멧 지원: *.flt, *.tiff, *.bmp, *.png, *.jpeg, *.gif
= 60fps 프레임 재생 빈도

2.7.4 워크플로
그림 97 항공용 가시화 엔진 워크플로 그림 97 항공용 가시화 엔진 워크플로
2.7.5 사용법

= 비행 시뮬레이션 환경 구성 방법
Hierarchy 패널에서 Create Empty 생성 -> 생성된 Simulation Object 선택

그림 98 시뮬레이션 오브젝트 선택 그림 98 시뮬레이션 오브젝트 선택

Inspect 패널에서 AddComponent - FlightMap Component 선택

그림 99 Flight Map 컴포넌트 추가 그림 99 Flight Map 컴포넌트 추가

FlightMap Component의 WORLD 프로퍼티에 로드할 map(*.earth) 경로 설정
* 별도의 고도맵을 사용 할시 HEIGHTFIELD 프로퍼티에 경로 설정
* 별도의 TEXTURE를 사용 할 경우 TEXTURE 프로퍼티에 경로 설정
* 별도의 FEATURE 모델을 사용 할 경우 FEATURE 프로퍼티에 경로 설정

그림 100 Flight Map 컴포넌트 속성 설정 그림 100 Flight Map 컴포넌트 속성 설정

아래와 같이 WORLD 모델이 로드 된 것을 확인

그림 101 Map 생성 확인 그림 101 Map 생성 확인

Hierarchy 패널에서 Create Empty 생성 -> 생성된 Simulation Object 선택

그림 102 시뮬레이션 오브젝트 선택 그림 102 시뮬레이션 오브젝트 선택

Inspect 패널에서 AddComponent - Flight Camera Component 선택

그림 103 Flight Camera 컴포넌트 추가 그림 103 Flight Camera 컴포넌트 추가

Flight Camera Component의 LOCATION 프로퍼티의 Lon, Lat, Alt 값을 입력하여 원하는 지역으로 이동.

그림 104 Flight Camera 컴포넌트 수정 그림 104 Flight Camera 컴포넌트 수정

Hierarchy 패널에서 Create Empty 생성 -> 생성된 Simulation Object 선택

그림 105 시뮬레이션 오브젝트 선택 그림 105 시뮬레이션 오브젝트 선택

Inspect 패널에서 AddComponent - Flight Model Component 선택

그림 106 Flight Model 컴포넌트 추가 그림 106 Flight Model 컴포넌트 추가

Flight Model Component의 프로퍼티에 모델의 정보 입력
* PATH 프로퍼티에 로드할 모델의 경로 입력(필수)
* NAME 프로퍼티에 로드할 모델의 이름 입력
* LOCATION 프로퍼티에 로드할 모델의 위치 입력
* DESTINATION 프로퍼티에 모델의 목적지 위치 입력
* ATITUDE 프로퍼티에 모델의 자세 입력
* SCALE 에 모델의 크기 입력
* MODE(STATIC, CIRCLE, FLIGHT) 선택
* VIEWPOINT(DEFAULT, FRONT, BACK, RIGHT, LEFT, UP, DOWN, NONE) 선택

그림 107 Flight Model 컴포넌트 수정 그림 107 Flight Model 컴포넌트 수정

아래와 같이 동적 모델이 로드 된 것을 확인

그림 108 동적 모델 생성 확인 그림 108 동적 모델 생성 확인

ETIDE 상단의 재생 버튼 선택

그림 109 시뮬레이션 재생 그림 109 시뮬레이션 재생
2.8 HLA/RTI 기반 네트워크 엔진
2.8.1 기능

HLA/RTI 기반 네트워크 엔진은 ETIDE(이트레이닝 공통플랫폼 코어 엔진)에서 HLA/RTI 네트워크 관련 기능을 구현하기 위한 엔진입니다. 사용자는 HLA/RTI 기반 네트워크 엔진의 컴포넌트를 이용하여 간편하게 HLA/RTI 네트워크 기능을 구현 할 수 있습니다.

2.8.2 특징

본 엔진의 특징은 HLA/RTI 표준기반 미들웨어 및 웹 인터페이스를 연동 및 제어할 수 있도록 제공하는 것입니다. 이를 위해 다음과 같은 기능을 제공합니다.

- HLA/RTI 미들웨어 연동을 통한 웹 인터페이스 기반 공동훈련 공간 생성, 가입, 동기화, 훈련 시작, 탈퇴, 데이터 모니터링 기능 제공
- 공동 훈련공간에 가입한 시뮬레이터들 간의 HLA/RTI 미들웨어 연동을 통한 데이터 송수신 기능 제공

2.8.3 주요 스펙

- 웹 인터페이스 기반 HLA/RTI 미들웨어 제어 기능 제공
- HLA/RTI 미들웨어 연동을 통한 데이터 송수신 기능 제공

2.8.4 워크플로
그림 110 HLA/RTI 기반 네트워크 엔진 워크플로 그림 110 HLA/RTI 기반 네트워크 엔진 워크플로
2.8.5 사용법

Hierarchy 패널에서 HLA/RTI 네트워크 컴포넌트를 추가 할 객체를 선택

그림 111 시뮬레이션 오브젝트 선택 그림 111 시뮬레이션 오브젝트 선택

해당 객체의 Inspector창에서 Add Component 버튼 선택

그림 112 Add Component 선택 그림 112 Add Component 선택

하위 메뉴의 Network를 선택한 후, 원하는 HLA/RTI 컴포넌트 추가

그림 113 HLA/RTI 컴포넌트 추가 그림 113 HLA/RTI 컴포넌트 추가

해당 객체에 선택한 HLA/RTI 네트워크의 컴포넌트가 추가된 것을 확인 할 수 있다.

그림 114 컴포넌트 추가 확인 그림 114 컴포넌트 추가 확인
2.8.5.1 컴포넌트 설명
2.8.5.1.1 RTIFactory 컴포넌트

HLA/RTI 미들웨어 데몬 인스턴스를 생성하기 위한 컴포넌트

그림 115 RTI Factory 컴포넌트 그림 115 RTI Factory 컴포넌트
2.8.5.1.2 RTIDemonManager 컴포넌트

HLA/RTI 미들웨어 데몬과 톰캣 서버 실행/종료 및 웹 인터페이스 실행을 위한 컴포넌트

그림 116 RTI Demon Manager 컴포넌트 그림 116 RTI Demon Manager 컴포넌트
2.8.5.1.3 RTICommunication 컴포넌트

IDE에서 생성한 cube 오브젝트의 이동 데이터(좌표값)을 HLA/RTI 미들웨어 및 웹 인터페이스와 통신할 수 있도록 하기 위한 컴포넌트

그림 117 RTI Communication 컴포넌트 그림 117 RTI Communication 컴포넌트
2.8.5.1.4 HLA/RTI 네트워크 엔진 API 사용

Project 패널에서 마우스 우클릭으로 사용자 스크립트 생성
생성한 사용자 스크립트를 HLA/RTI Network 컴포넌트가 포함되어있는 오브젝트에 추가

그림 118 HLA/RTI 컴포넌트 추가 그림 118 HLA/RTI 컴포넌트 추가

HLA/RTI 네트워크 엔진을 사용할 스크립트 추가

그림 119 HLA/RTI 스크립트 추가 그림 119 HLA/RTI 스크립트 추가
2.9 가시화엔진
2.9.1 기능

가시화 엔진은 ETIDE(이트레이닝 공통플랫폼 코어 엔진)에서 가시화 관련 기능을 구현하기 위한 엔진입니다. 사용자는 가시화 엔진의 컴포넌트를 이용하여 간편하게 가시화 기능을 구현 할 수 있습니다.

2.9.2 특징

본 엔진의 특징은 3차원 렌더링을 위한 기능성을 제공하는 것입니다. 이를 위해 다음과 같은 기능을 제공합니다.

- 카메라의 셋팅과 오브젝트들의 위치에 따른 렌더링 제공
- Subsystem, Camera등을 이용하여 여러 View에 렌더링 제공
- 다양한 RenderAsset 제공

2.9.3 주요 스펙

- 100만 폴리곤 렌더링시 60Hz 성능 제공
- Realitme-Light Effect, Light Model, Multi Texture 기능 제공

2.9.4 워크플로
그림 120 가시화 엔진 워크플로 그림 120 가시화 엔진 워크플로
2.9.5 사용법

- 엔진 컴포넌트 삽입 방법
Hierarchy 패널 영역에서 마우스 우 클릭 후 Object, Light, Camera 메뉴를 통해 각 모델 객체, 조명 객체, 카메라 객체에 대한 컴포넌트를 생성할 수 있습니다.

또한 Create Empty 또는 기존 생성된 객체에 MeshFilter, MeshRenderer 컴포넌트를 추가하여 장면에 모델 객체를 가시화 할 수 있습니다.

그림 121-1 그림 121 모델, 조명, 카메라 컴포넌트 생성 그림 121 모델, 조명, 카메라 컴포넌트 생성
2.9.6 컴포넌트 설명

- Camera 컴포넌트
장면 구성에 가장 기본이 되는 컴포넌트로 장면의 시점에 대한 설정을 담당합니다. 기본적으로 MainCamera 객체는 항상 존재하여야 합니다.
장면을 가시화 시킬 디스플레이 장치를 카메라 컴포넌트에 설정할 수 있으며 기타 시각 정보의 설정이 가능합니다.

- MeshFilter 컴포넌트
모델 정보를 담고 있는 컴포넌트입니다. MeshFilter 컴포넌트는 독립적으로 존재할 수 없으며 장면 구성에 사용되는 Object의 하위 컴포넌트로서 적용됩니다.

- MeshRenderer 컴포넌트
모델의 재질 정보를 설정할 수 있는 컴포넌트입니다. MeshFilter와 마찬가지로 독립적으로 존재할 수 없으며 MeshFilter와 Pair로 추가되어 사용됩니다.

- Light 컴포넌트
장면의 조명관련 정보를 설정할 수 있는 컴포넌트입니다. 조명의 타입, 강도, 범위, 위치 등의 설정값을 포함합니다.

2.9.7 사용 예제

- 조명 객체 생성
Hierarchy 패널 영역에서 마우스 우클릭 후 장면에 사용할 조명 객체를 생성

그림 122 조명 컴포넌트 생성 그림 122 조명 컴포넌트 생성

생성된 조명 객체 선택 후 Inspect 패널의 각 속성을 설정

그림 123 조명 컴포넌트 속성 그림 123 조명 컴포넌트 속성

- 모델 객체 생성 및 설정 Hierarchy 패널 영역에서 마우스 우클릭 후 Create Empty 메뉴를 통해 빈 객체를 생성 생성된 객체를 선택 후 Inspect 패널에서 AddComponent 버튼을 클릭하여 MeshFilter 컴포넌트와 MeshRenderer 컴포넌트를 추가 MeshFilter 컴포넌트에 사용할 모델 메쉬를 선택, MeshRenderer 컴포넌트에 사용할 재질을 선택

그림 124 구성 장면 가시화 그림 124 구성 장면 가시화

- 조명, 객체 설정 및 유저 스크립트의 연결
객체 생성 후 Inspect 패널의 Mesh Filter 컴포넌트와 Mesh Renderer 컴포넌트에서 사용할 모델 및 재질 설정

MeshFilter 컴포넌트의 UI를 통해 모델을 Teapot 모델로 변경
Project 패널에서 적용된 재질을 선택하고, 조명식 적용이 가능한 basicLighting.sh를 셰이더에 적용

그림 125 모델 적용 재질 속성 변경 그림 125 모델 적용 재질 속성 변경

유저 스크립트 생성 및 객체 관련 동작을 스크립팅
메뉴의 Assets – Create – C# Script 선택하여 유저 스크립트를 생성
스크립트를 연결할 객체의 Inspect 패널에서 AddComponent-Script 선택하고 생성한 Script를 연결
생성한 Script를 Text Editor Tool을 이용하여 아래와 같이 편집

그림 126 모델 객체 적용 스크립트 예시 그림 126 모델 객체 적용 스크립트 예시

- 조명 객체 설정
메뉴의 Assets – Create – C# Script 선택하여 유저 스크립트를 생성 스크립트를 연결할 객체의 Inspect 패널에서 AddComponent-Script 선택하고 생성한 Script를 연결 생성한 Script를 Text Editor Tool을 이용하여 다음과 같이 편집

그림 127 조명 개체 적용 스크립트 예시 그림 127 조명 개체 적용 스크립트 예시
그림 128 그림 128
그림 128 그림 128 조명 개체 결과 그림 128 조명 개체 결과
2.10 물리엔진
2.10.1 기능

물리 엔진은 ETIDE(이트레이닝 공통플랫폼 코어 엔진)에서 물리 관련 기능을 구현하기 위한 엔진입니다. 사용자는 물리 엔진의 컴포넌트를 이용하여 간편하게 물리 기능을 구현 할 수 있습니다.

2.10.2 특징

본 엔진의 특징은 3차원 물리 효과를 낼 수 있는 기능을 제공하는 것입니다. 이를 위해 다음과 같은 기능을 제공합니다.

- Rigidbody(강체)
- Collider 3종(Box/Sphere/Mesh)
- Joint 5종(Fixed/Hinge/Character/Spring/Slider)
- Collision Event(충돌 이벤트)
- Picking(ray cast)

2.10.3 주요 스펙

- Joint 5종 지원
- Collider 3종 지원

2.10.4 워크플로
그림 129 물리 엔진 워크플로 그림 129 물리 엔진 워크플로
2.10.5 사용법

-엔진 컴포넌트 삽입 방법
좌측의 Hierachy 패널에서 오브젝트를 선택하고 우측의 Inspect 패널의 하단에 있는 AddComponent 버튼을 클릭하여 Physics를 선택하면 물리 컴포넌트를 삽입할 수 있다

그림 130 그림 130 물리엔진 컴포넌트 추가 그림 130 물리엔진 컴포넌트 추가
2.10.6 컴포넌트 설명

- Rigid Body : 어떠한 힘을 받아도 변하지 않는 단단한 물체를 의미(강체)
- Box Collider : 박스 모양의 네모난 충돌체, 각진 물체에 주로 사용
- Sphere Collider : 구 충돌체, 반지름의 정보만 있으면 영역이 설정되고, 충돌 탐지 속도가 가장 빠릅니다. 구 모양의 물체나 넓은 영역에서 발생하는 이벤트를 빠르게 감지할 때 사용
- Mesh Collider : 메시 정보를 기반으로 생성, 복잡한 메시를 사용하면 계산량이 많아짐, 물체의 모양에 섬세하게 반응하도록 할 때 사용
- Character Joint : 2개의 축을 설정해 최종적으로 3축으로 자유롭게 회전하는 물체의 움직임을 표현할 때 사용
- Fixed Joint : 단순히 하나의 물체를 물리적으로 다른 물체에 부착하는 경우에 사용, 부모 자식 관계가 없이도 두 물체는 항상 붙어서 움직임
- Hinge Joint : 특정 축을 기반으로 물리적인 움직임을 제한함
- Spring Joint : 두 물체를 스프링으로 연결해 역동적인 움직임을 표현
- Slider Joint : 두 물체의 움직임에 서로 미끄러지듯이 움직임

2.10.7 사용 예제

- HingeJoint 사용 예제
Hierachy 패널에서 cube Object 2개 추가
cube Object의 이름을 Cube1, Cube2로 변경

그림 131-1 그림 131 오브젝트 추가 그림 131 오브젝트 추가

각 Cube Object에 Rigidbody Component/Box Collider Component 추가
cube1에 HingeJoint Component 추가

그림 132 물리엔진 컴포넌트 추가 그림 132 물리엔진 컴포넌트 추가

cube1의 Rigidbody 속성중 constraint를 freezall로 변경
connectedBody를 cube2로 지정
cube1의 HingeJoint 속성중 anchor y=-1.5/connect anchor y=1.5 설정

그림 133 물리엔진 컴포넌트 속성 변경 그림 133 물리엔진 컴포넌트 속성 변경

재생

그림 134 시뮬레이션 재생 그림 134 시뮬레이션 재생

- Mesh Collider 사용 예제
import new asset을 클릭하여 teapot.gtm 파일을 가져온다.

그림 135-1 그림 135-2 그림 135 Asset 삽입

Teapot을 클릭하여 Hierachy 패널로 Drag 하여 객체를 생성한다.
각 객체마다 name을 다르게 설정한다.
바닥체로 사용할 Cube Object를 추가한다.

그림 136 GTM 모델 추가 그림 136 GTM 모델 추가

test를 위해 각 객체들의 transform의 position 값을 설정한다.

그림 137 그림 137 그림 137 그림 137 컴포넌트 속성 변경

바닥체로 쓸 cube object에 Rigidbody/Boxcollider 컴포넌트를 추가하고 Rigidbody의 constraint 속성을 freezeall로 변경한다.

그림 138 Rigidbody 속성 변경 그림 138 Rigidbody 속성 변경

script폴더를 하나 만들고 C# Behavior 파일 생성

그림 139 물리엔진 스크립트 생성 그림 139 물리엔진 스크립트 생성

다음 소스 코드 입력

그림 139 소스코드

각 teapot object에 Behavior script 추가

그림 140 물리엔진 스크립트 연결 그림 140 물리엔진 스크립트 연결

재생

그림 141-1 그림 141-2
그림 141-3 그림 141 물리엔진 시뮬레이션 재생
2.11 훈련환경 연동엔진
2.11.1 기능

훈련환경 연동엔진은 아비모 모델러에서 모델링한 실내외 모델을 ETIDE(이트레이닝 공통플랫폼 코어 엔진)에서 연동이 가능한 파일 형태로 Export할 수 있는 엔진입니다.

2.11.2 특징

본 엔진의 특징은 아비모 모델러에서 실내외 모델을 편리하게 할 수 있는 UI를 제공하며 공통 파일 포맷으로 출력이 가능합니다, 이를 위하여 다음과 같은 기능을 제공합니다.

- 수치지형을 DWG 파일을 이용한 Import 기능 제공
- 지형 델로이 삼각망 알고리즘과 Mass Solid 알고리즘을 통한 지형 지오메트리 생성
- Mass Parametric 모델링 기능을 통한 건물모형 생성
- COLLADA 3D 파일 Import 로 통한 라이브러리 모델 생성
- 라이브러리를 전체 훈련환경에 배치하는 UI 제공
- 생성된 모델을 공통파일 형태로 Export 하는 기능 제공

2.11.3 주요 스펙

- Import 지원 : DWG, DAE(COLLADA)
- Export 지원 : GTM, OBJ, FBX

2.11.4 워크플로
그림 142 GTM Export IDEF 그림 142GTM Export IDEF
2.11.5 사용법

- 지형 생성 방법
ABIMO 화면에서 [Achitecture] > [Site] 버튼 클릭

그림 143 훈련환경 연동엔진 지형 생성 그림 143 훈련환경 연동엔진 지형 생성

[Create Building Site] 대화상자에서 [불러오기] 버튼 클릭

그림 144 파일 불러오기 그림 144 파일 불러오기

DWG 파일 또는 DXF 파일 선택

그림 145 파일 형식 선택 그림 145 파일 형식 선택

[Layer] 확인 및 [생성] 버튼 클릭

그림 146 데이터 생성 그림 146 데이터 생성

생성된 지형 확인

그림 147 생성 지형 확인 그림 147 생성 지형 확인

- GTM file export 방법
ABIMO 화면에서 [Home] 버튼 클릭

그림 148 GTM file 추출 방법 그림 148 GTM file 추출 방법

[Home] 화면에서 [Export] 메뉴 클릭

그림 149 GTM 파일 추출 메뉴 그림 149 GTM 파일 추출 메뉴

[Export] 메뉴에서 [GTM] 선택 후 [Export] 버튼 클릭

그림 150 GTM 파일 추출 그림 150 GTM 파일 추출

파일명 입력 후 [저장] 버튼 클릭

그림 151 GTM 파일 저장 그림 151 GTM 파일 저장

- OBJ file export 방법
ABIMO 화면에서 [Home] 버튼 클릭

그림 152 OBJ 파일 추출 방법 그림 152 OBJ 파일 추출 방법

[Home] 화면에서 [Export] 메뉴 클릭

그림 153 OBJ 파일 추출 메뉴 그림 153 OBJ 파일 추출 메뉴

[Export] 메뉴에서 [OBJ] 선택 후 [Export] 버튼 클릭

그림 154 OBJ 파일 추출 그림 154 OBJ 파일 추출

파일명 입력 후 [저장] 버튼 클릭

그림 155 OBJ 파일 저장 그림 155 OBJ 파일 저장

- 터널 생성 방법
ABIMO 화면에서 [E-Trainging] > [Tunnel] 버튼 클릭

그림 156 터널 생성하기 그림 156 터널 생성하기

[라이브러리 매니저] 대화상자에서 [불러오기] 버튼 클릭

그림 157 터널 라이브러리 불러오기 그림 157 터널 라이브러리 불러오기

터널 라이브러리 파일 선택

그림 158 터널 라이브러리 선택 그림 158 터널 라이브러리 선택

[닫기] 버튼 클릭

그림 159 라이브러리 매니저 종료 그림 159 라이브러리 매니저 종료

터널을 그린 후 [생성] 버튼 클릭

그림 160 터널 그리기 그림 160 터널 그리기

생성된 터널 확인

그림 161 터널 생성 확인 그림 161 터널 생성 확인

- 라이브러리의 터파기 배치 방법
ABIMO 화면에서 [E-Trainging] > [Object] 버튼 클릭

그림 162 라이브러리 터파기 배치 그림 162 라이브러리 터파기 배치

[라이브러리 매니저] 대화상자에서 [불러오기] 버튼 클릭

그림 163

건물 라이브러리 파일 선택

그림 164

[닫기] 버튼 클릭

그림 165

[객체위에 표현], [지형과 터파기 연산] 체크

그림 167

배치된 건물 확인

그림 167

- COLLADA 파일 import 방법
ABIMO 화면에서 [Manage] > [Collada Import] 버튼 클릭

그림 168 Collda 파일 불러오기 그림 168 Collda 파일 불러오기

Collada 파일 선택 후 [열기] 버튼 클릭

그림 169 Collada 파일 열기 그림 169 Collada 파일 열기

생성된 객체 확인

그림 170 객체 생성 그림 170 객체 생성
3. 저작가이드
3.1 컨텐츠 저작 가이드



4. 부록
Back to Top