Support Topics
서포트 토픽스 / UC-win/Road 保守・サポートサービス関連情報
City Design 툴 Vol.3 (총7회) AnimatedCharacter

 아리조나 주립대학교의 고바야시입니다. FORUM8가 공개하는 City Design이라는 툴을 소대합니다.

 FORUM8사 VR패키지 UC-win/Road와 다른 3DCG 패키지 간에서 심리스하게 도시 데이터를 생성・변환시키지 윈한 툴 군 개발을 목표로 하고 있습니다. 이번에 소개하는 툴은 소스 코드도 공개했습니다. 현재 특정한 서포트는 하진 않기 때문에 오류 등 문제가 있어도 책임을 질 수 없다는 것을 사양해주시기 바랍니다. 이번 기사에서 건축・토목 관계 분들 중에서 귀사가 갖고 계시는 시스템에 적합한 간이 툴을 갖고 싶으신 분이 계시면 언제든지 연락 주시기 바랍니다.

 캐릭터 모델
 제1회・제2회엔 PovrayToMax,ImageToTerrain이라는 툴을 소개했습니다. PovrayToMax 은 UC-win/Road에서 작성한 데이터를 다른 3D 소츠트웨어로 불러오기 위한 툴이고 ImageToTerrain은 항공 사진을 포함한 3차원 지형 데이터 작성 프로세스와 그것을 위한 툴이었습니다. 이번엔 UC-win/Road 에서 군집 생성 등에 이용하는 3차원 캐릭터 모델을 위한 툴 AnimatedCharacter를 소개합니다. 실제로는 Autodesk사의 3dsMax상에서 작성된 애니메이션 모델 (매시 오브젝트)를 UC-win/Road에서 서포트하는 PK3라는 데이터 형식에 일괄 변환하기 위한 툴입니다.
군집 모델은 피난 시뮬레이션에서 할리우드 영화, 3D게임 등 굉장히 다종자양한 분야에서 이용되고 있습니다. 학술 분야에서는 2차원 멀티・에이젠트 모델을 사용해서 다양한 행동 룰(A 엔진)을 연구・개발하고 있습니다. World16(VR 도시 모델 연구를 하는 세계적 워킹 그룹)멤버들도 시부야의 스크램블 교차점에서 200명이 왔다갔다 하는 모습을 가시화하는 프로젝트를 발표했습니다. 개발할 때 3차원 애니메이션 캘릭터를 작성하는 데에 굉장히 애썼지만 이 툴 개발 동기가 되었습니다.

 애니메이션 캐릭터란 걷기・달리기・멈추기 등 동작을 포함한 3차원 인간 모델을 말합니다. 보통 이런 캐릭터를 작성하는데에는 많은 작업 스탭이 필요합니다. 우선 인테 3차원 매시 데이터를 작성합니다. Autodesk사가 개발한 Maya, 3ds Max 등을 이용하지만 사람답게 보이는 모델을 작성하는데에는 경험과 센스가 필요합니다. 최근엔 인터넷에서 다운로드할 수 있거나 인체 작성 전용 소프트웨어가 있어서 그것을 이용하는 것도 가능합니다. 많은 사람들은 이 매시 데이터만 있으면 쉽게 애니메이션 캐릭터를 작성할 수 있다고 생각하지만 매시 작성 과정은 전체의 4분의 1정도밖에 안 됩니다.

 다음으로 이 매시 데이터에 동작을 연계하기 위해서 bone이라는 뼈대를 작성합니다. 작성한 매시 모양 (팔, 다리, 목 등)위치를 맞춰 가면서 bone을 작성합니다. 기본적으로는 이 bone에 동작을 주기 때문에 동작이 사람답게 보일지는 bone 작성에 달려 있습니다. 사람 bone이면 2-3번 연습하면 작성할 수 있게 됩니다.

 다음은 이 bone 데이터와 매시 데이터를 통합하는 스키닝이라는 작업이 필요합니다. 실은 이게 굉장히 힘든 작업입니다. 위에서 설명했듯이 동작은 기본적으로 bone과 관계가 큽니다. 각 bone 움직임에 매시 정점이 어느 정도 연동할 지를 지정하는 것이 스키닝입니다. 팔을 굽혔을 때 팔꿈치 부분은 상완 bone과 하완 bone 2개의 움직임에 영향을 받기 때문에 팔꿈치 부분의 각 정점이 어느정도 영향을 받는지를 Weight 행열로 기술할 필요가 있습니다. 이 영향 크기를 모든 정점에 대해 모든 bone으로 정의하는 덧입니다. 최근 툴은 이전에 비해 대부분 개선되었지만 아직까지도 시간이 걸리는 작업입니다. 특히 한 동작에 대해 마음에든 Weight 설정을 할 수 있다고 해도 새로운 동작을 추가하자마자 매시가 이상하게 변형하거나 하기 때문에 굉장히 손이 가는 작업입니다.

 스키닝을 한 후엔 실제로 bone에 움직이거나 달리는 애니메이션을 다자인합니다. 몇개 키 프레임에 기준이 되는 포즈를 줘서 키프레임 간에는 자동으로 생성하도록 합니다. 최근에는 Walk와 Run이라는 시본적인 동작은 프리 세트로 준비될 때도 있기 때문에 그것을 사용해도 됩니다. 프레임 0에서 프레임47까지의 48프레임으로 보행 1 사이클을 디자인한 것을 파일로서 작성하면 나머지는 실행 환경에서 되풀이함으로써 언제까지나 걷고 있는 캐릭터 모델이 완성됩니다.

 마지막으로 완성한 매시를 UV 머핑에 전개해서 Photoshop 등 이미지 편집 소프트웨어로 얼굴 ・근육・옷 등 텍스처를 묘사하면 완성입니다.
 캐릭터 모델의 데이터 파일
 앞에서 일반적인 애니메이션 캐릭터 ㅁ델 작성 방법을 소개했습니다. 이번엔 그 데이터를 저장해서 VR 공간에 임포트하기 위한 포맷을 소개합니다. Forum8 VR 소프트웨어인 UC-win/Road에서는 MD3이라는 데이터 파일을 이용합니다. MD3는 Quark3이라는 게임을 위해 개발된 포맷이며 많은 FPS(First・Person・Shooting) 게임에서 채용된 포맷입니다. 다만 묘사 속도를 우선한 포맷이기 때문에 최근에 나온 FBX 같은 포맷에 비하면 많은 제한이 있습니다. 그리고 몇개 분위와 동작을 여러 MD3 파일과 관리 파일로 컨트롤하기 때문에 PK3이라는 ZIP 형식 파일을 작성할 필요가 있습니다. 그 안에 지정한 폴더 구조를 구축해서 MD3 파일, 텍스처 이미지 파일, 관리 파일, 애니메이션 프레임 파일 등을 적절한 단층에 저장할 필요가 있습니다. UC-win/Road에서 독자적인 캐릭터를 이용할 경우엔 이렇게 PK3 파일을 각자 작성해야 하기 때문에 굉장히 힘이 듭니다. 이 작업을 간이화하기 위해서 작성한 툴이 AnimatedCharacter입니다. 3dsMax에서 작성한 애니메이션 캐리터를 선택해서 이용하고 싶은 플레임 수를 지정만 하면 모든 파일 군을 자동 생성해줍니다. 다음 절에서는 그 이용 방법에 대해 소개를 합니다.
 솔류션
 툴을 사용하는 방법을 스탭 순서로 정리했습니다. 또한 다음 Web 페이지에서 튜토리얼 동영상과 툴을 다운로드할 수 있습니다.

 이번에는 3dsMax에서 작성한 애니메이션 캐릭터 모델을 UC-win/Road로 직접 불러올 수 있는 PK3 데이터로 변환하는 툴을 소개했습니다. 이 툴을 이용해서 작성한 PK3 파일은 다른 3D 오서링 툴에서도 이용 가능합니다. 다음에는 도로선, 조닝, 지형 데이터에서 건물을 포함한 3차원 도시 데이터를 자동 생성하는 툴 ImageToCity를 소개합니다.

AnimatedCharacter 활용순서
● 튜토라얼 동영상, 툴 DL : http://world16.forum8az.com/2010/11/vr-tutorials-md3-character-pipeline.html

  1. 3dsMax에서 이용하고 싶은 애니메이션 데이터 작성
    • Maya와 MotionBuilder등 다른 툴로 작성한 것을 FBX 파일로 저장한 것을 3dsMax으로 임포트해도 상관없습니다. 임포트된 데이터는 Editable Mesh로서 인식됩니다. (하나의 매시 오브젝트여야합니다. )여기서는 MotionBuilder와 Maya에서 작성된 닭 모델을 이용했습니다.

  2. 변환된 데이터를 저장하기 위해서“models\players\myObj”이라는 계층을 작성.
    • myObj은 자신이 좋아하는 이름으로 하면 됩니다.

  3. 3dsMax을 열어서 매뉴에서 “MAXScript・Run Script…”을 선택, “q3-md3 exporter beta .ms”file을 지정.
    • 일반적인 MaxScript 실행과 같이 Utility 탭의 Utilities 풀다운리스트에서 “Quark3 MD3 Exporter”를 선택하면 툴이 추가됩니다.

  4. 애니메이션 오브젝트를 선택하고 시작 프레임 번호와 종료 프레임 번호를 “Start Frame”, “End Frame”에 입력.
    • 선택한 오브젝트에 Skin 모델 파이어가 있을 경우엔 ”Edit Mesh”모디파이어를 추구하시기 바랍니다.

  5. ”Get Texture” 버튼을 눌러서 사용하는 텍스처 파일을 지정

  6. ”Set MD3 File Name” 버튼을 선택해서”lower.md3”이라는 이름 파일을 2.에서 작성한 myOBJ 폴더에 저장

  7. “Export MD3 File” 버튼을 선택
    • PK3 파일에 필요한 모든 파일들이 myOBJ 폴더에 생성되는 것을 확인하시기 바랍니다.

  8. Zip 파일을 작성해서 2.에서 작성한 models 계층 이하 모든 파일과 폴더를 복사해서 ZIP 파일 확장자를 .pk3라고 합니다.
    • UC-win/Road를 열어서 인간 모델과 같이 작성한 PK3 파일을 등록하면 이용 가능할 수 있게 됩니다.
■그림1 AnimatedCharacter 툴의 GUI


■그림2 스탭6에서 지정하는 계층과 파일명


■그림3 스탭7에서 생성되는 파일군


서포트 토픽스 / UC-win/Road 保守・サポートサービス関連情報
VISSIM/S-PARAMICS
도입후 교통 상호 작용 기능 상세 내용

 UC-win/Road Ver5.2는 VISSIM과 S-PARAMICS라고 한 교통 해석 소프트웨어와 데이터 연계를 할 수 있으며 해석 결과를 UC-win/Road에서 재현할 수가 있습니다. UC-win/Road 자체에도 한 시간당 주행 대수와 경로 확률, 주행 속도 등에 근거해서 교통 시뮬레이션을 하는 기능이 있지만 교통 해석 소프트웨어를 해석한 결과가 있으면 UC-win/Road 에서 설정 조작을 줄일 수 있고 차량마다 개별 움직임을 표현할 수 있습니다. 그리고 해석 결과를 재현한 차량과 UC-win/Road에서의 시뮬레이션 차량 간섭 체크를 하는 상호 작용 기능도 있습니다.

 VISSIM 데이터 연계
 VISSIM은 독일 PTV사가 판매하는 교통 마이클로 시뮬레이션 소프트웨어이며 도로를 주행하는 차량, 보행자, 자전거 등을 시뮬레이션할 수 있습니다. UC-win/Road에는 마이클로 시뮬레이션 플레이어를 불러오는 기능을 사용해서 해석 결과를 불러올 수 있습니다. 불러올 때엔 차량 프로파일마다 설정하는 차량 모델을 선택할 수 있으며 승용차, 트랙, 버스 등 구별함으로써 보다 현실감 넘치는 표현이 가능해집니다. 그리고 마이클로 시뮬레이션 플레이어에 대해서는 보행자, 자전거, 신호등 등 이렇게 할당이 가능하며 VISSIM으로 인한 보행자와 자전거 시뮬레이션 결과도 불러올 수 있습니다. 신호가 바뀌는 것도 해석 결과에 따라 제어할 수 있으며 교차점에 있는 차와 보행자, 자전거 움직임을 한꺼번에 표현할 수가 있습니다. (그림1)

■그림1 VISSIM 해석 겨롸를 불러온 교차점 시뮬레이션

 S-PARAMICS 플러그인으로 인한 연계
 S-PARAMICS는 영국 SIAS사가 판매하는 마이클로 시뮬레이션 소프트웨어이며 도로를 달리는 차량 거동을 개별로 계산해서 교통류 해석을 합니다. S-PARAMICS 플러그인을 사용하면 S-PARAMICS에서 구축한 도로 네트워크와 도로 구조를 UC-win/Road에 직접 불러올 수 있습니다. (그림2)데이터 변환 기능으로 인해 선형과 횡단면 변화 등 도로 구조를 재현할 수 있고 교량과 터널, 로터리식 교차점 작성에도 대응합니다. 교통류 해석 결과는 VISSIM처럼 마이클로 시뮬레이션 플레이어로 별도로 불러올 수 있으며 차량 한 대마다 이동 로그를 불러옴으로써 교통 전체 흐름이 가시화되어 S-PARAMICS에서 시뮬레이션을 그대로 UC-win/Road레 반영시킬 수 있습니다. (그림3・4)

■그림2 S-PARAMICS
도로 네트워크 불러오기
■그림3 마이클로 시뮬레이션 플레이어
로 인한 교통류 불러오기
■그림4 해석 결과에 대해
차량 모델을 할당

 그리고 동일하게 UC-win/Road에서 S-PARAMICS로 데이터 변환도 가능합니다. 데이터 변환 기능을 사용해서 UC-win/Road에서 작성한 도로 네트워크와 도로 구조를 S-PARAMICS 데이터로 변환이 가능하며 변환 데이터를 토대로 S-PARAMICS으로 인한 교통 시뮬레이션을 실행할 수 있습니다. 이것으로 인해 예를 들어 설계 도면을 토대로 UC-win/Road에서 도로 네트워크를 작성해 데이터 변환 기능을 사용해서 S-PARAMICS에 변환해서 교통 해석을 하고 그것을 UC-win/Road에 반영시켜서 교통류 표현을 한다는 일련 작업을 원활하게 할 수가 있습니다.

※사명, 제품명은 일반적으로 각사 등록 상표 또는 상표입니다.

 상호 작용 기능
 마이클ㄹ 시뮬레이션 플레이어가 갖고 있는 상로 작용 기능으로서 시뮬레이션 결과를 이용해서 불러온 교통류에 대해 사용자가 운전하는 차량과의 체크를 하는 기능이 있습니다.(그림5). 보통 마이클로 시뮬레이션 플레이어로 불러온 교통류는 이동 로그로 인해 제어되기 때문에 UC-win/Road를 사용한 교통 컨트롤 대상으로는 되지 않습니다. 이 기능을 사용하면 재생된 교통류가 사용자가 운전하는 차에 충돌하는 것을 회피시킬 수 있습니다. 교통류와 자동차 위치 관계를 파악해서 차와 충돌할 수도 있는 후속차를 자동적으로 감속시키는 기능, 교통류를 UC-win/Road를 사용한 교통 컨트롤로 바꾸는 기능을 설정할 수 있습니다. 후자 기능을 설정한 경우는 교통류가 도로에 출현한 시점에서 UC-win/Road를 사용한 교통류로 바뀌어 이동 로그에 따른 주행을 하지 않게 됩니다.

■그림5 상호 작용 기능

 이 상호 작용 기능을 사용했을 경우 드라이브 시뮬레이터로 주행하는 코스에 대해 교통류 해석 결과를 적용하는 것이 가능하게 됩니다. 해석 결과를 표현한 도로를 스스로 운전함으로써 해석 소프트웨어만 있으면 할 수 없는 드라이버 시점에서 교통 상황을 확인할 수 있어서 해석 결과를 자신이 체험한다는 새로운 사용 방법을 체험할 수 있습니다. (그림6・7)

■그림6 해석 결과를 UC-win/Road에서 가시화 ■그림7 운전시 주변 차량을
마이클로 시뮬레이션 플레이어로 제어

(Up&Coming '11 한여름호 게재)

FORUM8