【サイトについて】
* RPGツクールMVを使った、ゲームを一層楽しくするためのアイディアや、豆知識、プラグインなどを紹介していきます。あくまで個人の考えに基づく記事ですので、参考程度にお読みいただければ幸いです。
<< シンボルエンカウントに挑戦 | main | セーブデータにマップ名などを表示する >>
スポンサーサイト
0

    一定期間更新がないため広告を表示しています

    | - | |- |
    色んな値を変数に入れよう!
    0
      「変数の操作」をする際、「ゲームデータ」を選択すると、各アイテムの所持数やキャラクターのレベル、所持金、座標、歩数、戦闘回数など非常に色んな値を代入する事が出来ますよね。

      しかしここに無い項目を扱いたい、というケースがしばしばあります。

      ゲームデータのチェックの下に、「スクリプト」という項目があるのはお気づきでしょうか? これをうまく使うことで、本来は代入出来ない項目を変数に入れることが出来るんです。
      その一例を幾つかご紹介したいと思います。

      ■キャラクターのTP
      むしろ何でデフォルトで無いんだ、って思うんですが、本体機能では代入する事は出来ません。
      戦闘イベントなどでTPが一定数以上になったらTPを使った必殺技のチュートリアルをコモンイベントで発生させたい、なんて事もあるでしょう。そういう場合は、「変数の操作」で「スクリプト」を選び、以下のスクリプトを書いてください。
      $gameActors.actor(アクターID).tp

      これでTPを変数に入れることが出来ます。
      標準では代入出来ない項目は、スクリプトで代入が出来るのです。


      ■キャラクターの最大レベル
      特殊な例かも知れませんが、経験値をもらうイベントなどで「あら、貴方のレベルは20までのはずよ。それ以上は上がらないけどいい?」みたいな事を言わせたいとしますよね。ゲームデータでは最大レベルを取得できないので、これもスクリプトを用います。

      $dataActors[アクターID].maxLevel

      ( )ではなく[ ] の中にIDを入れてください。これでアクターの最大レベルを変数に入れる事が出来ます。
      ちなみに初期レベルを取得したい場合はmaxLevelをinitialLevelに変更してください。


      ■キャラクターの二つ名やプロフィール、メモ欄の内容
      ところで「変数」に入れられるのは数値だけ・・なんて思っていませんでした?
      「変数」は「数」って言うぐらいだから日本語や英語を入れる事は出来ないだろ?なんて思っている方それは間違いです。

      はーい日本語も問題なく入れられちゃいます!

      キャラクターの二つ名が「輝きの剣士」だったとして、スクリプトに
      $dataActors[アクターID].nickname
      と入れましょう。



      戦闘の文章表示でこの変数を表示させてみましょうか。



      敵さんに称号を喋らせることが出来ました。



      プロフィールの文章の取得は
      $dataActors[アクターID].profile
      です。



      えらく説明口調なコウモリですが、人物紹介などでは使えますよね。
      ちなみに $dataActors[アクターID].note でメモ欄の内容もそのまんま取得できますよ。
      「変数に日本語が入る」という事に気付けば創作の幅がぐんと広がりますよね。そもそも「加算」や「減算」なんていう単語が目に飛び込むから数字しか入れちゃダメなのかな?とか思ってしまうんですよね。

      さて、ちょっと難しくなります。
      応用編です。

      ■敵のドロップアイテム情報を表示させる
      $dataActorsが味方の情報だとすると、モンスターの情報を取得するには??
      そう、$dataEnemies[モンスターID] を使います。
      色んな情報が取得出来て、色んな例を書きたい所ではありますが、そろそろ応用させていきましょうか。

      例えば「モンスターのドロップアイテム名を表示させたい」としますよね。
      「コウモリはポーションを1/3の確率で落とすらしいですよ!」なんて言わせてみても面白いかも知れません。

      $dataEnemies[モンスターID].dropItem[0].dataId
      これでその敵キャラリストの1番目にセットされているドロップアイテムのアイテムIDが取得できます。

      $dataEnemies[モンスターID].dropItem[0].denominator
      これが確率が格納されている変数です。1/xのxですね。
      普通に設定していると1/xの1は固定なので、以上2つの値さえ取れればドロップアイテム情報は表示させられます。

      「よし、これで表示できるんだな」と言いたい所なのですが、このままだとドロップアイテムIDが表示されるだけです。「1/3の確率で3を落とします!」なんて言われても「は?」ってなっちゃいますよね。
      そこで、アイテムIDをアイテム名に変える、という処理を加えなければなりません。

      $dataItems[アイテムID].name

      で、そのアイテムIDのアイテム名が取得できますので、アイテムIDの部分に上の構文を丸ごとカッコで入れます。

      $dataItems[$dataEnemies[モンスターID].dropItems[0].dataId].name

      変数の中に変数を入れるメージですね。

      ちなみに取得した情報を使い回さない場合は、変数を使う必要は全くありません。
      変数を使えば、文章の表示の制御文字 ¥V[変数ID] で取得できるというだけの話ですので。

      キャライベントを作成し、イベントコマンド「スクリプト」を使ってそのまま入れてもOKです。

      $gameMessage.add($dataEnemies[1].name+"は");
      $gameMessage.add($dataItems[$dataEnemies[1].dropItems[0].dataId].name+"を");
      $gameMessage.add("1/"+$dataEnemies[1].dropItems[0].denominator+"の確率で落とすわ。");

      こう書くと、



      てな感じで、情報屋さんの出来上がりです。
      モンスターの名前が変わったり、落とすアイテムや確率が変わった時には、わざわざ「文章の表示」から固定値を書くより便利ですよね。

      いかがでしょうか。変数に日本語が代入できたり、データベースの情報が取得できると分かれば、かなり面倒な処理が半減されると思います。ぜひ色々お試しください。

      | RPGツクールMV技術情報 | 09:47 |- |
      スポンサーサイト
      0
        | - | 09:47 |- |
        PR