Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

RPGMaker/2012년스터디: Difference between revisions

From ZeroWiki
imported>ppparkje
No edit summary
imported>ppparkje
No edit summary
Line 49: Line 49:
* 이를 이용하면 직교투영 좌표가 된 것처럼 보이긴 하지만 depth에 해당하는 z값이 바뀌면 조금이라도 오차가 생기기 때문에 이를 보정하여야 한다
* 이를 이용하면 직교투영 좌표가 된 것처럼 보이긴 하지만 depth에 해당하는 z값이 바뀌면 조금이라도 오차가 생기기 때문에 이를 보정하여야 한다
   특히 렌더링 순서를 z값을 조정함으로 결정시키기 때문에 정확한 렌더링을 위해서는 보정 테크닉을 아는 것이 필수이다.
   특히 렌더링 순서를 z값을 조정함으로 결정시키기 때문에 정확한 렌더링을 위해서는 보정 테크닉을 아는 것이 필수이다.
[http://wiki.zeropage.org/wiki.php/RPGMaker/2012년스터디?action=download&value=projection.png]
[http://wiki.zeropage.org/wiki.php/RPGMaker/2012년스터디?<nowiki>attachment:action=download&value=projection.png</nowiki>]
* 위 그림에서 볼 수 있듯이 실제 Object의 중점과 사람이 느끼는 Object의 위치는 다르다. 크기 역시 마찬가지이다.
* 위 그림에서 볼 수 있듯이 실제 Object의 중점과 사람이 느끼는 Object의 위치는 다르다. 크기 역시 마찬가지이다.



Revision as of 04:40, 29 July 2012

스터디 소개

  • 그래픽스 엔진 등 공학적인 주제에 초점을 맞춤
  • RPG만들기 에뮬레이터 스마트폰 버전
  • 참고 위키: RPG만들기 한글, 영문
  • Java로 만든 3D 물리 엔진으로 2D 엔진 만들기
  • 툴이 아닌 에뮬레이터 위주
  • UDK로 뭔가 삽질 하다가 멘붕하고 선회한 스터디 -ㅅ-

참가자

진행 시간

  • 여름방학: 매 주 화, 목 저녁 7시 반 ~ 10시

목표

  • RPGMaker VX Version을 Java로 -> Android용으로 -> Windows용으로... (겨울 방학 끝날 때 쯤엔 완성 되겠지...)

여름방학

2012.07.26

한 것

  • jpct 설치 및 RPG 만들기가 어떻게 생겨 먹은 놈인지 확인
  • jpct 튜토리얼 보고 따라 해 보기 - Hello World!

프로젝트 설정

  1. 이클립스 프로젝트 생성은 생략. 게다가 이미 svn repository에 등록해놓았음
  1. PC용 jPCT 엔진을 받는다
  1. 받은 엔진 안에는 jpct에 해당하는 jpct.jar과 또다른 그래픽 라이브러리인 lwjgl이 있다. lwjgl.jar까지 라이브러리로 등록한다
  1. lwjgl.jar은 내부적으로 native 함수를 호출한다. 이 native함수는 dll파일에 담겨져 있는데 이클립스에서 Window -> preferences -> java/installed JREs 에서 vm 설정에 -Djava.library.path=D:\Workspace\rma\libs 형식으로 lwjgl.dll 또는 lwjgl64.dll의 폴더 경로를 입력함으로써 참조하게 한다. 이와 관련된 오류는 java.lang.UnsatisfiedLinkError이다.

참고

Simple rendering

직교투영 렌더링

  • jPCT에서는 명시적으로 Orthographic rendering(직교투영 렌더링)을 지원하지 않는다
  [1]
  따라서 근사적으로라로 직교투영을 만든다
  한줄요약: 카메라를 겁나 멀리 갖다두면 근사적으로 직교투영이 됨ㅋ

보정(Interpolation)

  • 이를 이용하면 직교투영 좌표가 된 것처럼 보이긴 하지만 depth에 해당하는 z값이 바뀌면 조금이라도 오차가 생기기 때문에 이를 보정하여야 한다
  특히 렌더링 순서를 z값을 조정함으로 결정시키기 때문에 정확한 렌더링을 위해서는 보정 테크닉을 아는 것이 필수이다.

<nowiki>attachment:action=download&value=projection.png</nowiki>

  • 위 그림에서 볼 수 있듯이 실제 Object의 중점과 사람이 느끼는 Object의 위치는 다르다. 크기 역시 마찬가지이다.
  만약 위 그림처럼 Object가 스크린에서 delta만큼 떨어져 있다면 간단한 비례식으로 (length-delta)/length 만큼 크기가 조정되어야 한다
  중심의 이동은 Object의 중심을 O, Projection의 중심을 P라고 할 때 벡터 PO만큼을 이동시키면 된다. 벡터 PO는 카메라 위치와 Object 중심을 잇는 직선의 연장선상에 있다는 것을 생각하면 계산이 간편해진다.

오브젝트 그리기

직사각형(FillRect) 그리기

  • 왼쪽 위, 오른쪽 아래 좌표만 알면 그릴 수 있다.
  • 사각형은 2개의 삼각형으로 구성된다.
  • 실제 구현

직선(Line) 그리기

  • 직선도 실제로는 너비를 가져야 렌더링이 가능하기 때문에 다음과 같은 구조를 가져야 한다

Line.png

  • vLine = vEnd - vStart
  • normal(vLine과 수직인 벡터) = vLine × (-z방향 벡터) -> normalize하여 길이가 1인 벡터로 만듦.
  • (u1, v1)과 (u1, v2)는 vStart ± (normal/2)
  • (u2, v1)과 (u2, v2)는 vEnd ± (normal/2)
  • 실제 구현

2012년활동지도