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

과목	멀티미디어워크샾
실험실습일시	2005년 10월 21일
담당교수	김형석
담당조교	정진욱
보고서제출기한	2005년 10월 28일
제목	이벤트 동작에 의한 물체의 움직임 애니메이션
목적	ꋫ 가상현실에서 애니메이션을 접하게 한다. ꋫ 이벤트 처리 및 애니메이션 사용법을 알아본다.
장비 및 소프트웨어	ꋫ IBM PC ꋫ VRML viewer
내용	ꋫ 애니메이션 종류 ꋫ Key-frame 애니메이션 ꋫ in-betweening 기법의 문제점 ꋫ VRML의 이벤트 처리 기법 ꋫ VRML 애니메이션 기법
제출일자	2005년 10월 28일
제출자	학번: 이름:

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

ꋫ 애니메이션의 정의

- 가상의  세계에  있는  이미지를  통해  표현되는  움직임의  예술

- 생명이  없는  대상물이나  이미지에  생명을  불어넣는  일

- 빠른  속도로  재생해  보여  줌으로서  마치  화면  안의  대상물이  실재로  부드럽게  움직이는  것처럼  느껴지도록  하는  일련의  스틸  이미지들을  만들어  내는  것  또는  그  결과물.

- 사람  눈의  생리적  특성인  잔상현상을  이용하는데  프레임( 각각의  정지된  이미지)  사이의  간격이  이  잔상의  지속  시간을  초과할  정도로  길어지면  화면이  뚝뚝  끊어져  보이게  된다.

ꋫ 셀(cel) 애니메이션

- 전통적인  애니메이션의  가장  보편적인  기법

- 종이  위에  연필로  그린  그림의  시퀀스에서  출발

- 움직임을  미리  테스트

- 셀  위에  잉크로  덧칠

▪	전경 :  캐릭터의  움직임

▪	배경 :  사진  이미지

- 1 장의  셀  오버레이 = 1 frame

ꋫ 키프레이밍과 인비트위닝

- 키  프레임 :  애니메이션  중에서  중요하다고  판단되는  프레임

- 키프레이밍 :  키  프레임을  생성하는  과정

- 인비트위닝 :  키  프레임들  사이를  채워주는  중간  과정

▪	보간법  사용 (  선형  보간법,  비선형  보간법)

▪	사용자에  의해  지정된  보간(interpolation)  방식에  의해  컴퓨터가 두  키  프레임  사이의  오브젝트  속성을  자동으로  계산해서  중간  프레임들을  생성하는  것

- 애니메이션  제작  과정을  보다  효율적으로  만들기  위해  월트  디즈니  스튜디오에서  개발.  경험  많은  마스터  애니메이터가  중간  중간의  중요한  프레임( 키프레임) 들을  그리고  보조  애니메이터들이  그  사이(in-betweens) 를  그려서  메워  넣는  방식이다.

- 키프레임  방식의  단점 :  경험에  의한  감각적  방법

ꋫ 이벤트 처리

- 사건의 흐름

▪ 방문자의 행동에 의해서 사건 발생

▪ 마우스로 클릭, 위치 이동, 시간의 지남에 의한 것

▪ Sensor에 의해서 사건을 인식

▪ Route를 통해서 사건 전달

▪ Target(일반 노드)의 필드 값의 변화

- Sensor 종류

▪ TouchSensor  : 마우스의 이동이나 클릭

▪ PlaneSensor :	물체를 화면 안에서 드래깅 하고자 할 때

▪ CylinderSensor : 물체를 마우스 끌기로 주어진 축에 대한 회전

▪ SphereSensor : 물체를 모든 방향으로 회전하고자 할 때

▪ ProximitySensor :특정 물체에 다가 서면 이벤트 발생

▪ TimeSensor :	특정한 시간이 되면 사건 발생

- Route 사용법

▪ ROUTE A.B TO C.D

A : Sensor를 칭하는 DEF 이름

B : eventOut 필드 이름

C : 사건이 발생하는 노드를 칭하는 DEF 이름

D : 그 노드의 eventIn 필드 이름

▪ B와 D의 필드 타입이 동일하여야 한다.

▪ Sensor 가 부착된 물체 위에 커서를 위치시키면 커서 모양이 바뀜

- 예제

#VRML V2.0 utf8

Background { skyColor 0 0 0 }

DEF COL2 Background {	skyColor 0 1 0 }

Transform {

children [  Shape { geometry Sphere { radius 1 } }

DEF TOUCH TouchSensor{ }

] }

ROUTE TOUCH.isActive TO COL2.set_bind

- VRML에서의 애니메이션

▪ 시간의 흐름에 따른 대상의 변화

▪ 구성 요소 : 센서, 시간, 대상

▫ 시간

- TimeSensor에 의해서 조절

- 사건이 일어나서 종결되는 시간까지의 시간

▫ 대상 : 형태, 색상, 위치, 크기, …

▫ Interpolator : 애니메이션의 중간 값

- Key 값, 그때 대응되는 대상 값(예, 색상, …)

▪ 순서

▫ 센서의 사건 발생

▫ TimeSensor 활성화

▫ 각 중간값을 interpolator를 이용하여 자동 계산

▫ 대상의 변화 실행

- 예제

#VRML V2.0 utf8

DEF VRML Transform {

translation 0 0 0

children

Shape { geometry Box { size 2 2 2 }

appearance Appearance { material Material { diffuseColor 0 0 1 }} }

}

DEF TouchS TouchSensor { }

DEF TimeS TimeSensor {

loop FALSE

cycleInterval 4

}

DEF VRMLrotation OrientationInterpolator {

key [ 0,0.5, 1 ]

keyValue [1 0 0 0, 1 0 0 3.14, 0 0 1 3.14]

}

ROUTE TouchS.touchTime TO TimeS.startTime

ROUTE TimeS.fraction_changed TO VRMLrotation.set_fraction

ROUTE VRMLrotation.value_changed TO VRML.rotation

2. 실습절차

단계 1: x, y, z축을 그린다.

단계 2: 스위치에 해당하는 박스를 만든다.

단계 3: 그 박스에 센스를 부착시킨다.

단계 4: 원점에 원하는 도형을 만들어 놓는다.

단계 5: 적당한 위치에 카메라를 놓고 항상 원점을 향하도록 한다.

단계 6: 적당한 시점에 카메라의 위치와 방향을 key 값으로 하는 애니메이션을 적용시켜본다.

3. 결과

4. 결론 (실습자가 실습에 대한 결론 기재)

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