?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

현재 이리저리 뜯어보며 abs 비슷한거라도 만들겠다고 설치는 초보입니다.

 

일단은 어떤 인풋에따라 공격하는 sprite 나오는것(스프라이트_웨폰 사용), hud, 어떤 버튼을 눌렀을때 멤버가 바뀌는것, 까지 만들었습니다.

 

 

 

그런데 만들면서도 이리저리 소스를 긁어모으고 수정하다보니 배틀러, 액터, 캐릭터의 관계가 좀 모호하더라구요.

 

일단 제가 생각한것은요,

 

화면 맵상에 뿌려져서 조종하는것은  게임_캐릭터객체 이고, 턴제배틀에서 나오는 캐릭터는 게임_캐릭터 객체가 아니라 게임_배틀러

 

이며, 공격이미지와 데미지 같은 전투와 관련된 것은 게임_배틀러 객체에 있다고 이해했습니다.

 

따라서 abs를 만들기위해서 게임_배틀러에 구현되있는것들중 많은것을  게임_캐릭터상에도 구현해야하구요.

 

그런데 게임_액터 객체가 또 모호하더라구요. $gameParty의 멤버로 표현되는것은 액터객체들의 배열인데, 이부분이 캐릭터와 어떻게 매핑이되는지 상당히 헛갈립니다.

 

 

제가 짐작한 부분이 맞는지, 혹은 액터-배틀러-캐릭터 간의 관계를 설명해주셨으면해서 도움글을 부탁드립니다.

 

 

 

 

?
  • ?
    asd 2016.07.05 09:53

    MV와 MV의 스크립트에 대해서 잘 모르기 때문에 굉장히 안 좋은 댓글이 될 수 있겠지만, 그래도 댓글을 답니다. 질문에 대한 답이라기보다는 액션방식 구현에 관한 내용에 대해 썼습니다.

    huguduk님의 글을 제가 잘 이해했다면, MV의 기존 jrpg 턴 방식으로 구현되어있는 스크립트를 액션방식을 만들 때 활용하고자 하시는 것 같은데, 그것이 좋은 생각인지 모르겠습니다. 왜냐하면, 제 생각에 액션 방식과 jrpg의 턴 방식이 공유하고 있는 메카닉이 별로 없는 것 같기 때문입니다. 액션 방식의 메카닉으로는, 이동과 공격, 맞추거나 맞았는지 확인하는 것, 데미지와 죽음 처리, 적이나 주인공의 데이터 관리 정도가 있을겁니다. 여기서 물론 jrpg 턴 방식을 구현하기 위한 스크립트들(특히 적 데이터를 관리하는 부분이나 데미지를 입었을 때 보이는 효과같은 것)을 가져다가 어떻게 쓸 수 도 있겠지만, 액션방식을 처음 만들 때는 일단 별다른 효과 없이 주인공 캐릭터로 적들에게 다가가서 적이 죽을때까지 때려보는 시스템을 구현해 보는 것이 우선이라고 생각합니다.
    그러한 시스템을 구현하고자 한다면, 일단 huguduk님이 어떤 인풋에 따라 공격하는 스프라이트가 나오는 것을 구현하셨다고 하니, 그 스프라이트의 좌표와 이미지 크기를 갖고 다른 적 이벤트들과 충돌테스트를 해볼 수 있을 것 같습니다. 그리고 충돌이 검출되면 적이 데미지를 입어야 할 텐데, 맵에 있는 이벤트에 적용할 수 있는(예를들어, 데미지를 입는 그래픽이 뜨는 것) 간단한 함수나 메소드같은것을 만들어서 호출하면 될 것 같습니다.

    정리하자면, 액션 방식을 만들기 위해서, 일단 맵에 올라온 캐릭터들이나 이미지들 간의 충돌처리하는 부분과 간단하게 적 체력을 관리하는 부분을 만드는 것이 먼저이며, jrpg 방식의 스크립트에서 당장 가져다가 쓸만한 것은 없을 것 같다는 것이 제 생각입니다. 그러므로 지금 구현하셨다는 부분과, 맵에서 이벤트들의 위치를 알아내는 것 정도만 구현하여도, 일단은 간단한 액션방식을 구현할 준비가 된 것이라고 생각합니다. 그리고 이러한 과정에서, 액터, 배틀러, 캐릭터의 관계에 관한 이해는 별로 중요하지 않은 것 같습니다. 

    첫 문단에서 말씀드린 것처럼, 제가 MV와 MV의 스크립트에 대해서 잘 모르기 때문에 굉장히 어처구니없는 댓글이 될 수도 있겠지만, 그래도 다른 환경에서 간단한 슈팅게임 같은 것은 만들어 보았기 때문에 참고가 되지 않을까 해서 댓글을 남깁니다.
    그리고 혹시 도움말을 아직 안보셨다면, 액터, 배틀러, 캐릭터에 관해서 한번 살펴보는 것 도 좋을 것 같습니다. 해당 도움말 내용이 있는지는 모르겠지만요.

    괜히 당연한 내용을 장황하게 설명한건지도 모르겠습니다.

  • ?
    huguduk 2016.07.05 11:32
    답변감사합니다. 말씀 하신것처럼 실제 싸움이일어났을때의 모션이나 데미지가 입는방식, 그런것들 정도만 참고하기위해보고있습니다.
    다만 mv(mv뿐아니라 알만툴시스템에서는 비슷할거라 추측하는)에서 사용하는 액터, 캐릭터 같이 비슷한개념의 객체들이 혼동이 왔었습니다.
    예를들면 어떤 키를입력받으면 화면에서 조종하는 캐릭이 바뀌는것을 구현했는데, (정확히는 파티멤버 객체의 액터의순서를바꿔주는 방식으로 구현했는데 ) 왜 액터를 변경했는데 화면상의 게임 캐릭터가 변경됬는지 같은것들, 관계가 궁금했습ㄴ다.

    아무튼 좋은조언감사합니다!!
  • profile

    actor_structure.png

    제가 첨부한 그림은 브라우저 상에서 샘플 게임 페이지에 접속해서

     

    개발자도구에서 콘솔탭 메뉴에서 $gameParty.battleMembers()

     

    라고 입력해서 현재 전투멤버로 추가된 0번째 멤버의 정보를 스샷으로 뜬 겁니다.

     

     

    스샷을 살펴보시면 궁금해하셨던 부분들이 풀리실 것이라 생각합니다.

     

    _character~~ 형식의 변수들을 보실 수도 있고,

     

    _actor~~ 형식의 변수들을 보실 수도 있습니다.

     

    하지만 _battler~~ 형식의 변수들은 볼 수 없습니다.

     

     

    battler라는 개념은 실제적으로 정의되어 있는 개념이 아니라

     

    전투를 하고 있는 character - actor - 라고 보는 것이라 생각합니다.

     

     

    actor라는 개념은 또한 원본 객체에서 실행하는 함수들을

     

    살펴보시게 된다면 조금 더 이해를 하실 수 있습니다.

     

     

    스킬을 익히거나 잊고, 장비를 착용하거나 떼고 하는

     

    게임 속 캐릭터가 취하는 행동을 플레이어가 지시하는 대로

     

    연기하는 듯한 행동만을 할 수 있다는 의미에서의 actor라는

     

    말을 사용하고 있는 듯합니다.

     

     

    게임 회사에서 게임이라는 '시나리오'를 준 것이고

     

    플레이어는 영화에서의 감독으로서 각 캐릭터에게

     

    지시하여 원하는 방향으로의 연기를 연출해 가는

     

    방식으로 게임이란 것을 보고 있지 않을까 하고 생각해봅니다.

     

     

    아래는 actor객체에 있는 각종 실행함수 목록입니다.

     

    actor_structure_1.pngactor_structure_2.pngactor_structure_3.png

  • ?
    huguduk 2016.07.05 23:34
    말씀하신것처럼 배틀러는 상속받은 액터를 통해 전투를 하는 액터가 배틀러인 표현이되는것같습니다.

    게임플레이어 와 게임 액터간에 어떻게 묶여있는가가 조금 헷갈리기는 하는데


    Game_Player.prototype.refresh = function() {
    var actor = $gameParty.leader();
    var characterName = actor ? actor.characterName() : '';
    var characterIndex = actor ? actor.characterIndex() : 0;
    this.setImage(characterName, characterIndex);
    this._followers.refresh();
    };

    위와같은 코드를통해 액터를 참조하는것같기도하고..

    아무튼 많은도움이 되었네요. 지난번에이어 도움주셔서 감사합니다.
  • profile
    lklslel 2016.07.14 10:32
    Game_Player의 prototype들을 살펴보시면 아시게 되실 것이지만...

    Game_Player객체는 전반적인 게임 시스템. 즉, 게임을 즐기는 플레이어의

    의미가 아니라 컨트롤러 시스템에서 필요한 인풋의 입력에 따른 처리와

    각종 상태(차량에 탑승중인가?, 적과는 만났는가?, 충돌했는가?)에 대한

    전반적인 판정을 주로 하고 있습니다.


    그러다보니 기본적으로 필요한 데이터들에 접근할 필요가 있어서

    액터(캐릭터)나 차량 등의 객체 데이터를 참고하는 구조로 작성되었습니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
8468 질문에 뒤져봤는데 없어서 물어봅니다. 2 file 영몽 2016.07.12 636
8467 실행오류인데 해결방법 아시는분 있나요? 1 file Overwatch 2016.07.12 255
8466 네코 플레이어 질문있습니다. 2 프와레 2016.07.10 693
8465 캐릭터칩 문의 드립니다!! 적용 중심축을 수정하고 싶습니다!! 3 file 리베까 2016.07.08 398
8464 질문이 있습니다! MV 관련 오류입니다 2 DD434 2016.07.07 804
8463 초보 이벤트 관련 질문좀 드릴게요. 4 file 민호구 2016.07.06 596
» 게임 액터 - 배틀러 - 캐릭터의 관계 개념이 잘 잡히지 않습니다 ㅠ 5 huguduk 2016.07.04 614
8461 모바일로 만들때 질문 1 지금그러니 2016.07.04 226
8460 모바일전용 아이템 레벨 영웅 수집형 게임을 만들고싶습니다. 3 켄시안 2016.07.03 631
8459 플러그인에 손을 대보고 싶은데 어떤거에 손을 대야하나요 3 kkjjww0916 2016.07.01 600
8458 게임 제작 초보자입니다. 6 강철보디 2016.06.28 33063
8457 천무님..ㅜㅜ 4 고월 2016.06.28 682
8456 MV 플레이시 오류. 오류문구 : uncaught typeerror: connot read property 'width' of null 9 file 리베까 2016.06.28 3649
8455 mv에서 교역시스템같은걸 구현하고 싶은데 3 럽앤피 2016.06.27 639
8454 MV제작 화면 크기가;; 2 file Pawn 2016.06.26 797
8453 Fixnum into string 오류는 왜 발생하는건가요? 죠죠의기묘한파문질주 2016.06.24 154
8452 고요한허무의서 ! 1 Wyeheb 2016.06.23 399
8451 입문자입니다. 방향 잡는데 도움이 필요합니다. 7 알알못 2016.06.22 1351
8450 RPG메이커 vx ace dlc를 받았습니다... 그런데 이거 어떻게 적용시키죠? 2 제이군 2016.06.21 1140
8449 쯔꾸르 구동오류 2 레카이 2016.06.19 1705
Board Pagination Prev 1 ... 14 15 16 17 18 19 20 21 22 23 ... 442 Next
/ 442






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)