Alice Handbook

 

포항공과대학교 컴퓨터공학과 ( http://cse.postech.ac.kr )

가상현실감 연구실 ( http://vr.postech.ac.kr )

이 건 endovert@postech.ac.kr

 

 

1. Alice 란?

Alice는 인터렉티브 3D 그래픽 컨텐츠를 제작하고 프로그래밍하기 위한 도구로, 현재 Carnegie Mellon University의 Randy Pausch 교수의 주도 아래 Stage3 연구그룹에 의해 개발, 개선 되고 있습니다. 특히 문서를 편집하여 프로그램을 작성하는 기존의 방식을 보완하여, GUI(그래픽 사용자 인터페이스)를 이용하여 프로그램 작업을 할 수 있도록 해주어, 비 전문가도 쉽게 인터랙티브 3D 그래픽 컨텐츠를 제작할 수 있도록 도와줍니다.

Alice의 공식 홈페이지는 아래 URL 주소에 있고, 이곳에서 프로그램을 무료로 다운로드 받을 수 있으며, 현재 최신 버전은 2.0b 입니다.

- http://www.alice.org

 

2. Alice 시작하기

Alice를 실행하면 아래 왼쪽과 같은 시작 화면이 나오면서 프로그램이 실행 됩니다.

 

     

 

Alice는 처음 쓰는 사용자를 위해 튜토리얼(tutorial)을 제공하고 있습니다. 처음 실행시 오른쪽 위와 같은 대화창이 뜨고, 여기서 원하는 튜토리얼이나, 예제파일, 최근 열었던 파일 또는 임의의 파일을 불러올 수 있습니다. 튜토리얼은 영어로 되어있긴 하지만, Alice의 전반적인 내용을 이해하는데 큰 도움이 되고 단계별로 따라 할 수 있도록 구성되어 있기 때문에 쉽게 배울 수 있습니다. 여기서는 튜토리얼을 자세하게 다루지는 않겠습니다.

다음은 Alice 프로그램의 기본적인 구성을 알아보겠습니다. Alice는 크게 2가지 모드로 작동합니다. 하나는 가상세계가 어떻게 움직일지 행위를 다루는 것이고, 다른 하나는 가상세계에 있는 가상 물체들을 구성, 배치하는 모드입니다. 먼저 기본 모드인 행위편집 모드 화면의 각 부분이 어떤 일을 하는지 알아보겠습니다.

가상세계 창은 현재 만들고 있는 가상세계의 모습을 보여주고 있습니다. 사용자는 아랫쪽의 화살표들을 사용하여 가상세계에서 위치를 이동할 수 있습니다. 오른쪽 아래의 Add Objects 버튼을 누르면 가상물체를 배치하는 모드로 바뀝니다.

물체트리는 가상세계에 있는 물체들의 목록을 갖고 있습니다. 여기서 사용자는 다룰 물체를 선택하고, 선택된 물체의 정보는 상세 정보 영역에 표시 됩니다.

행위 편집기와 이벤트 창에는 물체의 행위를 편집하는 도구들이 있고, 휴지통은 물체나 물체의 행위 들을 끌어다 놓아 지울 때, 클립보드는 복사할 것을 끌어다 놓는데 사용합니다.

컨트롤 버튼은 완성된 가상세계를 실행시키거나, 이전에 한 작업을 되돌리(undo)는데 사용됩니다.

다음은 물체 배치 모드의 화면 구성입니다. 기본적인 구성은 비슷하고 몇몇 도구들이 바뀐 것을 볼 수 있습니다.

 

물체 편집 도구들은 물체를 옮기거나 돌리는데 사용되고 카메라 조절 도구들은 카메라의 위치나 줌을 조절합니다. 물체모음에는 Alice에서 제공하는 가상 물체들이 있으므로 여기서 물체를 골라서 가상세계에 추가할 수 있습니다. 완료 버튼을 누르면 행위 편집 모드로 되돌아 갑니다.

이제 Alice로 어떤 것을 만들 수 있는지 알아보기 위해 메뉴에서 Help>Example Worlds를 선택하여 예로 구성된 가상 세계들을 살펴보겠습니다.

Amusement Park라는 예제를 실행시켜보면 놀이동산의 놀이 기구들이 움직이는 것을 볼 수 있습니다. Bunny Hop에서는 누르는 원뿔대까지 토끼가 뛰는 것을 볼 수 있고, Flight Simulator에서는 키보드를 사용하여 비행기를 조정해서 고리들을 통과시키는 게임도 할 수 있습니다. 그 밖에도 여러 재미있는 예들이 있으니 하나씩 실행시켜 봅시다.

 

3. 가상세계 꾸미기

이제 직접 자신의 가상세계를 만들어 보도록 하겠습니다. 메뉴에서 File > New World를 선택하여 새로운 가상세계를 만듭니다. 기본적으로 파란 하늘에 풀밭이 있는 가상세계가 만들어 집니다. 하늘 색이 마음에 안들 경우 물체 트리에서 World를 선택하면 표시되는 상세정보에서 propertiesatmosphereColor를 조절해 봅니다.

이제 가상 물체들을 추가해봅시다. 가상세계 보기 창에 있는 Add Objects 버튼을 클릭해서 물체 배치 모드로 바꿉니다. 물체 모음에서 원하는 가상 물체를 선택해서 가상세계에 추가합니다. 여기서는 Animal 폴더에 있는 Butterfly를 추가해 봅시다.

 

왼쪽 위 그림처럼 물체 트리에 Butterfly가 추가된 것을 볼 수 있습니다. 물체 중에 앞에 동그라미 표시가 있는 것은 하위의 여러 물체들로 구성된 것입니다. 동그라미를 클릭해보면 오른쪽 위 그림처럼 하위 구성 물체들을 볼 수 있습니다.

 나비가 작아서 잘 안보일 경우 가상세계 창 아래 화살표들을 사용해서 가까이 갑니다. 기본적으로 추가된 가상 물체는 바닥에 붙어 있습니다. 나비가 바닥에 붙어 있는 것은 이상하므로, 공중에 띄워 봅니다. 물체 편집도구를 보면 아래 그림의 버튼들을 볼 수 있습니다.

 화살표 버튼이 눌린 상태에서는 물체를 선택할 수 있고, 나머지 것들은 각각 화살표가 가리키는 방향으로 물체들을 이동시키거나 돌릴 수 있습니다. 제일 오른쪽에 있는 버튼을 선택하면 물체를 마우스로 끌어서 복사 할 수 있고, 오른쪽에서 두 번째는 물체의 크기를 바꾸는데 사용합니다. 3차원 공간이라서 위치가 헛갈릴 경우, quad view를 선택하면 여러 방향에서 본 모습을 볼 수 있어 도움이 됩니다. affect subparts를 체크하면 물체의 하위 구성 물체들 그러니깐, 나비의 경우 각각의 날개들을 따로 다룰 수 있습니다.

카메라 조절 도구를 사용하면 화면 비율과 줌 정도를 조절할 수 있습니다. 특정한 카메라 위치가 마음에 들어서 다음에 그곳으로 쉽게 올 수 있도록 하려면, 그곳에서 drop dummy at camera 버튼을 누르면, move camera to dummy 목록에 현재의 카메라 위치가 추가되어 다음에 고를 수 있게 됩니다. drop dummy at selected object 버튼은 현재 선택된 물체의 위치를 카메라 위치 목록에 추가 시켜 줍니다.

물체 배치가 다 되었으면 Done 버튼을 눌러 행위 편집 모드로 되돌아 갑니다.

 

4. 움직여라~ 얍!

이제 나비가 날 수 있게 해줄 차례입니다. 나비가 날 때에 위 아래로 오르락 내리락 하는 모습을 만들어 봅니다. 나비를 선택하고 상세정보에서 methods 탭을 선택하면 나비가 할 수 있는 일들이 나옵니다. 위치를 옮기(move)거나 방향을 돌리고(turn) 크기를 바꾸는(resize) 등의 일을 할 수 있는 것을 볼 수 있습니다.

이들 중 move를 행위 편집기에 마우스로 끌어다 놓습니다. 그러면 움직일 방향과 거리를 지정할 수 있게 됩니다. 위 아래로 움직이도록 만들어 봅니다. 위아래로 움직이는 것을 계속 반복하기 위해서는 행위편집기의 위쪽에 있는 컨트롤 도구들 중 Loop을 마우스로 끌어와서 반복횟수(times)를 infinity로 정해줍니다. 이 Loop안에 위아래로 움직이는 method를 마우스로 끌어다 집어넣으면 위아래로 움직이는 동작이 무한히 반복되게 됩니다.

method에 나오는 more…’를 클릭하면 세부적인 사항을 조절할 수 있습니다. 여기서는 나비가 너무 천천히 움직이는 것 같으니, 좀더 빨리 움직이도록 duration을 1초에서 1/2초로 바꿔보도록 합니다. 또한 1/2meter로 되어있는 움직이는 거리도 0.1로 줄여봅니다. 0.1은 메뉴에 없지만 대신 메뉴의 other…’를 선택하면 임의의 숫자를 입력할 수 있습니다.

이번에는 나비가 날개 짓을 하도록 해봅니다. 가상 세계를 꾸밀 때 물체의 하위 구성요소 별로 다룰 수 있었던 것처럼, 행위도 하위 구성요소 별로 줄 수 있습니다. 물체 트리에서 나비의 오른쪽 날개를 선택합니다. 상세정보에 나비의 오른쪽 날개가 할 수 있는 method들이 표시됩니다. 나비의 날개 짓은 곧 회전하는 것이므로 turn을 행위 편집기로 끌어다 놓습니다. 앞에서 위아래로 움직이게 했던 것처럼 오른쪽 날개를 오른쪽으로 한번 회전하고 다시 왼쪽으로 회전하게 해서 원위치로 돌아오게 합니다. 나비 날개가 완전히 한 바퀴 도는 것은 아니므로, revolution은 1/4 바퀴로 합니다.

그런데, 나비가 날개 짓을 하면서 동시에 위아래 움직여야 하는데 위아래로 움직인 후에 날개 짓을 하는 문제가 생겼습니다. 이것을 해결 하기 위해선 행위편집기 위쪽에 있는 컨트롤 도구들 중 Do together를 사용하면 해결 할 수 있습니다. 올라가는 동작과 오른쪽 날개를 오른쪽으로 회전하는 것을 하나의 Do together안에, 내려가는 동작과 오른쪽 날개를 왼쪽으로 회전하는 것을 또 다른 Do together에 넣어봅니다. 이제 올라가는 동시에 날개가 돌아갑니다. 날개가 움직이는 것과 위아래로 움직이는 시간을 맞추기 위해 날개 돌리는 동작의 duration을 1/2초로 맞춥니다.

이제 왼쪽 날개도 오른쪽 날개처럼 똑같이 움직이도록 해보세요.

 

5. 나비야 놀자~!

이번에는 나비가 마우스로 누르면 도망가게 해봅니다. 바로 마우스로 나비의 날개가 클릭되었을 때 반대 방향으로 움직이도록 하는 것입니다. 이렇게 사용자의 입력을 받기 위해서 이벤트(event) 창에 있는 도구들을 사용합니다. 이벤트를 사용해서 마우스가 눌리거나 키보드가 눌렸을 때 특정 가상 물체의 특정 동작이 일어나도록 할 수 있습니다. 가상세계가 시작되자마자 나비가 나는 동작을 할 수 있었던 것도, 기본적으로 가상세계가 시작되었을 때 Worldmy first method가 실행되도록 되어 있었기 때문입니다.

이벤트 창에 있는 create new event 버튼을 누르면 새로운 이벤트를 설정할 수 있습니다. 여기서는 나비의 날개가 눌린 것을 감지하기 위해 when the mouse is clicked on something 이벤트를 만듭니다. 이벤트에도 동작을 지정할 때처럼 세부사항을 변경할 수 있습니다. 기본적으로 아무 물체나 클릭 되어도 동작하도록 되어 있는 이벤트를 나비의 오른쪽 날개가 클릭 될 때만 실행되도록 바꿉니다.

다음으로 마우스가 눌렸을 때 특정 동작을 하도록 해야 하는데, 나비가 반대쪽으로 도망가도록 하는 동작이 있어야겠지요? 이를 위해서는 나비의 동작을 추가해야 합니다. 동작을 추가하기 위해서는 우선 물체 트리에서 나비를 선택하고, 상세 정보에서 methods 탭을 선택하면 create new method 버튼이 있습니다. 이 버튼을 클릭해서 새로운 동작을 만들고 이름을 flee right이라고 붙입니다.

새로 만들어진 flee right 동작의 오른쪽에 있는 edit버튼을 누르면 앞서 나비를 위아래로 움직이게 했던 것처럼 행위 편집기에서 flee right 동작의 행위를 고칠 수 있게 됩니다. 나비가 눌린 방향과 반대 방향으로 움직이도록 행위를 만듭니다.

이제 앞서 만들어 놓은 마우스 클릭 이벤트에서 방금 만든 flee right 동작이 실행되도록 고칩니다.

이제 가상세계를 실행시키면 나비가 제자리에서 날다가 오른쪽 날개를 마우스로 클릭하면 도망가는 것을 볼 수 있습니다. 이제 나비의 왼쪽 날개가 눌렸을 때도 나비가 반대 방향으로 도망가도록 이벤트와 동작들을 만들어봅시다.

 

이제 여러분들이 원하는 데로 가상세계를 꾸밀 수 있습니다. 마음에 드는 가상 물체들을 집어 넣고, 어떻게 움직일지, 어떻게 조정할지 여러분의 상상력을 동원해서 멋진 가상세계를 만들어보세요.