アイテムの性能の追加機能
ここのところ寡黙ぎみですが、時間があれば語るより作るようにしていて、それだけで終わっている感じです。実は、年明け前後に自分が何を考えていたかはっきり覚えていなくて、思い出す意味でもコメントを挟んでみることにしました。
古い機能の一部を復活させようとしています。先にまとめです。
大まかに分けて、アイテム性能を乱数決定する機能と、アイテム称号の二種類です。
- 装備アイテムの性能枠上限を撤廃(v1.70対応済み)
- 宝箱に出現アイテムを個別指定できる(v1.70対応済み)
- アイテムの性能を乱数で決定する機能(v1.70対応済み)
- アイテム称号の機能(予定)
- 上記に伴い、店の機能を更新
以下、いろいろ書いていますが、従来の機能は現在の設定方法のまま残ります。
装備アイテムの性能枠上限を撤廃
装備アイテムの性能枠は、これまで8個まででしたが制限が無くなりました。でもゲーム側の性能表示数には限りがあるので、性能をたくさん増やす機会はそれほど無いかもしれません。
それとオマケで、開発者向けのプレイ環境では、定義したアイテムの性能をゲーム中に確認できます。アイテム情報画面を開いて、性能欄の枠をクリックするとリストされます。まだ情報が少ないんですが、今後、もう少し複雑な情報を吐けるようにしていきたいです。
宝箱に出現アイテムを個別指定
これまで宝箱のアイテムは、4枠まで指定できて、出現候補はインデックスの範囲で指定していました。
出現候補アイテムは個別指定できるようになり、その形で指定する場合は、枠の上限がありません。従来の指定法も残されていますが、そちらは変わらず4枠までです。
性能自体が可変に
アイテム性能には定数または乱数を指定できますが、これをゲーム実行時に乱数決定できるようになりました。
乱数は従来、「2d6+3」とか「3/5」とかいったように「+AdB+C」「A/B」といった形がフォーマットになっています。これは今後も変わりません。その上で、以下の書式をアイテムの能力値性能に限り、サポートしています。
+[乱数]d[乱数]+[乱数] +[乱数]r[乱数]+[乱数] [乱数]/[乱数]
この形で、A,B,Cのところに任意で乱数を指定できます。プラス記号を置ける箇所には、従来通りマイナス記号も使えます。
ABC要素を乱数化するには、要素乱数を大カッコでくくります。以下は例です。
2d6+[3/5]
上の場合は、ゲーム中にアイテムを生成する際、「2d6+3」「2d6+4」「2d6+5」の3パターンの中からランダムで選ぶことになります。
例えば攻撃力性能について上のように設定すれば、質のいいもの悪いもの、ランダムでいろいろな種類が登場することになります。
次に、以下の二つの例です。定数なのか乱数なのかの違いがあります。
4/6 [4/6]
上側は従来の形です。能力値を4,5,6の間で常に変化させる乱数性能になります。
下側は新しい形です。アイテム生成時に4,5,6から一つを選び、アイテムに固定の性能を与えます。
指定方法がちょっと複雑なので、余力のある人しか利用できないかもしれませんが、従来の設定には影響を与えない書式にしたので、使っても無視してもご自由にどうぞということで。
店の商品の装備アイテム性能を固定化
商品の性能については、店単位で4通りから選べるようにしています。
- 商品の性能決定に乱数を適用
- 性能に最大値を適用した商品を並べる → 前述の攻撃力の例だと「2d6+5」の商品
- 性能に中間値を適用した商品を並べる → 前述の攻撃力の例だと「2d6+4」の商品
- 性能に最小値を適用した商品を並べる → 前述の攻撃力の例だと「2d6+3」の商品
この設定で、並べる商品について、最大性能・最小性能・平均性能のいずれかに絞ります。
アイテム性能に関するセーブデータの互換性問題
アイテム性能を乱数で決定する機能については、セーブデータの互換性問題がありますので、中の説明をご覧下さい。場所は、アイテム性能の乱数を入力する窓です。
アイテム称号
ここからは「アイテム称号」の予定の話になります。一部のゲームだと接頭辞(prefix)とか接尾辞(suffix)とかエゴとか呼ばれている機能です。
この機能は主に、アイテムとは別に定義する“称号”をアイテムに掛け合わせて、見かけ上多種のアイテムを作り出すための機能です。
例えば以下の3つのアイテムがあるとします。ここは従来と同じ形で用意します。
- 杖
- 剣
- 斧
上のアイテムに、以下のアイテム称号のいずれかをランダムで選び、組み合わせます。
この称号は、専用画面で準備します。
- しょぼい
- すごい
- 変わった
アイテムと、あとに示した称号のいずれかを、ゲーム中に自動で組み合わせて、一つのアイテムを作ります。
アイテムと称号が組み合わさることで、「しょぼい剣」とか「変わった杖」とかがいろいろ生まれます。称号なしのアイテムの場合は単に「剣」とか「斧」とかになります。
称号が組み合わさることで、称号に設定した性能リストをアイテム性能に連結することになります。
称号はカテゴリを増やし、二つ以上を組み合わせられる
称号はカテゴリを増やすことで、複数の称号を組み合わせることができます。例えば、新しいカテゴリに以下の3つを定義します。
- 木製の
- 鋼鉄の
- 黄金の
前のものと合わせて、「木製のしょぼい剣」とか、「黄金のすごい斧」とかが生まれます。
アイテム名に使う称号名の配置は、書式を指示することで決めます。
アイテム称号にはそれぞれ、装備アイテムと同じスタイルの性能を入力します。称号がついたアイテムは、称号の性能枠がアイテム自身のものに連結されます。
アイテム称号の他の機能
アイテム称号は性能枠を足すために付与しますが、他にも設定があります。
- 追加ステート
- 評価額の補正
- 重量の補正
- 容積の補正
- 使用回数の補正
要は、アイテムに称号がつくことで、重くなったり高価になったりするということです。
スタックアイテム以外のアイテムに対応
アイテム称号はスタックアイテム以外のアイテムに対応します。
といっても性能を補正しない場合には、価格と重さを変えるくらいしか使い道がありませんから、実質装備アイテム向けです。
本当は、使用時に称号が影響出るようにしたいです。
称号ランク
アイテム称号にはすべて「称号ランク」という整数値を与えます。称号ランクは、シナリオのどこかでアイテムの出現を指示する際に、称号の出現幅を絞る目的で使います。
例えば、以下の称号を定義したとします。
- しょぼい → 称号ランク1
- すごい → 称号ランク2
- 変わった → 称号ランク3
宝箱等、アイテムを出現させる設定では、「この宝箱には称号ランク1〜2を出現させる」というように、称号ランクの範囲を指示することで使います。ゲーム側では、指示された範囲の称号からランダムで選び、出現させるアイテムに付与します。
もし上の設定で、称号ランク1〜2を指示する出現ポイント(宝箱等)があったら、そこで出現するアイテムには「しょぼい(称号ランク1)」または「すごい(称号ランク2)」いずれかを選びます。
アイテム称号は、アイテムに付与しないこともできます。各アイテム出現ポイントでは、称号そのものを付与する率を指示します。
称号ランクの大小がそのまま性能に結びつくわけではありませんが、おそらくその目的で使うことが多くなると思います。
称号ランクの出現範囲指示の仕方
出現させるアイテムの称号ランクを絞る作業は、アイテム称号ルールにおいてとても大変そうです。なぜなら、あらゆるアイテムの出現ポイントで、付与する率と、ランクの範囲を指示する必要があるためです。
エネミードロップなどは、エネミー一体ごとに称号の範囲と率を指示する必要がありますから、大変な作業になるはずです。
そこで、能力値側で出現させる称号ランク範囲や称号出現率を決められるように、特殊能力値を追加するか、能力値や計算手順の指示方法を考えたいと思っています。
店に並べる称号つきアイテムの商品
アイテム称号つきのアイテムを店に並べることができます。並べる商品の数と、アイテムの種類と、称号の範囲について、ランダムで組み合わせるように指示します(特定の称号を付与するよう指示することは難しいです)。
以下は設定例です。これらは、従来の商品リストとは別枠で指示します。
- 商品出現数 → 6〜10
- 付与する称号カテゴリ → カテゴリ単位で指示
- 称号の出現率 → 90%(称号カテゴリ単位で指示)
- 付与する称号ランクの範囲 → 3〜6(称号カテゴリ単位で指示)
- 商品更新間隔時間 → 500(時間カウントで指示)
- 商品更新条件 → PCのレベルアップ
- 続けて商品アイテムリスト
このような感じで、店ごとに、出現する商品点数・アイテム称号カテゴリ・出現率・称号ランク範囲を指示します。
商品リストはゲーム開始時に決定するほか、定期的に更新します。条件は、時間で指示するか、来訪PCの最大レベル更新を契機にします。あとは計算手順を指示できるようになったときに、任意でプログラミングですね。
この形で指示した商品は、一度買うと無くなります。
古いアイテム称号機能は廃止
かなり前のバージョンにも、アイテム称号の機能がありました。編集画面が隠されているだけで、今でもゲーム側では処理していますが、いずれ古いアイテム称号の機能は廃止します。
課題
けっこう課題が出てきているので、アイテム称号についてはどのタイミングで出していくかまだ考え中です。
課題は、すべてを解決することはできないです。簡単なことではないので、無理だという前提で、妥協しながら出していくつもりです。
この辺の感覚は、理想を達成できないことを承知した上で表に出すことを決めた初代Desigeonのスタンスと変わらず、万能ではないけれど楽しく考えたり、弄ったりできそうなところを目指したいと思います。