질문과 답변

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 12387
이벤트 작성 RMVX 몇번 이상 죽었을 때 이벤트 나오게하기 1 탓탓타이탄 2022.07.13 128
이벤트 작성 RMMV 그림표시를 루프하고싶습니다. 2 Graper 2022.07.12 116
스크립트 작성 RMVX 선택지 개수 확장하는 법 1 탓탓타이탄 2022.07.08 159
라이선스 기타 동양풍 호러게임 BGM 쬬릿스 2022.06.27 234
턴제 전투 RMMV 전투 시작 시 나오는 화면전환 효과를 바꾸고 싶습니다. 마이럼 2022.06.27 203
턴제 전투 RMMV 전투 화면에서 나오는 대사 위치를 수정하고 싶습니다. file 마이럼 2022.06.27 192
이벤트 작성 RMMV 선택지를 하나하나 삭제해나가고 싶습니다. 4 쬬릿스 2022.06.27 315
기타 기타 게임에다 바람을 만들었는데 1 무명시절 2022.06.26 183
플러그인 사용 RMMV 대화창의 위치를 마음대로 지정하고 싶습니다 file 납작만두 2022.06.24 152
기본툴 사용법 RMMV 맵 만들때 타일 질문 드립니다. 1 Graper 2022.06.23 85
기타 RMMV 다들 처음 공부 하실 때 2 도리도리도리 2022.06.22 161
기타 RMMV 아이템창 글씨 정렬 file 마이럼 2022.06.22 98
기본툴 사용법 RMMV 메뉴에 로드 버튼을 만들고싶습니다. 3 Graper 2022.06.21 203
기타 RMMV 뉴비입니다 7 도리도리도리 2022.06.21 115
이벤트 작성 RMMV 스위치 ON 상태일때 이벤트가 안나오게 하고싶습니다. 2 file Graper 2022.06.20 109
이벤트 작성 RMMV (MV) 캐릭터를 특정 장소를 다 확인하고 돌아오면 나타나게 할 수 있나요? 2 병아리모험 2022.06.18 111
기본툴 사용법 RMMV (MV) 아이템 흭득시 화면에 무슨 아이템 흭득했는지 나오게 하는거 어떻게하는건가요? 1 병아리모험 2022.06.17 103
이벤트 작성 RMMV (MV) 하나의 이벤트를 여러군데에 넣을 수 있나요? 4 병아리모험 2022.06.17 140
기본툴 사용법 RMMV 욕조나 변기 이런건 dlc로 구매해야만 있는건가요? 2 병아리모험 2022.06.17 174
기본툴 사용법 RMMV 이벤트 자동실행후 종료를 어떻게 해야하나요? 4 file 병아리모험 2022.06.16 129
Board Pagination Prev 1 ... 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 516 Next
/ 516