設計を見直そう6、まとめのページを作りました。

まとめページ自体は5月の頭から置いてあったのですが、そろそろ過去記事のリライトしたいなって。
思い出したらそれはもう気になって気になって。
仕方がないので過去記事のリライトをしていたらこの時期まで日にちが空いてしまいました。
まだまだ直したい所はいっぱいですが、今後もちいさくリライトしよう。

まとめページの方はトップのリンクからTPRGさん1号メモのページへ飛ぶことができます。
何もないただのメモなので、面白いことは書いていないですが。
 
 
設計の見直しも6回目。

どうやったら現行の作りで問題がないことがわかるかの検討です。
RPGのロールプレイとかネタっぽいですが、想定されるシナリオ用意して、それがどのように実現できるかを書いてみるのがよいかなと思いました。

そこで確認する内容は。
例えばNPCと会話するには「どうやってセリフを選んで」、「どこからデータを引っ張ってきて」、「どこに表示するのか?」のように確認します。

その際に使われる仕組みは検討された中の仕組みで実現できるのか。
矛盾する箇所がないかの確認と、実現できない問題の割り出しを行います。

まず思いつくシナリオをばーっと、書いてみます。
ええと、RPGだから・・。

01.新規スタートができる
02.ロード・スタートができる
03.ゲームがクリアできる
04.場所の移動ができる
05.場所の状態が変化する
06.NPCと会話ができる
07.NPCの会話が変化する
08.アイテムが入手できる
09.アイテムが利用できる
10.アイテムを装備できる・装備から外せる
11.アイテムを移動できる(キャラ間・キャラと倉庫間)
12.お店で買い物ができる
13.お店の商品が変化する
14.施設が利用できる
15.キャラクターが作れる・削除できる
16.キャラクターをパーティーに加える・外すことができる
17.NPCがパーティーに参加する・脱退する

このくらいが基本かな?
ちょっと大変そうですが、意外と数は少ないかも。
1つずつ解決していきます。
 
 
01.新規スタートができる
いきなり難しいかも。

まずTRPGさん1号は「場所」をベースにデータを管理します。
データ上は「場所」に「環境」や「ひと」、「施設」が所属します。
所属というのは「場所」というカゴの中に入るもの、という意味です。

そこから考えると。
まずスタート時点にはどこにいるのか?という意味での「場所」。
まさにスタート地点が必要になります。

次に「場所」に含まれる「環境」や「ひと」や「施設」に所属するデータも必要になります。

「環境」には「天候」や「風向」や「地形」が含まれます。
「ひと」には「キャラ構成」や「会話」が含まれます。
「施設」には「サービス」が含まれます。

「天候」は気象情報を表現した情報になります。
「風向」は風の向きを表現した情報になります。
「地形」は足元を表現した情報になります。
「キャラ構成」はあらかじめ用意されたNPC向けのキャラ・データになります。
「会話」は、その人物が話す内容の文字情報になります。
「サービス」は、施設が提供する機能の内容になります。

「施設」が提供する機能の内容とは、
「アイテム売買」や「宿泊施設」や「移動手段」や「倉庫」であったりします。

「アイテム売買」では「売りリスト」と「買いリスト」を用意して、プレイヤーにアクションとして選択してもらいます。
「売りリスト」から購入アイテムを選んだ場合、指定の金銭を失い、アイテムを入手します。
「買いリスト」から売却アイテムを選んだ場合、所有するアイテムを失い、指定の金銭を入手します。

「宿泊施設」では「売りリスト」を用意して、プレイヤーにアクションとして選択してもらいます。
「売りリスト」から宿泊プランを選んだ場合、キャラクターのステータスと時刻情報が更新され、指定の金銭を失います。

「移動手段」では「売りリスト」を用意して、プレイヤーにアクションとして選択してもらいます。
「売りリスト」から移動先を選択した場合、場所とキャラクターのステータスと時刻情報が更新され、指定の金銭を失います。

「倉庫」ではキャラクターと倉庫間でのアイテムの移動を、プレイヤーにアクションとして選択してもらいます。
 
 
必要なもの一覧。
・スタート地点の「場所」データ
・スタート地点で使う「場所」向けの「環境」データ
・スタート地点で使う「場所」向けの「ひと」データ
・スタート地点で使う「場所」向けの「施設」データ
・スタート地点で使う「環境」向けの「天候」データ
・スタート地点で使う「環境」向けの「風向」データ
・スタート地点で使う「環境」向けの「地形」データ
・スタート地点で使う「ひと」向けの「キャラ構成」データ
・スタート地点で使う「ひと」向けの「会話」データ
・スタート地点で使う「施設」向けの「サービス」データ

「場所」データの定義。
・場所ID
・名前(文字列)
・説明文(文字列)
・環境データのID
・ひとデータのID
・施設データのID

「環境」データの定義。
・環境ID
・天候データのID
・風向データのID
・地形データのID

「ひと」データの定義。
・ひとID
・キャラ構成データのID
・会話データのID

「施設」データの定義。
・施設ID
・名前(文字列)
・説明文(文字列)
・サービスのID
・売りリストのID
・買いリストのID

「天候」データの定義。
・天候ID
・気温(0=未設定/1=とても低い/2=低い/3=普通/4=高い/5=とても高い)
・雲の量(0=未設定/1=なし/2=小/3=中/4=大)
・雨の量(0=未設定/1=なし/2=小/3=中/4=大)
・雷の量(0=未設定/1=なし/2=小/3=中/4=大)
 メモ:
 ・気温が1の時に雨の量が2以上の場合は雪という表現になる
 ・雨の量が2以上、雷の量が2以上の場合は雷雨という表現になる
 ・雲の量が2以上の場合、上空からの視界が遮られるような表現になる

「風向」データの定義。
・風向ID
・風の量(0=未設定/1=最小/2=小/3=中/4=強/5=最強)
・風の方向(0=未設定/1=向かい/2=送り)
 メモ:
 ・風の方向はニオイが相手に届くか、相手から届くかの表現に使われる
 ・風の方向は推進力を持つ道具や手段に影響を与える表現に使われる

「地形」データの定義。
・地形ID
・形式(0=未設定/1=地面/2=水上/3=水中/4=空中)
・遮蔽(0=未設定/1=なし/2=小/3=中/4=大/5=特大)
 メモ:
 ・遮蔽が2以上の場合、視界を遮るものがあり、身を隠せる場所があるという表現になる

「キャラ構成」データの定義。
・キャラ構成ID
・名前(文字列)
・顔立(文字列)
・瞳(文字列)
・髪型(文字列)
・体格(文字列)
・性別(0=未設定/1=男/2=女/3=無)
・年齢(0=未設定/1~65535)
・服装(文字列)
・所持アイテムのID x 10
・所持金(数値)

「会話」データの定義。
・会話ID
・内容(文字列)

「サービス」データの定義。
・サービスID
・形式(0=未設定/1=店/2=宿泊/3=移動/4=倉庫)

「売りリスト」データの定義。
・売りリストID
・販売するアイテムのID x 10
・販売するアイテムの売り値 x 10

「買いリスト」データの定義。
・買いリストID
・買取するアイテムのID x 10
・買取するアイテムの買い値 x 10

「アイテム」データの定義。
・アイテムID
・名前(文字列)
・説明文(文字列)
・種類(0=未設定/1=消耗品/2=道具/3=武器/4=防具/5=装飾品)
・部位(0=未設定/1=頭部/2=胴/3=腕/4=足)
・変化(0=未設定/1=上昇/2=減少/3=付与/4=解除/5=移動)
・効果(0=未設定/1=物理/2=精神/3=エネルギー)
・対象(0=未設定/1=じぶん/2=パーティー単体/3=パーティー全体/4=敵単体/5=敵全体)
・回数制限(0=未設定/1=あり/2=なし)
・利用可能数(数値)
・成功確率(数値)
・破損確率(数値)
・状態(0=未設定/1=未鑑定/2=破損/3=良好)
・装備制限(0=未設定/1=装備可能/2=装備不可能)
・装備状態(0=未設定/1=未装備/2=装備中)
・性別制限(0=未設定/1=なし/2=男のみ/3=女のみ/4=無のみ)
・職業制限(0=未設定)※職業の検討が必要
 
 
時間いっぱいかけて書いてみましたが、
これだと「どこからデータを引っ張ってきて」しか定義できていないです。
ワークなのか、固定データなのかの概念もあった方がよいかも。
また、「どうやってセリフを選んで」「どこに表示するのか?」の部分が抜けています。

他にアイテムの定義を埋めるのは戦闘に関する仕様と、職業に関する仕様を決めないといけなさそうです。
それらが決まっていないと、アイテムを使用した際に更新されるステータスの定義や装備制限などが決まりません。
これは今後の課題かな?
ひとまずアイテムの定義は、売買と補完先の移動に関するものを先に固めるようにして進めます。

次回も引き続き「01.新規スタートができる」の確認作業。
「どうやってセリフを選んで」「どこに表示するのか?」の部分を中心にまとめて行こうと思います。

がんばろう。