【ウディタ講座】SRPGをつくろう! アイテム「使う」の実処理

この企画の作り方では、アイテムという項目で剣も薬草もその他の品物もいっしょに扱ってしまいます。

おなじ「使う」でも、イメージや処理の内容はかなり変わってくるでしょう。

まずはアイテムのおおまかな分類から考えていきます。

アイテムのカテゴリを考えて設定する

武器(装備)アイテム

使うコマンドは「装備」と表記したいところです。

武器カテゴリの下位カテゴリに「剣」や「槍」といった武器種を付けて、ユニットごとにその武器が使用可能かどうかを見ていくことになるでしょう。

性質上、杖と魔法もここに入ります。

装備可否の判定もまだ出来ていませんので、今はどんなユニットでもすべての武器が装備できる扱いで進めていきましょう。

薬などの消費アイテム

HPを回復する薬草や、各種能力値を底上げするドーピングアイテム全般がここに当てはまります。

使用者のHPやちからなどの各種パラメータ(CDBのデータ)を操作するもの、というおおきなくくりで考えてとらえています。

その意味では、「アビリティスロットに指定の値を代入する薬」は技能習得アイテムと位置付けることもできますね。

MEMO

この言い方に揃えるなら、武器は「使用者以外のユニット」に効果を及ぼすものだと言えます

特殊なイベントを起動するアイテム

CC(クラスチェンジ)アイテムが代表格ですね。

作りたいゲーム仕様によって、ここはかなりの幅が出る項目です。特定のマップの特定のマスでしか使えないアイテムなんてものも出てくるかもしれません。

持っているだけで効果を発揮するアイテム(「使う」無し)

持っているだけで特効を無効化するとか(〇〇の守り)、秘密のお店に入れる(メンバーズカード)などですね。

高値で売れるだけの売却専用アイテムも該当するかと思います。

MEMO

ティアリングサーガというゲームがあります。

FEライク……というには、過去にちょっと色々ありましたが、しかし筆者は大好きな作品です。

こちらもいろいろなアイテムのアイディアがあって面白いです。

  • 持っていると対応攻撃の威力を軽減する「盾」
  • 使用するとランダムで所持金が増える「金貨の袋」
  • いちどだけ死亡確定ダメージを無効化する「おまもり」

UDBで設定してみる

ものぐさなので子カテゴリであれこれまとめてしまっていますね。本当はもっと細分化したほうが良いかもしれません。

薬系であるユニットデータCDB操作の区分は、そのままCDBのIDと対応させておく方がラクです。それと区別する意味で、他の区分番号は-100とか、200以上と大きく開いているわけですね。

 

また、「使う」表記もアイテムごとに変えられるようにしています。

見えませんが、剣の「使う」表記欄は「装備」と書かれています。

とはいえ大半は「使う」でしょうから、UDB指定が空欄だったら自動的に「使う」と修正するようにしていきます。

換金専用の金塊も追加しました。捨てる表記設定は「不可」で、この場合は「捨てる」のみが出るようになっています。

道具使用のコモンを改修していく

子選択肢コモンを改修

子選択肢コモンの冒頭で、対象アイテムの詳細を拾って選択肢を可変するように。

左クリック時には、別に立てた「使う」の実処理コモンに情報を送っていきましょう。

使うの実処理コモン

上の図から呼び出されるコモンの骨子はこんな感じ。

イベント起動アイテムは細かく分岐をしてそれぞれ対応する別コモンイベントを呼び出すことになります。

ここでは、「武器の使用(装備)」と「薬の使用」を埋めていきましょう。

武器の使用(装備)

コモンの実例は後述するとして、理屈からみていきます。

FEライクでの装備を、もっとも簡単に考えるなら「いま装備している武器」とは「アイテムスロットの先頭にある使用可能な武器」のことです。

道具コマンドで装備を実行したアイテムはスロット1に移動する、と考えることができますね。

 

2ユニット間の指定スロットの中身(CDB値)を交換するコモンを作りましょう。

「装備したアイテムのスロット」と「スロット1」を入れ替えるように指定すればOK。

「2ユニット間」というのは、こうしておくと「アイテム交換」の実処理でも流用が効くからです。

短く見えますが、過去つくったコモンが資産になっていますね。

薬の使用

アイテムUDBの「威力/効果」の値を読み取って、子カテゴリで示しているCDBに加算。

おおまかな理屈としては、これでよいでしょう。

さらに次の留意点に対応すれば完璧ですね。

  • 能力値ごとに上限がある場合は、加算結果がそれを超えないようにする(HPがMHPを超えない、等)
  • アビリティスロット指定の場合は「加算」ではなく「代入」とする(というか専用の習得コモンを呼ぶ)
  • 処理内容べつに異なる演出をかける(画像や文字の表示)
  • 使用したアイテムを消去(使用回数の概念があるなら、回数マイナス1)

コモンの作例

 

できあがり

対象がHPのとき(使用アイテムが薬草のとき)は過去に作ったHPバーの変動コモンも呼び出せば、よりそれらしくなるでしょう。

それ以外のアイテム効果は、他のシステムが固まる都度、ここに戻ってきて調整……というくりかえしになりますね。

 

【ウディタ講座】SRPGをつくろう! まとめ