Presentation is loading. Please wait.

Presentation is loading. Please wait.

최종 발표 학번: 2010182020 이름: 박기범 학번: 2012180044 이름: 정영옥.

Similar presentations


Presentation on theme: "최종 발표 학번: 2010182020 이름: 박기범 학번: 2012180044 이름: 정영옥."— Presentation transcript:

1 최종 발표 학번: 이름: 박기범 학번: 이름: 정영옥

2 1. 구현 내용

3 구현 내용 OgreSDK 리소스들을 이용해서 구현. 캐릭터 애니메이션 및 방향 회전 캐릭터 및 카메라 & 화면 조작
HeightMap을 이용한 높낮이 있는 맵. 다양한 조명들 구현. 랜덤 방향으로 돌아다니는 객체 구현. 오브젝트들의 바닥 충돌 체크. 캐릭터 공격 모션 충돌 체크. 적이 죽을 때 Juicy한 리액션 구현. 점수 화면 표시를 위한 Overlay 구현. SkyBox를 이용한 하늘 구현. 사운드 구현

4 1. 구현 방법

5 구현 방법_1 < 전문가의 코드 인용 >
지형지물은 ogre3d 홈페이지 Tutorial3 코드인용 메인 캐릭터는 ogreSDK 샘플코드 인용 전문가의 코드를 보면서 코딩스타일과 여러 함수들과 그것의 구현 방식을 습득함.

6 구현 방법_2 < 나름 클래스 설계 >
Class: GameObject GameObject 클래스를 Player, Light, Enemy 클래스에 상속시켜 객체들을 관리 공통 컴포넌트과 인터페이스 함수 정의로 코드 재사용성을 높이고 다형성을 구현

7 Class: Player 구현 방법_3 < 충돌 체크 > 충돌체크영역 Player
공격 모션 시 플레이어가 바라보고 있는 방향을 기준으로 사각영역을 충돌체크 나름의 고민이 많았던 부분. 하지만 해결책은 쉬웠다. 플레이어 초기 방향과 회전 누적값을 Quaternion 곱하면 바라보는 방향이 나옴.

8 Class: BasciApp 구현 방법_4 < 바닥 충돌 체크 > Ray Object
지형의 y 좌표만 알면 됨, Ogre에서 제공하는 Ray 클래스를 인용. 오브젝트 위치의 상공에서 바닥으로 향하는 직선 광선을 쏴서 지형에 부딪힘으로 y값을 도출하는 것 같음(추정) 응용의 여지가 많을 것 같음.( 총알 충돌, 거리 계산…)

9 구현 방법_5 < Juicy Reaction >
Class: Enemy mTimer 초기값 = 100 프레임당 60*deltaTime을 빼줌으로써 약 1.65초에 음수값이 됨. mTimer가 60 이하(약 0.7초)가 되기 전까진 천천히 위로 그 후엔 재빠르게 위로. mTimer를 변수로 yaw회전, 상대변환 이므로 회전이 서서히 줄어듦. mTimer는 줄어드는 값이므로 등속이 아닌 가속 변화를 보임.

10 3. 느낀점

11 코드를 인용해 봄으로써 객체의 상속 구조, 은닉성, 캡슐화의 중요성을 알게 됨.
TOPIC_1 < 객체지향 > 코드를 인용해 봄으로써 객체의 상속 구조, 은닉성, 캡슐화의 중요성을 알게 됨. 프로젝트가 진행 될수록 객체 설계 단계의 이런 아쉬움들이 드러남. Static_cast의 남용 무분별한 getter와 setter 객체 역할의 불분명함

12 Ogre 엔진을 살펴봄으로써 게임 엔진의 전체적인 구조를 알아가고 엔진 구현에 많은 힌트를 얻음.
TOPIC_2 < 엔진 구조 > Ogre 엔진을 살펴봄으로써 게임 엔진의 전체적인 구조를 알아가고 엔진 구현에 많은 힌트를 얻음. 여태 배운 과목들의 실적용례를 보고 구현해 보면서 희미했던 것의 실체를 잡게 됨. 또한 셰이더, 스크립트, FSM, 디자인 패턴 등 엔진 구현에 공부해야 할 과목들과 코딩 테크닉들을 알게됨.


Download ppt "최종 발표 학번: 2010182020 이름: 박기범 학번: 2012180044 이름: 정영옥."

Similar presentations


Ads by Google