질문과 답변

Extra Form

1.이미 MV에서 찍은 맵칩을 그대로 무손실 이미지로 출력하는법이 있나요?


2.중요한건데, 예전 아방스에서 파라셀러 맵핑이 렉을 줄여주고 최적화에 도움이 된다는 요지의 글을 읽었습니다. 특히, 커다란 맵에서요.


하지만 얀플라이는 파라셀라 맵핑은 큰 맵일수록 맵칩 방식보다 렉이 더 심해진다고 했습니다.


무엇이 맞는 말이죠? 모바일에서 게임 최적화는 아주 중요하다고 생각합니다.

 

 3.Grid-Free Doodads는 용량 말고 최적화 측면에서 얼마나 부담이 될까요?

 

 

 

 

 

■ 질문전 필독!
  • 질문할 내용이 이 게시판이나 강좌에 이미 있는지 확인합니다.
  • 하나의 게시물에는 하나의 질문만 합니다.
  • 제목은 질문의 핵심 내용으로 작성합니다.
  • 질문 내용은 답변자가 쉽게 이해할 수 있도록 최대한 상세하게 작성합니다.
  • 스크립트의 전문이 필요할 경우 txt 파일 등으로 첨부해 주시기 바랍니다.
  • 답변받은 게시물은 삭제하지 않습니다.
  • 답변이 완료된 경우 해당 답변해주신 분들께 감사의 댓글을 달아줍니다.
    • 처음 오신 분들은 공지 게시물을 반드시 읽어주세요!

※ 미준수시 사전경고 없이 게시물을 삭제합니다.

Comment '9'
  • profile
    구륨 2016.09.27 13:27
    2번은 이벤트 오브젝트때문에 생기는 관점의 문제가 아닐까요? 툴 안에서의 맵핑은 한계가 많기 때문에 이벤트까지 동원해서 맵을 꾸며야 하고, 넓을 수록 필요한 이벤트 수도 늘어납니다. 하지만 통짜로 맵을 그려 넣을 경우엔 데코 용도의 이벤트 오브젝트가 거의 필요 없거든요.

    단순히 넓은 맵을 찍기만 한다면 툴 맵핑이 더 가볍겠지만 현실적으로는 이벤트 때문에 더 무거워 질것 같다는 생각이 듭니다.
  • profile
    러닝은빛 2016.09.27 18:18

    1. Orange Mapshot을 쓰면 1:1로 출력이 가능합니다.
    2. 용량과 그림 크기가 커지면 메모리가 그만큼 증가하므로 렉이 걸릴 수 있는 것이 맞습니다. 다만 캔버스 타일맵 성능이 좋지 않아서 실제로 테스트 해보면, 타일맵은 스크롤 성능이 좋지 않아서 움직일 때 마다 렉이 걸리는 듯한 느낌이 있습니다. 오히려 패러랠스 맵핑은 용량 문제가 정말 심각하지만 일단 같은 조건에서 더 부드럽게 돌아가는 느낌이 있습니다. 하지만 용량 문제로 메모리에 부담이 될 수 있는 것은 사실입니다. 다만 모바일 기본 캔버스 타일맵은 내부에 거대한 비트맵을 보관하므로 애초에 좋지 않은 부분이 있습니다. 또한 패러랠스 맵핑은 WebGL 모드에서는 사용이 불가능합니다. 모바일에서는 RAM(메모리)이 보통 1GB 정도이며 꽤 부족하고, 텍스처의 크기가 보통 4096까지가 제한이기 때문입니다.
    3. WebGL 모드로 돌리면 스크롤 성능이 좋아지므로 굉장히 빠른 속도로 이용 가능합니다. 다만 MV에서는 텍스처를 압축하지도 않기 때문에 부담이 있고 위와 같이 메모리 상에서 제한되는 부분이 좀 있습니다. 그리고 RMMV에서는 비트맵에 그림을 그린 후에 복사해서 사용하기 때문에 WebGL 모드에서도 캔버스 방식을 여전히 사용하고 있는 것도 문제입니다.


    요약

    용량 최적화 : Grid-Free Doodads 플러그인 > 패러랠스 맵핑

    스크롤 성능 : Grid-Free Doodads 플러그인 < 패러랠스 맵핑

    메모리 최적화 : Grid-Free Doodads 플러그인 > 패러랠스 맵핑

    체감상 속도 (Canvas 모드에서) : Grid-Free Doodads 플러그인 < 패러랠스 맵핑

  • ?
    잠행인 2016.09.28 08:10
    오직 속도만 비교했을때 패럴랙스랑 플러그인x인 타일셋 중엔 무엇이 더 낫습니까? 그리고 메모리 최적화란게 잘 이해가 안되는데 메모리 사용량이 높으면 게임이 느려지지 않나요?
  • ?
    잠행인 2016.09.28 08:32
    그리고 현재 프리로딩 플러그인을 쓰고있습니다. 이게 메모리에 부담주는 대신 로딩을 대폭 줄여주는 걸로 아는데, 렉은 오히려 늘어나나요?
  • profile
    러닝은빛 2016.09.28 14:53 Files첨부 (2)
    메모리도 최적화에 상당히 중요하지만, 그에 따른 CPU 사용 시간과 드로우 콜(그래픽 함수 호출 시간)을 줄이는 것도 중요합니다. 개발자 콘솔에서 CPU Pofile를 선택하면, 각 소스가 전체 시간에서 얼마나 CPU 시간을 소비하고 있는지, 어떤 소스가 시간을 많이 사용하는 지 알 수 있습니다. 또한 메모리 상태도 확인이 가능합니다. 개발자 도구에서 Pofiles - Take Heap Snapshot 을 돌리고 확인해보면 메모리를 얼마나 먹고 있는 지 확인이 가능합니다.

    일단 메모리 상에서는 일단 DOM 트리과 컴파일된 코드가 가장 많은 메모리를 차지하고 있습니다 (pixi.js, rpg_objects.js 같은 소스 코드 자체가 제일 많이 차지하고 있습니다) 프리로드에서 사용되는 CacheEntry를 보시면 얼마나 많은 소스가 캐시되고 있고 얼마나 차지하는 지를 알 수 있습니다. 다만 CacheEntry는 게임 초반에는 거의 차지하지 않기 때문에 이렇다고 말 할 수가 없습니다. 초반에는 오히려 좋은 역할을 하고 있다고 볼 수 있는데 시간이 지나면 많이 늘어날 거라고 생각 합니다. (그래서 장기간 플레이 시 저장된 이미지 캐시 메모리 때문에 튕길 수가 있습니다.) 일단 초반에는, Window 부분을 열어서 초반 메모리를 확인해보면, $dataAnimations, $dataTilesets 같은 전역 변수들이 가장 많은 메모리를 차지하고 있다는 것을 알 수 있습니다.

    렉이 늘어나는 지 줄어드는 지는 정확한 수치를 보고 확인을 해보는 것이 좋고, 어느 것이 더 좋을 지도 마찬가지로 실제 프로파일러로 테스트를 해본 후에 판단을 해보는 것이 좋습니다. 물론 이론 상으로는 Grid-Free Doodads 플러그인을 사용하는 것이 좋은 선택입니다. 다만 모바일 크로미움 내부 구현은 이론과는 전혀 다를 수 있기 때문에 이론보다는 실제 테스트가 필요합니다.

    실제 테스트 결과는 다음과 같습니다.

    - 캔버스 타일맵 (canvas tilemap)
    맵 크기 : 41 * 40
    normal.png

    일반 상태 : 35 ~ 38fps
    스크롤링 성능(플레이어를 움직이고 있을 때) : 24 ~ 28 fps (*FPS 저하 심각)
    Graphics.render 성능 : 4984.0 ms (52.95%)
    drawImage 성능 : 2078.5ms (22.08%)
    메모리 상태 : 9,115kb


    - 패럴랠스 맵핑 (Hudell's Orange Overlay)
    맵 크기 : 30 * 30 (1차 시도), 41 * 40 (2차 시도)
    pmm.png

    일반 상태 : 36 ~ 42 fps
    스크롤링 성능(플레이어를 움직이고 있을 때) : 36 ~ 42 fps (저하 없음)
    Graphics.render 성능 : 3214.5 ms (45.17%, 30 * 30), 3999.0 ms (57.8%, 41 * 40)
    drawImage 성능 : 1004.5 ms(14.11%, 30 * 30), 1439.5ms (20.55%, 41 * 40)
    메모리 상태 : 9,235kb (30 x 30), 9,081kb (41 * 40)

    이 관점에서 보면, 캔버스 모드에서의 패러랠스 맵핑은 꽤나 적절하다고 볼 수 있습니다. 

    거대한 그림을 불러와도 실제로는 화면 크기 만큼만 그리게 되니까요.

    반면 모바일 기본 모드인 캔버스 타일맵은 내부에 있는 거대한 비트맵에 실제 타일 갯수만큼 그래픽 함수를 호출해서 모든 타일을 그리게 됩니다. 

    그리고 그렇게 완성한 캔버스를 실시간으로 실제 화면 보여지는 캔버스로 화면 사이즈 만큼만 복사합니다. 

    중간에 타일을 변경하면 다시 처음부터 그립니다. 그리고 스크롤 성능도 좋지 않습니다.

    따라서 해당 플러그인으로 효과를 보려면, WebGL 모드로 돌려야 할 듯 싶습니다.

  • ?
    잠행인 2016.09.28 15:02

    저는 캠버스 타일맵핑 플러그인을 쓰지 않습니다.(혹시 플러그인을 안 써도 여기에 해당한다면 죄송합니다) 페럴렉스 맵핑을 고려하는 것도 이미지를 꾸리려는 것이 아니라 렉을 줄이기 위한 목적이었습니다. 그래도 이 조건과 같다고 봐도 될까요?

  • profile
    러닝은빛 2016.09.28 15:11

    제가 말한 것은 기본 장착된 것으로 플러그인이 아닙니다. 모바일에서는 기본적으로 Tilemap이 캔버스 타일맵으로 생성됩니다. PC에서는 ShaderTilemap으로 생성됩니다. 모바일에서는 webGL 모드로 강제로 돌려야 ShaderTilemap으로 생성됩니다. 일반적으로는 캔버스 타일맵입니다. 따라서 Grid-Free Doodads 플러그인은 모바일에서 캔버스 타일맵을 근본으로 동작하게 됩니다. 캔버스 타일맵 자체에 문제가 있어서 렉을 없애기가 힘듭니다. 또한 방금 테스트를 해보니 WebGL 모드에서도 FPS가 30밖에 나오지 않네요. 제 휴대폰은 2013년에 출시된 휴대폰으로 성능이 그렇게 좋지 않습니다. 참고 하시기 바랍니다.


    + 제가 측정한 수치 상으로는 캔버스 모드에서 그냥 패러랠스 맵핑이 더 우수했습니다. WebGL 모드에서는 텍스쳐의 사이즈가 커지면 좋지 않아지므로 패러랠스 맵핑보다는 일반적으로 생성되는 ShaderTIlemap의 성능이 더 좋았습니다.

  • profile
    러닝은빛 2016.09.28 15:30
    정리하면 모바일이라면,

    - WebGL ShaderTilemap + Grid-Free Doodads

    또는

    - Canvas Tilemap + Parallax Mapping (Hudell's Orange Overlay)

    이 되고, 이에 대한 근거는 위 댓글의 스크린샷들이 설명해주고 있네요.
  • ?
    잠행인 2016.09.28 15:33
    이해했습니다. 감사합니다

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12448
이벤트 작성 RMMV 특정 캐릭터들이 파티에 함께 있으면 버프가 발생하도록 만들고 싶습니다 1 유카이 2021.01.26 77
플러그인 사용 RMMV 특정 캐릭터에게 기본 공격 평타 계산식을 바꾸고 싶습니다. 1 코코아밀크 2019.05.12 105
RMMV 특정 키가 눌려지면 발동하게 하려면, 어떤 스크립트 명령어를 써야하나요? 1 파란소리 2018.06.13 266
기타 RMMV 특정스탯이 되면 죽은것으로 처리하고 싶습니다. 2 JDG 2020.08.18 50
RMMV 특정조건달성시 스킬삭제에 관하여.. 2 Yuiran 2018.06.30 106
플러그인 사용 RMMV 특정캐릭터의 치명타 데미지 증가 2 Timeout 2020.04.18 119
RMMV 파라셀러 맵핑에 관한 몇 가지 의문점들 9 잠행인 2016.09.27 291
기타 RMMV 파이널판타지15나 파판7리메이크처럼 전투시스템을 구축하려 하는데 도움을 주셨으면 합니다. 2 레기우스州 2020.12.24 77
에러 해결 RMMV 파일을 열려고 하면 프로그램이 멈춥니다. file 고르아게 2019.05.05 58
에러 해결 RMMV 파일을 열면 이렇게 되는 이유? 2 file 한글자3 2020.04.13 111
기본툴 사용법 RMMV 파일이 적용되지 않습니다 2 file 다크샌 2023.11.26 35
RMMV 파티 그룹원추가문제. file the추장 2016.05.03 137
이벤트 작성 RMMV 파티 내 액터중 이름, 직업이 일치하는 경우에만 특정 이벤트를 표현하고자 합니다. 6 애용애용갱얼쥐 2022.12.30 85
기타 RMMV 파티 합류 자연스럽게 하는 방법 어떻게 하나요? 2 문정 2019.07.06 117
RMMV 파티별 아이템 구분 2 시풍 2018.01.17 93
RMMV 파티상태에서 전투에 나오지 않는 방법 4 만죠메군 2018.08.25 108
RMMV 파티에서 첫 번째 캐릭터가 액터 1이냐는 조건분기 하는 법 2 찬잎 2016.06.11 177
기본툴 사용법 RMMV 파티원 없이 시작해서 중간에 합류하는법 있나요? 2 제비알 2020.09.23 167
에러 해결 RMMV 파티원 추가를 했을때 메뉴창에서는 보이는데 걸어다니는게 안보입니다... ㅠㅠ 1 file 쬐깐이 2024.06.09 32
RMMV 파티원수를 4명으로 제한하고 싶습니다. 1 초코엘프 2018.09.22 172
Board Pagination Prev 1 ... 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 Next
/ 82