일반게임

RPG Maker MV(알만툴 MV) 스크립트 단어 정리

K66Google 2016. 10. 10. 10:11

RPG Maker MV (RPG ツクールMV , RPG만들기 MV)의 최대 난관인 스크립트 단어를 일부 정리해보았다.


참고 사이트는

http://ktnhmv.jugem.jp/?eid=50
http://ameblo.jp/rpgmaker1892/entry-12103505229.html
http://ameblo.jp/rpgmaker1892/entry-12102649926.html

http://rsakane.net/gamedev/?p=390 


이다.


알만툴 MV에서 사용되는 대표 변수의 종류는 이렇게 있다.


변수 대표명

 사용되는 메소드

 비고

 $dataActors

 .id .battlerName .characterIndex .characterName

 .classId .equips .faceIndex .faceName

 .traits ( .code .dataId .value )

.initialLevel .maxLevel .name .nickname .note .profile

 액터

 $dataClasses

 .id .expParams

 .traits ( .code .dataId .value )

 .learnings ( .level .note .skillId )

 .name .note .params

 직업

 $dataSkills

 .id .animationId

 .damage ( .critical .elementId .formula .type .variance )

 .description

 .effects ( .code .dataId .value1 .value2 )

 .hitType .iconIndex .message1 .message2 .mpCost

 .name .note .occasion .repeats .requiredWtypeId1

 .requiredWtypeId2 .scope .speed .stypeId .successRate

 .tpCost .tpGain

 스킬

 $dataItems

 .id .animationId .consumable

 .damage ( .critical .elementId .formula .type .variance )

 .description

 .effects ( .code .dataId .value1 .value2 )

 .hitType .iconIndex .itypeId .name .note .occasion

 .price .repeats .scope .speed .successRate .tpGain

 아이템

 $dataWeapons

 .id .animationId .description .etypeId

 .traits ( .code .dataId .value ) .iconIndex .name .note

 .params .price .wtypeId

 무기

 $dataArmors

 .id .atypeId .description .etypeId

 .traits ( .code .dataId .value )

 .iconIndex .name .note .params .price

 방어구

 $dataEnemies

 .id

 .actions ( .conditionParam1 .conditionParam2

.conditionType .rating .skillId )

 .battlerHue .battlerName

 .dropItems ( .dataId .denominator .kind )

 .exp

 .traits ( .code .dataId .value )

 .gold .name .note .params

 적 캐릭터

 $dataTroops

 .id

 .members ( .enemyId .x .y .hidden )

 .name

 .pages [ .conditions ( .actorHp .actorId .actorValid

 .enemyHp .enemyIndex .enemyValid .switchId .switchValid

 .turnA .turnB .turnEnding .turnValid ) 

.list (code .indent .parameters )  .span ]

 적 그룹

 $dataStates

 .id .autoRemovalTiming .chanceByDamage .iconIndex

.maxTurns .message1 .message2 .message3 .message4

.minTurns .motion .name .note .overlay .priority

.releaseByDamage .removeAtBattleEnd .removeByDamage

.removeByRestriction .removeByWalking .restriction

.stepsToRemove

 .traits ( .code .dataId .value )

 상태

 $dataAnimations

 .id .animation1Hue .animation1Name .animation2Hue

.animation2Name .frames .name .position

.timings [ .flashDuration .flashScope .frame

.se (.name .pan .pitch .volume) ]

 애니메이션

 $dataTilesets

 .id .flags .mode .name .note .tilesetNames

 타일셋

 $dataCommonEvents

 .id

 .list ( .code .indent .parameters )

 .name .switchId .trigger

 커먼 이벤트

 $dataSystem

     .airship: {
        .bgm: {
            .name
            .pan 
            .pitch 
            .volume 
        }
        .characterIndex 
        .characterName 
        .startMapId 
        .startX 
        .startY 
    }
    .armorTypes []
    .attackMotions: {
        .type 
        .weaponImageId 
    }[]
    .battleBgm: {
        .name 
        .pan 
        .pitch 
        .volume 
    }
    .battleback1Name 
    .battleback2Name 
    .battlerHue 
    .battlerName 
    .boat: {
        .bgm: {
            .name 
            .pan 
            .pitch 
            .volume 
        }
        .characterIndex 
        .characterName 
        .startMapId 
        .startX 
        .startY 
    }
    .currencyUnit 
    .defeatMe: {
        .name 
        .pan 
        .pitch 
        .volume 
    }
    .editMapId 
    .elements []
    .equipTypes []
    .gameTitle 
    .gameoverMe: {
        .name 
        .pan 
        .pitch 
        .volume 
    }
    .locale 
    .magicSkills []
    .menuCommands []
    .optDisplayTp 
    .optDrawTitle 
    .optExtraExp 
    .optFloorDeath 
    .optFollowers 
    .optSideView 
    .optSlipDeath 
    .optTransparent 
    .partyMembers []
    .ship: {
        .bgm: {
            .name 
            .pan 
            .pitch 
            .volume 
        }
        .characterIndex 
        .characterName 
        .startMapId 
        .startX 
        .startY 
    }
    .skillTypes []
    .sounds: {
        .name 
        .pan 
        .pitch 
        .volume 
    }[]
    .startMapId 
    .startX 
    .startY 
    .switches []
    .terms: {
        .basic []
        .commands []
        .params []
        .messages: {
            .possession 
            .expTotal 
            .expNext 
            .saveMessage 
            .loadMessage 
            .file 
            .partyName 
            .emerge 
            .preemptive 
            .surprise 
            .escapeStart 
            .escapeFailure 
            .victory 
            .defeat 
            .obtainExp 
            .obtainGold 
            .obtainItem 
            .levelUp 
            .obtainSkill 
            .useItem 
            .criticalToEnemy 
            .criticalToActor 
            .actorDamage 
            .actorRecovery 
            .actorGain 
            .actorLoss 
            .actorDrain 
            .actorNoDamage 
            .actorNoHit 
            .enemyDamage 
            .enemyRecovery 
            .enemyGain 
            .enemyLoss 
            .enemyDrain 
            .enemyNoDamage 
            .enemyNoHit 
            .evasion 
            .magicEvasion 
            .magicReflection 
            .counterAttack 
            .substitute 
            .buffAdd 
            .debuffAdd 
            .buffRemove 
            .actionFailure 
            .bgmVolume 
            .bgsVolume 
            .meVolume 
            .seVolume 
            .alwaysDash 
            .commandRemember 
        }
    }
    .testBattlers: {
        .actorId 
        .equips []
        .level 
    }[]
    .testTroopId 
    .title1Name 
    .title2Name 
    .titleBgm: {
        .name 
        .pan 
        .pitch 
        .volume 
    }
    .variables []
    .versionId 
    .victoryMe: {
        .name 
        .pan 
        .pitch 
        .volume 
    }
    .weaponTypes 
    .windowTone []
}

 시스템

 $dataMapInfos

 .id .expanded .name .order .parentId .scrollX

.scrollY

 맵 목록 정보

 $dataMap

    .autoplayBgm
    .autoplayBgs
    .battleback1Name
    .battleback2Name
    .bgm: {
        .name
        .pan
        .pitch
        .volume
    };
    .bgs: {
        .name
        .pan
        .pitch
        .volume
    };
    .disableDashing
    .displayName
    .encounterList: {
        .regionSet
        .troopId
        .weight
    }[];
    .encounterStep
    .height
    .note
    .parallaxLoopX
    .parallaxLoopY
    .parallaxName
    .parallaxShow
    .parallaxSx
    .parallaxSy
    .scrollType
    .specifyBattleback
    .tilesetId
    .width
    .data
    .events: {
        .id
        .name
        .note
        .pages: {
            .conditions: {
                .actorId
                .actorValid
                .itemId
                .itemValid
                .selfSwitchCh
                .selfSwitchValid
                .switch1Id
                .switch1Valid
                .switch2Id
                .switch2Valid
                .variableId
                .variableValid
                .variableValue
            };
            .directionFix
            .image: {
                .tileId
                .characterName
                .direction
                .pattern
                .characterIndex
            }
            .list: {
                .code
                .indent
                .parameters
            }[];
            .moveFrequency
            .moveRoute: {
                .list: {
                    .code
                    .parameters
                }[];
                .repeat
                .skippable
                .wait
            };
            .moveSpeed
            .moveType
            .priorityType
            .stepAnime
            .through
            .trigger
            .walkAnime
        }[];
    }[];
}

 맵 정보

 $gameTemp

 .reserveCommonEvent .isPlaytest

.clearDestination .isDestinationValid

.destinationX .destinationY

.isCommonEventReserved .clearCommonEvent

 

 $gameSystem

 .isSideView .isCJK .isEncounterEnabled

.saveWalkingBgm .replayWalkingBgm

.playtime .saveCount .battleCount .winCount

.escapeCount .setBattleBgm .setVictoryMe

.disableSave .enableSave .disableMenu

.enableMenu .disableEncounter .enableEncounter

.disableFormation .enableFormation

.setWindowTone .setDefeatMe .saveBgm

.replayBgm

 

 $gameScreen

 .startShake .startFlashForDamage .startFadeOut

.startFadeIn .startTint .startFlash .startShake

.showPicture .movePicture .rotatePicture

.tintPicture .erasePicture .changeWeather

 

 $gameTimer

 .isWorking .seconds .start .stop

 타이머

 $gameMessage

 .newPage .add .isBusy .setFaceImage

.setBackground .setPositionType

.setChoices .setChoiceBackground

.setChoicePositionType .setChoiceCallback

.setNumberInput .setItemChoice .setScroll

 문장 표시

 $gameSwitches

 .value .setValue

 

 $gameVariables

 ._data .value .setValue

 변수

 $gameSelfSwitches

 .value .setValue

 

 $gameActors

 .actor

* .actor 밑의 메소드는 $data.... 시리즈의 메소드를 따름.

 $gameParty

 .inBattle .hasItem .consumeItem .gainItem

.loseItem .equipItems .members

.battleMembers .steps .hasDropItemDouble

.highestLevel .hasGoldDouble .leader

.increaseSteps .onPlayerWalk .hasEncounterNone

.hasEncounterHalf .maxBattleMembers

.gold .numItems .size .steps .gainGold .addActor

.removeActor

 

 $gameTroop

 .members .turnCount .makeUniqueNames

 

 $gameMap

 .requestRefresh .roundXWithDirection

.roundYWithDirection .isValid .isPassable

.eventsXyNt .boat .ship .adjustX .adjustY

.tileWidth .tileHeight .roundX .roundY .isLadder

.isBush .terrainTag .regionId .xWithDirection

.yWithDirection .deltaX .deltaY .width .distance

.mapId .setup .vehicle .tileWidth .tileHeight

.setDisplayPos .encounterStep .encounterList

.isEventRunning .eventsXy .isDashDisabled

.scrollDown .scrollLeft .scrollRight .scrollUp

.setupStartingEvent .airship .isCounter .isBush

.isAnyEventStarting .isDamageFloor .mapId

.isBoatPassable .isShipPassable .isAirshipLandOk

.eventsXyNt .isScrolling .event .startScroll

.refreshIfNeeded .eraseEvent .enableNameDisplay

.disableNameDisplay .changeTileset

.changeBattleback .changeParallax .terrainTag

.eventIdXy .tileId .regionId

* .airship .boat .ship 밑의 메소드

( .posNt .pos )

 $gamePlayer

 .isNormal .isOnDamageFloor .refresh .followers

.realMoveSpeed .opacity .blendMode

.hasWalkAnime .hasStepAnime .isDirectionFixed

.isTransparent .realMoveSpeed .isJumping

.deltaXFrom .deltaYFrom .x .y .areFollowersGathered

.isCollided .pos .isTransferring .areFollowersGathering

.vehicle .makeEncounterCount .reserveTransfer

.getOnOffVehicle .setTransparent .showFollowers

.hideFollowers .gatherFollowers .makeEncounterTroopId

.makeEncounterCount

 

 $testEvent

 없음

 


이 정도인 것 같다.


아래는 게임 내에서 변수를 표현하는 예시 표이다. (테스트해보지 않아서 안될수도 있음)


구분 알만툴 상에서 스크립트 상에서 비고

 액터 이름

 \n[1]

 $gameActors.actor(1).name();  1번 캐릭터 기준
 액터 칭호  

 $dataActors[1].nickname

 
 액터 직업      

 액터 초기레벨(레벨)

 

 $gameActors.actor(1).level();

 
 액터 최고레벨    $dataActors[1].maxLevel  
 액터 설명    $dataActors[1].profile  
 액터 현재 경험치    $gameActors.actor(1).currentExp();
 
 액터 현재 HP    $gameActors.actor(1).hp  

 액터 현재 MP

   $gameActors.actor(1).mp  

 액터 최대 HP

   $gameActors.actor(1).param(0)  

 액터 최대 MP

   $gameActors.actor(1).param(1)  

 액터 공격력

   $gameActors.actor(1).param(2)  
 액터 방어력    $gameActors.actor(1).param(3)  
 액터 마법공격력    $gameActors.actor(1).param(4)  
 액터 마법방어력    $gameActors.actor(1).param(5)  

 액터 민첩성

   $gameActors.actor(1).param(6)  

 액터 운

   $gameActors.actor(1).param(7)  

 액터 TP

   $gameActors.actor(1).tp  

 액터 메모

 

 $dataActors[1].note

 

 

 

 

 

 아이템 소지개수

   $gameParty.numItems($dataItems[1])

 1번 아이템 기준

 무기 소지개수

   $gameParty.numItems($dataWeapons[1])  
 방어구 소지개수    $gameParty.numItems($dataArmors[1])  

 

     

 적 캐릭터 HP

   $gameTroop.members()[0].hp

 적 그룹 내의 맨 처음 적을 0으로 표기.

 적 캐릭터 MP

   $gameTroop.members()[0].mp  

 적 캐릭터 최대 HP

   $gameTroop.members()[0].param(0)  

 적 캐릭터 최대 MP

   $gameTroop.members()[0].param(1)  

 적 캐릭터 공격력

   $gameTroop.members()[0].param(2)  
 적 캐릭터 방어력    $gameTroop.members()[0].param(3)  

 적 캐릭터 마법공격력

   $gameTroop.members()[0].param(4)  

 적 캐릭터 마법방어력

   $gameTroop.members()[0].param(5)  
 적 캐릭터 민첩성    $gameTroop.members()[0].param(6)  
 적 캐릭터 운    $gameTroop.members()[0].param(7)  
 적 캐릭터 전리품    $dataEnemies[1].dropItem[0].dataId

 1번 적 캐릭터의 첫번째(0) 전리품을 설정

 적 캐릭터 전리품 확률 분모    $dataEnemies[1].dropItem[0].denominator  
       
       

 X좌표 위치

   this.character(0).x  음수(-1): 플레이어 / 0: 해당 이벤트 / 1 이상: 이벤트ID

 Y좌표 위치

   this.character(0).y  
 방향    this.character(0).direction()  
 화면X    this.character(0).screenX()
 
 화면Y    this.character(0).screenY()  
       

 파티

 \p[1]

 $gameParty.members()[1]

 파티의 첫 번째 멤버 = 1 ?

 맵 ID    $gameMap.mapId()  
 파티 멤버 수    $gameParty.size()  
 소지금  \$  $gameParty.gold()  

 걸음 수

   $gameParty.steps()  
 플레이 시간    $gameSystem.playtime()  
 타이머    $gameTimer.seconds()  
 세이브 횟수    $gameSystem.saveCount()  
 전투 횟수    $gameSystem.battleCount()  
 승리 횟수    $gameSystem.winCount()  
 도주 횟수

 

 $gameSystem.escapeCount()  
       

 변수 확인

 \v[1]

 $gameVariables.value(1)

 1번 변수 값 확인

 변수 입력    $gameVariables.setValue(1, 500)  1번 변수 값을 500으로 변경
       
 난수 발생    Math.floor( Math.random() * 101)

 0~100까지의 난수 발생

       
 아이템 이름    $dataItems[1].name  1번 아이템의 이름
 적 캐릭터 이름    $dataEnemies[1].name  1번 적 캐릭터의 이름