슬라이드 1

Similar documents
슬라이드 1

(Microsoft PowerPoint - \301\24613\260\255 - oFusion \276\300 \261\270\274\272)

슬라이드 1

슬라이드 1

슬라이드 1

슬라이드 1

슬라이드 1

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

<4D F736F F F696E74202D20C1A63134B0AD202D20BBE7BFF8BCF6BFCD20C8B8C0FC>

슬라이드 1

<4D F736F F F696E74202D20C1A63137B0AD202D20C1F6C7FCC3E6B5B9C3B3B8AE>

e01.PDF

(Microsoft PowerPoint - \301\24615\260\255 - \303\346\265\271\303\263\270\256)

<C8ADB7C220C5E4C3EBC0E52E687770>

(Microsoft PowerPoint - \301\24608\260\255 - \261\244\277\370\260\372 \300\347\301\372)

<4D F736F F F696E74202D20C1A63037B0AD202D20B1A4BFF8B0FA20B1D7B8B2C0DA>

C프로-3장c03逞풚


슬라이드 1

02-1기록도전( )

목 록( 目 錄 )

03-1영역형( )

슬라이드 1

<4D F736F F F696E74202D20C1A63130B0AD202D20C1F6C7FCB0FA20C7CFB4C3C0C720B7BBB4F5B8B5>

K&R2 Reference Manual 번역본

(Microsoft PowerPoint - \301\24611\260\255 - \276\326\264\317\270\336\300\314\274\307)

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

제 1 장 기본 개념

PowerPoint 프레젠테이션


UI TASK & KEY EVENT

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

슬라이드 1

PowerPoint 프레젠테이션

11.indd

Lab 3. 실습문제 (Single linked list)_해답.hwp

03장.스택.key

정치사적

Modern Javascript

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

<C5F0B0E8C7D0B0FA20C7D1B1B9B9AEC8AD20C1A63435C8A328C3D6C1BE292E687770>

<BACEBFA920C8ABBBEAB8E920BBF3C3B5B8AE2020C1F6C7A5C1B6BBE720BAB8B0EDBCAD28BCF6C1A4292E687770>

10장.key

낙랑군

제1장 마을유래 605 촌, 천방, 큰동네, 건너각단과 같은 자연부락을 합하여 마을명을 북송리(北松里)라 하 였다. 2006년에 천연기념물 468호로 지정되었다. 큰마을 마을에 있던 이득강 군수와 지홍관 군수의 선정비는 1990년대 중반 영일민속박물 관으로 옮겼다. 건


제8장 자바 GUI 프로그래밍 II

농어촌여름휴가페스티벌(1-112)

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

Ⅰ. 머리말 각종 기록에 따르면 백제의 초기 도읍은 위례성( 慰 禮 城 )이다. 위례성에 관한 기록은 삼국사기, 삼국유사, 고려사, 세종실록, 동국여지승람 등 많은 책에 실려 있는데, 대부분 조선시대에 편 찬된 것이다. 가장 오래된 사서인 삼국사기 도 백제가 멸망한지

H3250_Wi-Fi_E.book

chap01_time_complexity.key

초보자를 위한 C# 21일 완성

PowerPoint 프레젠테이션

chap 5: Trees

*세지6문제(306~316)OK

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

untitled

UI TASK & KEY EVENT

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - 09-CE-5-윈도우 핸들

2015 판례.기출 증보판 테마 형법 추록본.hwp

Java ...

untitled

*캐릭부속물

108 KOREA INSTITUTE OF LOCAL FINANCE

88 KOREA INSTITUTE OF LOCAL FINANCE

RVPH020B2M1 IM.9959.

윈도우 프로그래밍의 개념

그래픽 프로그래밍

< B0B3C0CEC1A4BAB8BAD0C0EFC1B6C1A4BBE7B7CAC1FD2E687770>

???? 1

유니티 변수-함수.key

Microsoft PowerPoint - GameProgramming16-Camera.ppt

부산, 글로벌과 로컬의 사이에서

untitled

슬라이드 1

JMF2_심빈구.PDF

(132~173)4단원-ok

Microsoft PowerPoint - es-arduino-lecture-03

슬라이드 1

새만금세미나-1101-이양재.hwp

chap10.PDF

기본자료형만으로이루어진인자를받아서함수를결과값으로반환하는고차함수 기본자료형과함수를인자와결과값에모두이용하는고차함수 다음절에서는여러가지예를통해서고차함수가어떤경우에유용한지를설명한다. 2 고차함수의 예??장에서대상체만바뀌고중간과정은동일한계산이반복될때함수를이용하면전체연산식을간 단

슬라이드 1

사진 24 _ 종루지 전경(서북에서) 사진 25 _ 종루지 남측기단(동에서) 사진 26 _ 종루지 북측기단(서에서) 사진 27 _ 종루지 1차 건물지 초석 적심석 사진 28 _ 종루지 중심 방형적심 유 사진 29 _ 종루지 동측 계단석 <경루지> 위 치 탑지의 남북중심

crazyflie2 code reading subak.io

( )부록

HW5 Exercise 1 (60pts) M interpreter with a simple type system M. M. M.., M (simple type system). M, M. M., M.

삼릉에서 용장까지 경주 남산 둘러보기 펴낸 이 (사)경주남산연구소 펴낸 날 2012년 11월 펴낸 곳 (사)경주남산연구소 기획 및 디자인 AllThatPlan 窓 인쇄 성전기획 4 경주남산가이드북① 삼릉에서 용장까지 5

<C0E5B7C1BBF328BEEEB8B0C0CCB5E9C0C729202D20C3D6C1BE2E687770>

PowerPoint Presentation

실감미디어 제작 전문인 과정 1기 결과보고서

11강-힙정렬.ppt

PowerPoint 프레젠테이션

Microsoft PowerPoint - IP11.pptx

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

슬라이드 1

ePapyrus PDF Document

5.스택(강의자료).key

Transcription:

핚국산업기술대학교 제 9 강캐릭터컨트롤러 이대현교수

학습안내 학습목표 씬노드의구성및회전방법을응용하여, 구면카메라및캐릭터컨트롤을구현해본다. 학습내용 구면카메라구현을위한씬노드구성및회전캐릭터컨트롤을위한씬노구구성및회전

카메라및캐릭터컨트롤구현목표 카메라컨트롤 WOW의카메라컨트롤 ( 구면카메라 ) 마우스를이용한좌우패닝, 상하피칭. 휠스크롤을이용한줌인및줌아웃. 캐릭터를중심으로회전됨. 카메라를회전시킬때, 캐릭터는자신의상태유지. 캐릭터컨트롤 WASD 를이용한캐릭터의전후진이동, 좌우이동, 대각선이동

실습 Control(2) 구면카메라구현

bool mousemoved( const OIS::MouseEvent &evt ) myaw->yaw(degree(-evt.state.x.rel)); mpitch->pitch(degree(-evt.state.y.rel)); 실습 mholder->translate(ogre::vector3(0, 0, -evt.state.z.rel * 0.1f)); return true;

class LectureApp void go(void)... 중략... SceneNode* camerayaw = professorroot->createchildscenenode("yaw",vector3(0.0f,120.0f,0.0f)); SceneNode* camerapitch = camerayaw->createchildscenenode("pitch"); 실습 SceneNode* cameraholder = camerapitch->createchildscenenode("holder",vector3(0.0f,80.0f,500.0f));... 중략...

실행결과 마우스를이용핚구면카메라컨트롤

카메라컨트롤및홀더노드설정 SceneNode* camerayaw = professorroot->createchildscenenode("yaw",vector3(0.0f,120.0f,0.0f)); SceneNode* camerapitch = camerayaw->createchildscenenode("pitch"); SceneNode* cameraholder = camerapitch->createchildscenenode("holder",vector3(0.0f,80.0f,500.0f)); Y Yaw Pitch Holder Professor Root X Z

Yaw Control Y myaw->yaw(degree(-evt.state.x.rel)); Yaw Pitch Holder Professor Root Holder X Z

Pitch Control Y Holder mpitch->pitch(degree(-evt.state.y.rel)); Yaw Pitch Holder Professor Root X Z

Zoom Control Y Yaw Pitch Holder Holder Professor Root X mholder->translate(ogre::vector3(0, 0, -evt.state.z.rel * 0.1f)); Z

실습 CharacterController 방향키와마우스를이용한캐릭터이동구현

실습 bool framestarted(const FrameEvent &evt)... 중략... if (mcharacterdirection!= Vector3::ZERO) mcharacterroot->setorientation(myaw->getorientation()); Quaternion quat = Vector3(Vector3::UNIT_Z).getRotationTo(mCharacterDirection); mcharacteryaw->setorientation(quat); mcharacterroot->translate(mcharacterdirection.normalisedcopy() * 111 * evt.timesincelastframe, Node::TransformSpace::TS_LOCAL); if (!mwalkstate->getenabled()) mwalkstate->setenabled(true); midlestate->setenabled(false); mwalkstate->addtime(evt.timesincelastframe); else if (!midlestate->getenabled()) midlestate->setenabled(true); mwalkstate->setenabled(false); midlestate->addtime(evt.timesincelastframe);... 중략...

bool keypressed( const OIS::KeyEvent &evt ) switch(evt.key) case OIS::KC_W: case OIS::KC_UP: mcharacterdirection.z += -1.0f; break; case OIS::KC_S: case OIS::KC_DOWN: mcharacterdirection.z += 1.0f; break; case OIS::KC_A: case OIS::KC_LEFT: mcharacterdirection.x += -1.0f; break; case OIS::KC_D: case OIS::KC_RIGHT: mcharacterdirection.x += 1.0f; break; case OIS::KC_ESCAPE: mcontinue = false; break; return true; bool keyreleased( const OIS::KeyEvent &evt ) switch(evt.key) case OIS::KC_W: case OIS::KC_UP: mcharacterdirection.z -= -1.0f; break; case OIS::KC_S: case OIS::KC_DOWN: mcharacterdirection.z -= 1.0f; break; case OIS::KC_A: case OIS::KC_LEFT: mcharacterdirection.x -= -1.0f; break; case OIS::KC_D: case OIS::KC_RIGHT: mcharacterdirection.x -= 1.0f; break; case OIS::KC_ESCAPE: mcontinue = false; break; return true; 실습

class LectureApp void go(void)... 중략... 실습 SceneNode* professorroot = mscenemgr->getrootscenenode()->createchildscenenode("professorroot"); SceneNode* professoryaw = professorroot->createchildscenenode("professoryaw"); SceneNode* camerayaw = professorroot->createchildscenenode("yaw", Vector3(0.0f, 120.0f, 0.0f)); SceneNode* camerapitch = camerayaw->createchildscenenode("pitch"); SceneNode* cameraholder = camerapitch->createchildscenenode("holder", Vector3(0.0f, 80.0f, 500.0f)); camerayaw->setinheritorientation(false);... 중략...

실행결과 WASD 캐릭터이동 + 마우스카메라조정

캐릭터와카메라의회전연결차단 SceneNode* professorroot = mscenemgr->getrootscenenode()->createchildscenenode("professorroot"); SceneNode* professoryaw = professorroot->createchildscenenode("professoryaw"); Y SceneNode* camerayaw = professorroot->createchildscenenode("yaw", Vector3(0.0f, 120.0f, 0.0f)); SceneNode* camerapitch = camerayaw->createchildscenenode("pitch"); SceneNode* cameraholder = camerapitch->createchildscenenode("holder", Vector3(0.0f, 80.0f, 500. 0f)); camerayaw->setinheritorientation(false); mpitch->pitch(degree(-evt.state.y.rel)); Yaw Pitch Holder Professor Root X Z

카메라방향과캐릭터방향의조정 if (mcharacterdirection!= Vector3::ZERO) // 방향전환운동이시작될때, 캐릭터의축을카메라축과 align mcharacterroot->setorientation(myaw->getorientation()); // 캐릭터의바라보는방향을전환 Quaternion quat = Vector3(Vector3::UNIT_Z).getRotationTo(mCharacterDirection); mcharacteryaw->setorientation(quat); // 캐릭터축을기준으로하여, 캐릭터이동 ( 속도 : 111cm / sec = 약 4km / sec) // Character Root 의 local space 를기준으로이동 mcharacterroot->translate(mcharacterdirection.normalisedcopy() * 111 * evt.times incelastframe, Node::TransformSpace::TS_LOCAL);

학습정리 구면카메라컨트롤 카메라의 Yaw, Pitch 및 Zoom 을위한씬노드를각각따로둠. 캐릭터컨트롤 캐릭터와카메라의회전을분리함 독립적으로회전설정. Yaw Control 을이용하여자체에서회전.