Unity Industry HMI Template 소개
요약
본 기사는 Unity를 활용하여 제작된 산업용 HMI 템플릿을 소개합니다. 이 템플릿은 디지털 계기판, 상호작용 가능한 3D 차량 모델, ADAS 시각화 등 현대적인 자동차 인터페이스의 핵심 요소를 통합한 작동하는 프로젝트입니다. 모듈식 구조를 통해 다양한 시스템 데이터를 처리하고 복잡한 HMI 경험을 구축하기 위한 시작점을 제공합니다.
핵심 포인트
- Unity 기반으로 제작된 산업용 HMI 템플릿이 제공됩니다.
- 계기판, 3D 바디 컨트롤, ADAS, HVAC 등 모듈식 구조로 구성되어 있습니다.
- 실시간 원격 측정(telemetry) 기능을 통해 실제 데이터 연결 없이도 테스트가 가능합니다.
- HMI 개발은 단순 UI를 넘어 복잡한 시스템 통합 및 성능 요구사항을 포함합니다.
영상: Unity를 사용하여 제작된 완전한 자동차 인간-기계 인터페이스(HMI)를 보고 계십니다. 여기에는 디지털 계기판 클러스터, 상호작용이 가능한 3D 차량 모델, 공조 제어 장치, 실시간 교통 시뮬레이션 기반의 ADAS(첨단 운전자 지원 시스템) 시각화 기능, 그리고 인터페이스와 3D 콘텐츠를 모두 업데이트하는 테마 시스템이 포함되어 있습니다. 이 모든 것이 Raspberry Pi 파일에서 실행됩니다. 이것은 매우 중요한데, 단순히 시각적 컨셉이나 대시보드 목업 모음이 아니기 때문입니다. 이것은 Industry HMI template이며, 현대적인 HMI 경험을 구축하고 평가하기 위한 시작점을 제공하도록 설계된 작동하는 Unity 프로젝트입니다. 이 영상에서는 무엇이 포함되어 있는지, 주요 시스템들이 어떻게 함께 작동하는지, 그리고 프로젝트가 어떻게 구조화되어 있는지 보여드리고, 그 구조가 사용자가 자신의 HMI에 맞게 조정할 수 있는 기반을 어떻게 제공하는지 설명해 드리겠습니다. HMI는 Human Machine Interface의 약자입니다. 차량에서 HMI는 차량 내부 사람과 이를 작동시키는 시스템 사이의 인터페이스를 의미합니다. 여기에는 계기판 클러스터나 공조 제어 장치와 같은 명백한 것들이 포함됩니다. 하지만 현대적인 차량 인터페이스는 배터리 및 전력 정보, 차량 상태, 운전자 보조 정보, 미디어, 환경 인식 등 훨씬 더 많은 것을 전달할 수도 있습니다. 따라서 HMI를 개발하는 것은 단순히 UI 디자인 문제가 아닙니다. 다양한 시스템에서 데이터가 들어오고, 표현 및 상호작용 요구 사항, 잠재적으로 복잡한 3D 콘텐츠, 그리고 엄격한 성능 요구 사항이 존재합니다. 궁극적으로 이 모든 것이 목표 하드웨어에서 안정적으로 실행되어야 합니다. Industry HMI template은 이러한 관심사들을 단일 Unity 프로젝트로 통합했습니다. 템플릿을 실행하면 주요 탐색 및 상태 정보를 포함하는 지속적인 애플리케이션 셸(application shell)이 제시됩니다. 여기서 우리는 네 가지 주요 경험을 탐색할 수 있습니다. 계기판 클러스터가 있고, 차량의 상호작용 가능한 3D 뷰를 제공하는 바디 컨트롤이 있습니다.
ADAS 경험은 시뮬레이션된 주행 환경에 센서 및 인식(perception) 시각화가 결합됩니다. 그리고 HVAC는 인터랙티브한 기후 제어와 3D 공기 흐름 시각화를 갖추고 있습니다. 이 모든 것들은 공통 HMI 프레임워크 내의 모듈들로 구성되어 있습니다. 메인 애플리케이션은 활성화된 상태를 유지하며, 이러한 개별 경험들이 필요에 따라 로드됩니다. 이러한 모듈식 구조는 나중에 Unity 프로젝트 내부를 들여다볼 때 중요해질 것입니다. 우리는 계기판(instrument cluster)부터 시작하겠습니다. 이 클러스터는 운전자가 빠르게 해석해야 하는 일종의 한눈에 파악 가능한 정보(glanceable information)를 보여줍니다. 게이지와 디지털 판독값 모두 시뮬레이션된 차량 데이터에 반응하는 실시간 속도 표시기가 있습니다. 여기서 중요한 부분은 단순히 게이지의 외관이 아니라는 것입니다. 인터페이스가 데이터에 반응하고 있다는 점입니다. 이 프로젝트에는 시뮬레이션된 원격 측정(telemetry) 기능이 포함되어 있어, 실제 차량에 먼저 연결할 필요 없이 템플릿을 실행하여 이러한 시스템들이 작동하는 것을 즉시 확인할 수 있습니다. 나중에 시뮬레이션 소스는 사용자의 자체 차량 데이터 소스로 대체될 수 있습니다. 이 모델은 매우 다른 모델입니다. 그리고 데이터를 제시하는 방식과 데이터를 분리하는 그 구분이 이 템플릿의 근본적인 아키텍처 아이디어 중 하나입니다. 바디 제어 모듈(body control module)은 다른 접근 방식을 취합니다. 주로 원격 측정값을 제시하기보다는, 이 모듈은 인터랙티브한 3D 콘텐츠가 HMI 자체의 일부가 될 수 있는 방법을 보여줍니다. 여기에서는 차량의 실시간 3D 표현과 상호작용 가능한 관심 지점(points of interest)들이 있습니다. 우리는 카메라를 차량의 다른 영역에 초점을 맞추고, 문이나 트렁크와 같은 구성 요소들과 상호작용할 수 있습니다. 이 모듈은 카메라 전환을 사용하여 이러한 검사 지점 사이를 이동하게 하여, 사용자가 전체 인터페이스를 포기하지 않으면서 상세한 차량 제어 장치들을 탐색할 수 있게 합니다. 또한 실시간으로 외부 차량 색상을 변경할 수도 있습니다.
이것은 미리 렌더링된 이미지 세트가 아니라 3D 콘텐츠로 렌더링되기 때문에, 동일한 기반 차량 에셋을 동적으로 보고 조작할 수 있습니다. 이는 HMI 개발에서 Unity의 강점 중 하나를 보여주는 유용한 예시입니다. UI와 실시간 3D 콘텐츠가 같은 애플리케이션 내에 존재하며 동일한 상태에 반응할 수 있습니다. HVAC 모듈 또는 HVAC 모듈은 전통적인 인터페이스 제어와 또 다른 실시간 3D 시각화를 결합합니다. 공조 시스템은 캐빈의 좌우 측면에 대한 별도의 온도 조절 기능을 제공합니다. 우리는 기류 세기를 제어하고 에어컨, 재순환(recirculation), 성에 제거(defrost)를 포함한 기후 기능과 상호 작용할 수 있습니다. 운전자와 승객 좌석 난방도 독립적으로 조정할 수 있습니다. 하지만 이 예시에서 특히 흥미로운 부분은 디스플레이 중앙에서 일어나는 일입니다. 기류는 정적 애니메이션으로 표현되지 않습니다. 템플릿은 실시간 3D 기류 메쉬(airflow meshes)와 재질을 사용하여 캐빈 내부에서 무슨 일이 일어나고 있는지 시각화합니다. 이미지는 표면의 표면과 매우 유사합니다. 기후 설정을 변경함에 따라 시각화가 반응합니다. 이는 기존 UI 제어, 기반 기후 상태, 그리고 그 상태의 실시간 그래픽 표현 사이에 직접적인 연결 고리를 제공합니다. 이것은 Unity에서 HMI 프로젝트가 UI와 3D 경험으로 분리될 필요가 없다는 또 다른 예시입니다. 첨단 운전자 보조 시스템(ADAS) 모듈에서는 여러 템플릿 시스템이 하나로 합쳐지는 곳입니다. 언뜻 보기에는 양식화된 주행 시뮬레이션처럼 보이지만, 그 아래에는 훨씬 더 많은 것이 일어나고 있습니다. 환경은 다중 에이전트 교통 시뮬레이션을 포함합니다. 차량들은 단순히 미리 녹화된 애니메이션을 따르기보다는 스플라인 기반(spline-based) 도로 네트워크를 통해 이동합니다. 이 시뮬레이션은 차선, 교차로, 신호등, 차선 변경, 차량 간격 및 기타 교통 행동을 관리합니다. 보행자 역시 횡단보도 주변의 상호작용을 포함하여 시뮬레이션에 표현됩니다.
신호등은 상태를 거치며 변화하고 시뮬레이션된 환경에 영향을 줍니다. 그리고 HERO 차량이 그 환경을 통과하는 동안 ADAS 시스템은 주변의 상황을 평가합니다. 이 정보가 차량 주변에서 볼 수 있는 인식(perception) 시각화로 피드됩니다. 이 차량은 실제 차량과 매우 유사합니다. 근처의 개체들은 감지되어 시각적으로 표현될 수 있으며, 이를 통해 인터페이스는 시뮬레이션된 차량이 주변 환경에서 무엇을 인지하는지 전달할 수 있습니다. 차량과 보행자는 센서 스타일의 바운딩 박스(bounding box) 시각화로 강조 표시될 수 있습니다. 시스템은 또한 근접성 및 잠재적인 충돌 감지도 표현할 수 있습니다. ADAS 시각화는 단순히 도시 배경 위에 재생되는 애니메이션이 아닙니다. 그것은 실행 중인 시뮬레이션에 대한 관점입니다. 이 구분이 HMI를 개발할 때 중요합니다. 데이터 기반 인터페이스는 개발할 데이터를 필요로 합니다. 하지만 프로토타이핑 과정에서는 최종 차량, 최종 센서 또는 심지어 최종 원격 측정(telemetry) 구현에 접근하지 못할 수도 있습니다. 시뮬레이션은 이러한 시스템들이 사용 가능해지기 전에 의미 있는 작업물을 제공합니다. 여기서는 교통량이 움직이고, 보행자가 건너고, 신호가 바뀌며, 차량의 환경이 지속적으로 진화하고 있습니다. 따라서 HMI는 몇 가지 하드코딩된 스크린샷 대신 변화하는 조건에 맞춰 개발되고 평가될 수 있습니다. 시뮬레이션 자체는 검사하고 수정할 수 있는 시스템으로 설계되었습니다. 도로 네트워크는 스플라인(spline) 기반입니다. 이 프로젝트에는 도로를 배치하고, 차선을 생성하며, 교차로를 구성하기 위한 도구들이 포함되어 있습니다. 이후 교통 시뮬레이션은 그 도로 네트워크 위에서 작동하며, 별도의 뷰 레이어(view layer)가 차량, 보행자 및 기타 개체들의 시각적 표현을 처리합니다. 이러한 시뮬레이션과 표현 간의 분리는 이 프로젝트를 단순한 비주얼 데모 이상의 용도로 사용할 경우 특히 유용해집니다. 이 템플릿은 모듈식이고 데이터 기반 아키텍처를 중심으로 구축되어 있습니다. 애플리케이션 레벨에는 다섯 가지 핵심 장면(core scenes)이 있습니다.
메인 씬(main scene)이 있고, 그 뒤로 클러스터(cluster), 바디 컨트롤(body control), ADAS, HVAC가 이어집니다. 메인은 애플리케이션의 지속적인 셸(persistent shell)입니다. 내비게이션, 상태 정보와 같은 공유 인터페이스 요소들, 그리고 씬 전환 시스템을 포함합니다. 프로젝트를 실행할 때는 main에서 시작해야 합니다. HMI를 탐색함에 따라 개별 모듈들이 추가적으로 로드되고 언로드됩니다. 이는 공유 애플리케이션 셸은 제자리에 유지되면서 그 아래의 기능적 콘텐츠만 변경될 수 있다는 것을 의미합니다. 이를 통해 각 주요 HMI 도메인이 모든 시스템이 하나의 거대한 씬 계층 구조에 패킹될 필요 없이 자체적인 씬을 가질 수 있습니다. 두 번째 주요 아키텍처 아이디어는 데이터 레이어(data layer)입니다. 한 씬을 다른 씬 내부의 게임 오브젝트와 직접 연결하는 대신, 이 템플릿은 공유 데이터 계약(shared data contracts)으로 스크립터블 오브젝트(scriptable objects)를 사용합니다. 예를 들어, 차량 데이터(car data)는 차량 원격 측정 및 상태를 나타냅니다. UI는 그것을 생성한 시스템이 무엇인지 알 필요 없이 해당 데이터를 읽을 수 있습니다. 테마 데이터(Theme data)는 시각적 스타일링에 대해 유사한 역할을 수행합니다. 그리고 ADAS 시스템은 차량 주변에서 감지된 엔티티(perceived entities)에 대한 정보를 위한 자체 데이터 레이어를 가지고 있습니다. 데이터는 시스템에게도 비슷한 역할을 합니다. 개념적으로, 이는 다음과 같은 흐름을 제공합니다. 데이터와 시뮬레이션, HMI 시스템, UI 및 프레젠테이션입니다. 정보의 출처와 그 시각적 표현이 의도적으로 분리됩니다. 이것은 템플릿을 적응시키기 시작할 때 매우 가치 있는 속성입니다. 포함된 시뮬레이션은 오늘 차량 데이터를 구동할 수 있습니다. 사용자의 원격 측정 통합(telemetry integration)은 내일 동일한 데이터를 구동할 수 있습니다. 프레젠테이션 레이어는 출처가 변경되었다고 해서 완전히 재구축될 필요가 없습니다. 동일한 데이터 기반 아이디어가 테마 시스템에서도 사용됩니다. 전체 인터페이스의 테마 인식 요소들(Theme-aware elements)은 공유 테마 상태에 반응합니다. 강조 팔레트(accent palette)도 변경될 수 있습니다. 그리고 그 시스템은 플랫 UI 요소에만 국한되지 않습니다. 이 프로젝트에는 UI와 실시간 콘텐츠 전반에 걸쳐 사용될 수 있는 테마 응답형 컴포넌트가 포함되어 있습니다.
HMI 프로젝트의 경우, 이러한 스타일링을 중앙 집중화하는 것이 중요합니다. 디자인 반복 과정에서 모든 화면을 개별적으로 수동으로 재스타일링할 필요가 없어야 합니다. 그리고 테마 시스템이 템플릿 아키텍처의 일부로 노출되기 때문에, 이 부분이 프로젝트를 시각적으로 자신만의 것으로 만들기 시작하기 가장 쉬운 곳 중 하나입니다. 맨 처음에 보았던 하드웨어는 개발 워크스테이션에서만 실행되는 것이 아닙니다. 인터페이스와 우리가 살펴보고 있던 실시간 3D 콘텐츠 전체 경험을 Raspberry Pi 5에서 초당 60프레임으로 실행하고 있습니다. 그리고 ADAS 경험에서도 마찬가지로, 교통 시뮬레이션과 인식(perception) 시각화까지 실행한다는 의미입니다. 이는 유용한 참고 지점인데, 임베디드 HMI는 무한한 컴퓨팅 자원을 가지고 있지 않기 때문입니다. 렌더링은 애플리케이션 로직 및 잠재적으로 다른 많은 차량 시스템과 자원을 공유합니다. 따라서 성능 최적화 작업이 단순히 시각적으로 흥미로운 모든 것을 제거하는 것으로만 구성될 수는 없습니다. 목표는 대상 하드웨어의 역량에 맞는 시각적 경험을 창출하는 것입니다. 이 템플릿은 Unity의 Universal Render Pipeline을 사용하며, 임베디드 지향적인 품질 구성을 포함하고 있습니다. Raspberry Pi 데모는 그 결과에 대한 구체적인 예를 제공합니다. 저전력 하드웨어에서 2D 인터페이스 요소, 실시간 3D 렌더링, 시뮬레이션을 결합한 반응형 HMI입니다. 프로젝트의 첫 번째 부분은 새로운 하드웨어를 생성하는 것입니다. 물론 모든 프로덕션 대상은 다른 하드웨어, 해상도, 콘텐츠 및 성능 요구 사항을 가지고 있습니다. 중요한 점은 Raspberry Pi가 가능한 모든 HMI 플랫폼을 대표한다는 것이 아니라는 것입니다. 이 프로젝트를 가져와 제약된(constrained) 하드웨어에 배포하고, 전체 경험을 프로파일링한 다음, 자신만의 대상에 대해 정보에 입각한 결정을 내릴 수 있다는 것입니다. 완성된 데모는 즉시 탐색할 수 있는 유용한 무언가를 제공합니다. 하지만 이 아키텍처는 빈 Unity 프로젝트부터 시작할 필요가 없도록 설계되었습니다.
UI 또는 UX 디자이너라면 스타일을 재구성할 수 있는 작동하는 화면과 중앙 집중식 테마 시스템을 갖추고 있습니다. 기술 아티스트(technical artist)라면 실시간 차량, 환경, 센서 및 기류 예제들을 활용할 수 있습니다. 개발자라면 공유 데이터 아키텍처를 사용하여 시뮬레이션된 값을 자체 시스템의 정보로 대체하며 작업할 수 있습니다. 그리고 임베디드 하드웨어(embedded hardware)를 목표로 한다면, 고립된 테스트 장면에서 성능을 평가하는 대신 구축하고 배포하며 프로파일링할 수 있는 완전한 애플리케이션을 갖추고 있습니다. 방금 템플릿을 다운로드했다면 가장 먼저 알아야 할 것은 메인 씬(main scene)이 진입점이라는 것입니다. 메인 씬을 열고 거기서 플레이 모드(play mode)로 진입하세요. 메인 프로비
AI 자동 생성 콘텐츠
본 콘텐츠는 YouTube Unity 공식의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기