<실험·실습 안내서(보고서)>

과목	멀티미디어워크샾
실험실습일시	2005년 11월 2일
담당교수	김형석
담당조교	정진욱
보고서제출기한	2005년 11월 9일
제목	VRML을 이용한 카페 만들기
목적	ꋫ 3D MAx의 기능을 학습한다. ꋫ VRML로의 exporting 방법을 학습한다. ꋫ 메쉬 데이터에 대한 간략한 작업이 필요함을 느껴본다.
장비 및 소프트웨어	ꋫ IBM PC ꋫ 3D Studio MAX ꋫ VRML viewer
내용	ꋫ 3D Studio MAX의 여러 모델링 기능을 학습한다. ꋫ VRML로 exporting 하는 방법을 학습한다. ꋫ exporting된 파일에 이벤트를 삽입해 본다.
제출일자	2005년 11월 9일
제출자	학번: 이름:

1. 실습에 필요한 기초지식 및 실습절차

3DS MAX에는 vrml97에 적용할 수 있는 12가지 수정자가 Create>Helper의 Vrml97에 모여 있다. 이 중 우리가 사용할 것은 근처에 다가가면 문이 열리는 TouchSensor, 장면의 개체를 클릭하면 문이 열리는 TouchSensor, VRML관람환경 설정인 NavInfo, 배경설정인 BackGround, 하이퍼링크인 Anchor이다. 먼저 ProxSensor를 주출입구에 설치해 보자. ProxSensor는 VRML브라우저 안에서 카메라워크로 여기서 정해준 영역안에 들어가면 정해준 개체의 애니메이션이 시작되게 하는 기능이다.

	마우스로 드래그 해 그림처럼 주출입구를 중심으로 바깥쪽으로 적당히 나오게 설치하자. 물론, 높이도 문높이 정도로 충분히 주자. 그런다음 Pick Action Object를 클릭하고 장면에서 Animation을 시킬개체-여기서는 주출입구의 왼쪽과 오른쪽 문이다.-를 선택하자. 안타깝게도 맥스내에서는 제대로 적용됐는지 확인 할 방법이 없다. 필요하다면 뒤의 vrml export하기 편을 읽고 wrl로 익스포트 후 브라우저를 통해 확인 해 보자. 이와같은 방법으로 첫번째 전시홀로 들어가는 문에도 ProxSensor를 설치해 보자.

세번째 미닫이문(두번째 전시홀에서 안마당으로 빠지는 slide door)에는 Touch Sensor를 설치하자. 이는 어떤 오브젝트를 브라우저 상에서 클릭하면 정해진 개체가 애니메이션이 되게 하는 기능이다. TouchSensor를 문 주위에 설치하자.Sensor의 위치나 크기는 중요하지 않다. 보기 편한 위치에 편한 크기로 설정 하자.

자 이번에는 클릭할 개체를 (object의 이름을 click로 줬다.) 같이 붙은 문 한쪽엗다 링크를 걸어보자. click이 child가 되고 문(door3-1)이 parent가 되는 것이다. 이는 문을 움직이면 click이라고 써있는 sign board 가 같이 애니메이션 된다는 것이다.

링크를 시킬경우 순서를 주의하여야 하는데 click을 먼저 선택하고(child) door를 후에 선택(parent) 해야 한다.슬라이드바를 움직여 sign board가 같이 움직이는지 확인해 보자.

	정확히 적용되면 방금만든 Touch Sensor를 선택 후 Modify Tab으로 가 Trigger와 Action을 설정한다. Trigger와 Action은 각각 브라우저 상에서 장면에 있는 개체를 선택하면 Action에 할당된 개체가 Animation을 시키는 명령이다. Pick Trigger을 이용해 SignObject(Click)을 선택하고 Pick Action Object를 이용해 signboard,양쪽문(click,door3-l,door3-r)을 선택하자 . 즉, 클릭개체를 클릭하면 양쪽문과 클릭개체가 열린다는 의미이다.

이번에는 안마당에다 Anchor를 설정 해 보자. 이는 브라우저 에서 여기서 설정된 개체를 클릭하면 다른 웹문서로 이동하는 하이퍼링크이다. 먼저 Pick Trigger Object를 클릭한 후 장면에 있는 ipont개체를 클릭한다. 편의상 ipoint라는 개체에 내 홈페이지 http://ipoint.pe.kr에 링크를 걸었으나 적절히 URL 을 기입해 보자.

Description은 웹브라우저 하단 Status bar에 보여지는 설명글이다. 필요하다면 입력하자.

아래의 Setcamera는 다른 문서로 이동하지 않고 장면에 있는 다른 카메라 뷰로 바꾸는 역할을 한다.

이처럼 Anchor를 이용하면 View를 바꿀 수 있을 뿐만 아니라 다른문서 와의 Link를 시킬 수 있다. 실제 웹에서는 Java와 연동해 보다 인터랙티브한 작업을 한다.

이번에는 BackGround를 설정해 보자.

여기에는 칼라와 맵을 이용할 수 있으나 맵을 이용한다 해도 결국 가상의 BOX를 만들어 여섯면에 맵핑을 하므로 화늘 같은 것을 넣기에는 그리 적당하지 않다. 꼭 넣고 싶으면 장면을 충분히 덮을 만큼의 반구를 만들고 안쪽에 구름등을 맵핑하는 것이 더 효과적일 듯 하다. 여기서는 세 가지 칼라를 이용해 노을이 지기 전 하늘의 칼라를 설정 해 보았다.

BackGround개체를 적당히 삽입(위치와 크기는 별 상관이 없다.)후 Number of Color에 Three를 체크 후 세 종류의 칼라를 설정 해 보자. 편의 상 오른쪽 그림과 같이 Blue, Cyan, 그리고 채도가 떨어지는 Yellow를 설정했다. 그 옆의 Angle은 각도로 이해하기 보다는 수직면상의 위치이다. 즉, 90도는 바닥과 면해 있는 면의 색상이고 65도로 Cyan을 설정한 이유는 이 칼라를 중앙(45도)이 아닌 아래쪽에 치우치게 하기 위함이다

그림 중 붉은 테두리가 쳐진 부분은 contact3d브라우저 에서 캡쳐한 BackGround모습니다.

마지막으로 NavInfo로 중요한 환경설정을 하자. 장면에 이 노드를 만들고 Type을 Fly로 설정하자 먼저 Type를 살펴본다면 Examine은 브라우저 상에서 사용자는 고정된 채 개체를 이리저리 돌려보는 방법이다. 이는 제품 쪽에서는 적당하겠지만 본 에제와 같은 공간에서는 부적합하다. Walk Type은 사용자가 어깨에 캠코더를 메고 걸어 다니는 식의 관람 방식이다. Fly와 거의 비슷하지만 차이점이 있다면 Fly Type은 위 아래로 이동이 가능 하다. 즉, Walk로 했을 경우 문을 열고 들어가야 하지만(가끔 버그로 인해 벽을 뚫고 들어갈 수 있는 경우도 있다.) Fly Type은 담장을 넘어갈 수도 있다. 편의를 위해 좀 더 융통적인 Fly Type을 사용하자. Headlight는 장면에 Light가 없을 경우 자동차의 Headlight처럼 비추면서 Camera walking을 하겠다는 얘기다. Visibility Limit은 카메라로부터 일정거리 이상은 브라우저에서 디스플레이를 하지 않겠다는 것으로서 Max Camera의 Clipping과 비슷하다. Speed는 중요한데 브라우저 상에서 마우스를 이동 해 드래그 할 경우 이동속도를 나타낸다. 물론 브라우저의 환경설정에서 가속을 하거나 감속을 하게 설정할 수도 있지만 처음 사용자가 이를 사용하기를 기대하기는 힘들다. 너무 빨라 제어하기 힘들거나 너무느려 답답하지 않게 적당히 입력해야 한다. 여기서는 20정도가 적당한 것 같다. Avatar의 Collision은 오브젝트의 보호막의 크기정도로 이해할 수 있다. 너무 크면 문이 열려도 안으로 들어갈 수 없고 0이면 벽을 뚫고 지나갈 수도 있다. 여기서는 1로 설정하자. Terrain은 표면의 높이를 정의한다. 가끔 카메라가 이동하다가 바닥에 달라붙는 경우가 있는데 , 이럴 경우 이 수치를 조정한다. Step Height도 중요한데 이는 진행 시 높이가 있는 개체와 부딛 힐 경우 넘을 건지 아니면 막혀 진행을 하지 못할 것인지를 결정한다. 즉, 이 예제에서는 벽이 나올 경우 넘지 말아야 하며 계단이 나오는 경우 이를 타고 넘어 가야 하기 때문에 계단 한 단의 크기보다 크게 한다. 여기서는 60으로 설정하자.

2. 결과과 결론

3. 실습에 대한 평가 (담당교수의 실습에 대한 평가결과 기재(점수 또는 의견기재)