[GpGiki 대문으로]

Appearance Map


분류: 분류 번역, 분류 설계패턴


외형 맵(Appearance Map)


Submitted by Zachary Booth Simpson on 12/4/2000

?2000 - Zachary Booth Simpson. Copied with permission from http://www.totempole.net. If you find any of this work useful, please sign Zack's guest book: http://www.totempole.net/cgi-bin/gbook.cgi.


날림 번역 두번째... 번역의 중단을 아쉬워하며.... :) 2003-11-05 09:29, 파도


의도:

Isolate Model state from Model appearance to minimize impact on controllers when art changes

그림(Art)가 변화되었을때 컨트롤러에 미치는 영향을 최소화하기 위하여 모델 외형으로 부터 모델 상태의 독립

c! art라.. 음... Model appearance 도 해석하기가 좀 껄끄러운듯한.. 적절한 용어가 없을까.. [파도]

문제:

Controllers are often complicated little state machines which interact with Models in very specific ways. It is common for this interaction to change the appearance of the Model, especially in animation controllers. Since art may change frequently (example: more frames are added to an animation) it makes sense to separate the state from the appearance.

컨트롤러들은 매우 특별한 방법으로 모델들과 상호작용하는 복잡하고 작은 상태 기계들일 때가 많다. 이 상호작용은 일반적으로 모델의 외형을 변화시키는데 특히 애니메이션 컨트롤러의 경우가 그러하다. 그림(art)은 매우 자주 바뀌는 경향이 있기 때문에(예로 애니메이션에는 더 많은 프레임이 추가된다.), 외형으로 부터 상태를 분리하는것이 이치에 맞다.

해결책:

Without an appearance map, a controller is likely to change the "frame" of an animation directly. For example:

if (state == WALKING) {
    model.frame = WALK_START_FRAME + WALK_NUM_FRAMES * (WALK_DURATION / dt);
}

In this case, if the animation is changed, the three constants WALK_XXX need to be updated and the game recompiled for the change to take effect.

외형 맵을 사용하지 않는다면, 컨트롤러가 직접 애니메이션의 "프레임(장면)"을 변화시킬 가능성이 많다. 예를 들자면 다음과 같다.

if (state == WALKING) {
    model.frame = WALK_START_FRAME + WALK_NUM_FRAMES * (WALK_DURATION / dt);
}

이 경우 만약 애니메이션이 변화되면, 세 상수들(WALK_XXX)은 갱신(재정의)되어야 하고, 그 효과를 적용하기위해 게임은 재컴파일 되어야만 한다.

An appearance map eliminates these constants and replaces them with a lookup. Typically, a table is loaded at game initialize time which encodes the translation from state and delta time ("state") to frame ("appearance").

외형 맵은 이러한 상수들을 없애고 이를 색인(테이블)들로 대체한다. 일반적으로 테이블은 상태와 델타 시간("상태")을 프레임("외형")으로의 변환을 부호화하는 게임의 초기화 시점에 로드된다.

c! 어째 해석이 원문을 따라가지 못하는 듯한.. ㅡ.ㅡ;; 모델의 상태와 상태에 mapping되는 frame에 대해서 실제로 view에 frame을 display하기까지 걸릴 시간(지연 시간, delta time) 에 대한 정보를 appearance map에 넣어 놓고 초기화 시 load 한다는 의미인듯 한데... [파도]

A game with a built-in editor will probably allow this table to either be edited directly or at least to be re-imported on command.

아마도 내장된 에디터를 가지는 게임은 이 테이블을 직접 수정하거나 적어도 command 상에서 재 임포트 되는 기능을 가지게 될것이다.

구조:

지금은 없음.

고려사항 및 위험요소

없음

관련 패턴들

Appearance Maps translate Model state into an appearance for the View.

외형 맵은 의 관점에서 모델의 상태를 외형으로 변형한다.

용례 및 참고자료


제일 위로
최종 수정 일시: 11월 05일(2003년) 09:36 AM 편집 | 정보 | 차이 | 비슷한 페이지 DebugInfo
유용한 페이지들: 분류 분류 | 자유로운 연습장 SandBox | 무작위 페이지들 RandomPages | 인기있는 페이지들 MostPopular