메뉴 건너뛰기

창조도시 기록보관소

기타툴 [ODS] ONE 상에 그림 띄우기

2008.05.03 04:28

Zeprod 조회 수:677

 


안녕하세요, 제프입니다.


 


오딘 스크립트를 만들어 놓기만 했지 실질적인 튜토리얼을 아무것도 준비하지 않아 처음 접하는 분들로썬 이해하기가 너무 난해했으리라 생각했습니다.


 


그래서 간단한 기능 하나하나 천천히 설명하는 기회를 가질 수 있도록 하겠습니다.


 


오늘은 그림을 출력하는 방법을 알아보도록 하겠습니다.


 


먼저 ONE 환경이 설치된 폴더를 유심히 살펴보면 Load.ODS, Render.ODS 라는 두가지 스크립트파일이 있습니다.


 


Load.ODS는 프로그램이 처음 구동되자마자 딱 한번 불려지는 스크립트이며, 엔진이 구동되는데 필요한 준비과정을 이곳에서 하면 좋습니다.


 


Render.ODS는 엔진이 실질적으로 계산을 하고, 어떻게 동작할 것인지 설정하는 부분이며, 엔진이 화면에 그림을 출력할때마다 실행하는 스크립트입니다. 동영상은 정지영상을 빠르게 보여주는 것이란 것은 모두들 알고 계실것입니다.


 


그런 영상 사이사이에 이런 계산부분을 넣어줌으로써 엔진상에서 그림이나 물체를 움직이고, 소리를 조절하는 등 다양한 일들을 할 수 있습니다. 아직 잘 이해가 안가실 수도 있겠지만, 점차 스크립트를 접하실수록 조금씩 원리가 어떤것인지 느껴지실 것입니다.


 


우선 Load.ODS에 그림을 출력하기 위한 준비과정을 적어보도록 하겠습니다.


 


(현재 텍스트형식으로 임시운용중이므로, 메모장이나 워드패드 등의 간단한 프로그램으로 열어주시면 되겠습니다.)



----------- 이 아래부분을 적어주세요 ------------


OBJ $변수명 /* 설명을 달 수 있습니다. */


$변수명 = Load Image 경로명


------------------------------------------------


 


 


딱 2줄을 적어주는 것으로 그림을 엔진에 띄우는데 필요한 모든 준비가 끝났습니다.


 


첫번째줄은 [$변수명] 이라는 이름을 가진 OBJ 객체를 만드는 것으로써, OBJ 객체는 그림, 3D 모델, 음원 등의 여러 자료들을 저장할 수 있는 변수입니다.


 


RPG 만들기 등의 간단한 게임제작 프로그램들에서도 변수를 사용하지만, 숫자나 아주 적은 데이터밖에 다루지 못할 것입니다. 허나 ODS에서는 대용량 자료들도 OBJ라는 특수한 변수를 이용해 아주 쉽게 다룰 수 있습니다.


 


나중에 이 그림에 대해 조작을 하고 싶을때에도 OBJ형식의 변수가 필요합니다.


 


그리고 /* */로 묶인부분은 스크립트자체에 설명을 적어두고 싶을때 사용하는 부분으로 실제 구동에는 아무 영향도 미치지 않습니다. 여기서 주의할 점은 /* 내용 */처럼 양끝 주석표시기호와 중간 내용은 스페이스를 두어야 한다는 것입니다.


 


 


두번째줄은 [Load Image 경로명] 함수를 이용해 [경로명]에 해당하는 그림을 읽어와 [$변수명]이라는 OBJ변수에 저장해주는 것입니다. [Load]란 사전적의미로 읽어오다, 불러오다 라는 뜻을 가지고 있습니다. [Image]는 그림이라는 뜻이지요. ^^;


 


경로명은 프로그램이 실행되는 폴더에서 상대경로를 넣어도 되고, 절대경로를 넣어도 상관은 없습니다. 하지만 절대경로로 스크립트를 짤경우 다른 폴더로 엔진을 옮기면 제대로 실행이 안된다는걸 유의하세요.


 


이처럼 ODS에서는 그림을 그리기위해선 로딩과정이 필요합니다. 다른 상용게임들에 존재하는 로딩에 해당하는 기능이라고 생각하시면 되겠습니다. 하지만 이런 간단한 그림을 로드하는 것은 아주 짧은순간에 로드가 끝나므로 따로 로딩화면을 만들필요는 없겠습니다.


 


 


 


 


이제 준비를 마쳤으니, Load.ODS에 계속해서 아래내용을 적어주시면 됩니다.


 


----------- 이 아래부분을 적어주세요 ------------


OBJ $변수명 /* 설명을 달 수 있습니다. */


$변수명 = Load Image 경로명


Access Image $변수명 -> Visible TRUE /* 이 줄이 추가되었죠? */


------------------------------------------------


 


이번에 추가된 줄은 [Access] 함수를 통해 $변수명에 저장된 그림을 불러와 [Visible:눈에보임]을 TRUE로 설정하는 것입니다.


 


뭔진 모르겠지만 엔진을 실행해보면 그림이 화면에 표시되는 것을 알 수 있습니다.


 


이처럼 [Access] 함수는 OBJ객체에 속한 여러 속성들을 바꿀 수 있습니다. 사라지게 한다던가, 위치를 바꾼다던지 하는 것이 가능합니다.


 


실제로 게임같은 멀티미디어 프로그램을 엔진상에서 구현하려면, Load, Access 함수들은 너무나 자주 사용해야할 중요한 기능일 것입니다.


 


ODS에서 사용할 수 있는 함수들에 대한 개략적인 설명은 다음 사이트에 게제되어 있습니다. 변경되는 내용이 있다면, 이곳에 계속해서 반영할 예정이니 참고하셔야 합니다.


(http://zeprod.org/prod_odin_api.htm?cartegory=prod_odin_api)


 


 


다음시간에는 엔진에 띄운 그림에 움직임을 만들어보는 시간을 갖겠습니다. 그럼 다음에 뵙죠. ^^;