■サイト[SilverSecond]トップ
■開発日誌トップ
■ 2008/12/05 (金)  アイテムの情報 ■
某保険屋さんのアヒルちゃんが、
そろそろサンタ帽かぶる頃なんじゃないかと思いつつ、
前を通るたびにかぶってなくて落胆の日々を送っているウルフです。
ちなみにそのアヒルちゃん、夏は麦わら帽子かぶって
虫取り網を背中に背負っていました。



それはともかくここ最近はウディタの修正やら自動車学校やら何やらで忙しい日々です。
開発はあんまり進んでません、というか仕様を固めた部分はだいたい作りきったので、
また仕様の部分から考えなければいけないことがほとんどになりました。
次からマップ地区(仮)紹介でもしようかなあと思っています。

ということで、とりあえず今回はシルフェイド学院物語の
アイテムのデータフォーマットについて考えたお話を書いてみます。
「データフォーマット」というと何だか難しそうかもしれませんが、
要は「アイテムが持つ情報」のことです。「アイテムの値段」だとか、
武器だったらその「攻撃力」だとか、って情報ですね。
たぶんプレイヤーの皆さんにはどうでもいい話題で申し訳ないんですが、
開発日誌ですからたまには開発に突っ込んだ話題書いてもいいですよね!?
なお、普段の日誌はなるべくプレイヤーさん向けに書いてるつもりです。

で話が戻りますが、「攻撃力」とか「値段」とか、ある程度
一般性のある情報はいいんですよ、たいていどんなアイテムにも付いてますからね。
(まあ「攻撃力」は武器以外ではふつう使わないでしょうけれど、
その時は情報を入れなきゃいいだけです)

でもね、バカには見えない服、またはそれに類するモノを着たまま歩いてたら
狐狩さんに捕まるとか、変な服で出かけるとツッコミが入るとか、
蒼蛇グループのバンダナ付けてると蒼蛇の人にはスルーだけど紅蛇に襲われるとか、
そんな複雑なアイテムの属性って、汎用性的な意味で付けるのが難しいんですよ!
それら全部をこっちで用意してもいいんですが、それだとシルシリーズ以外の
シナリオを作る場合、一瞬で無意味になるフラグが溢れてしまいます。
「蒼蛇側ファッション」フラグとかあっても、蒼蛇がいなかったら意味ないですし。

まあ、別にこっちで全部用意するのでもいいっちゃいいんですが、
このシステムで完全に別世界のシナリオ作ったりするかもしれないので、
その際に自由度に欠けるのはマズいなあと思いまして、
歯がゆい思いをしていたわけですよ。何とか、「(作るのも使うのも)簡単で」、
「汎用性が高く」、「ユーザーさんが設定しやすい」システムが欲しかったわけです。


で、ここから解答編です。

ヤケクソでyoutubeとかニコニコ動画とか見てたら
「タグ」という要素が使えそうなことに気付いたんですよ。
タグというのは動画の大雑把な内容を表すのに付けられる複数の単語で、
例えば「ゲーム」だとか「スーパープレイ」だとか「ファイナルファンタジー」だとか
登録することができます。視聴者は、見たい動画にありそうな単語をタグ検索することで、
それらの動画だけ絞って検索結果に表示することができます。
今回はその「タグ」という要素に注目したわけです。

幸い、WOLF RPGエディターには、「文字列に××が含まれている?(××は単語)」
というのを判断できる機能があるので、アイテムのフォーマットに
「文字列を保存できる欄」を1個だけ用意しておいて、
その文字列欄にタグ文字列を次から次へとドカドカ繋げて放り込めば
いちいち保存欄を増やすことなく、シンプルかつ汎用的に情報を記録できるわけです。

例えば「バカには見えない服」のタグ欄に「全裸 芸術的」って入れれば、
イベント時に「今来てる服に『全裸』フラグが付いてる?」という条件分岐や
「今来てる服に『芸術的』フラグが付いてる?」という条件分岐が成立するようになり、
「蒼蛇バンダナ」のタグ欄に「蒼蛇ファッション バンダナ」って書いておけば、
「バンダナ」タグで判定しても「蒼蛇ファッション」タグで判定しても
条件分岐に引っかかるようになるわけです。

これを利用すれば、蒼蛇バンダナ付けてるときには「バンダナ」フラグが立ってるので、
ミキ(※バンダナ付けてる女の子)に「おっ、キミもバンダナ仲間だね」と言わせたり、
またその一方「蒼蛇ファッション」フラグも立っているので、
ガゼル(※紅蛇のメンバー)に「蒼蛇と間違われるから付けるのやめとけよ」と
言わせたりすることが可能になります。
また、ユーザーさんが新たにアイテムを作る場合でも、
タグとして入力させるだけなので難しいことは何もありません。
(もちろん、使用する単語をある程度固めておかないと条件判定がうまくいきませんが)

これで、1個のアイテムに対し、一般性のない情報を簡単に、
かつ、事実上いくつでも保存することができるようになりました。
なるほど、さすがインターネットで採用されている当たり前のような機能、
ゲームに活かすこともできるんだなあ、と思ったひとときでした。

そもそもタグって要素が出てきたのも、特定創作物・商品の内容を表現するのに
型にはまったジャンル分けがしきれないゆえに生み出されたものでしょうから、
なるほど今回のケースでも目的は一致していると思いました。
使い方は逆ですけどね。あっちは多くの対象から見たいものを絞るために使っていて、
こっちは一つの対象から情報を引き出すために使っていると。

こうして、アイテムの情報をどうやって付けるか、という問題は解決したのでした。
長い割に対した話じゃありません、ここまで読んで下さった方、ありがとうございました。

窓の社大賞の受賞おめでとうございます。
いやいやいやノミネートだけで賞はこれからユーザ投票で決まるんですって!
結果発表は12/25だそうです。
関連記事

▲追記を閉じる▲

 
ヤケクソでyoutubeとかニコニコ動画とか見てたら
「タグ」という要素が使えそうなことに気付いたんですよ。
タグというのは動画の大雑把な内容を表すのに付けられる複数の単語で、
例えば「ゲーム」だとか「スーパープレイ」だとか「ファイナルファンタジー」だとか
登録することができます。視聴者は、見たい動画にありそうな単語をタグ検索することで、
それらの動画だけ絞って検索結果に表示することができます。
今回はその「タグ」という要素に注目したわけです。

幸い、WOLF RPGエディターには、「文字列に××が含まれている?(××は単語)」
というのを判断できる機能があるので、アイテムのフォーマットに
「文字列を保存できる欄」を1個だけ用意しておいて、
その文字列欄にタグ文字列を次から次へとドカドカ繋げて放り込めば
いちいち保存欄を増やすことなく、シンプルかつ汎用的に情報を記録できるわけです。

例えば「バカには見えない服」のタグ欄に「全裸 芸術的」って入れれば、
イベント時に「今来てる服に『全裸』フラグが付いてる?」という条件分岐や
「今来てる服に『芸術的』フラグが付いてる?」という条件分岐が成立するようになり、
「蒼蛇バンダナ」のタグ欄に「蒼蛇ファッション バンダナ」って書いておけば、
「バンダナ」タグで判定しても「蒼蛇ファッション」タグで判定しても
条件分岐に引っかかるようになるわけです。

これを利用すれば、蒼蛇バンダナ付けてるときには「バンダナ」フラグが立ってるので、
ミキ(※バンダナ付けてる女の子)に「おっ、キミもバンダナ仲間だね」と言わせたり、
またその一方「蒼蛇ファッション」フラグも立っているので、
ガゼル(※紅蛇のメンバー)に「蒼蛇と間違われるから付けるのやめとけよ」と
言わせたりすることが可能になります。
また、ユーザーさんが新たにアイテムを作る場合でも、
タグとして入力させるだけなので難しいことは何もありません。
(もちろん、使用する単語をある程度固めておかないと条件判定がうまくいきませんが)

これで、1個のアイテムに対し、一般性のない情報を簡単に、
かつ、事実上いくつでも保存することができるようになりました。
なるほど、さすがインターネットで採用されている当たり前のような機能、
ゲームに活かすこともできるんだなあ、と思ったひとときでした。

そもそもタグって要素が出てきたのも、特定創作物・商品の内容を表現するのに
型にはまったジャンル分けがしきれないゆえに生み出されたものでしょうから、
なるほど今回のケースでも目的は一致していると思いました。
使い方は逆ですけどね。あっちは多くの対象から見たいものを絞るために使っていて、
こっちは一つの対象から情報を引き出すために使っていると。

こうして、アイテムの情報をどうやって付けるか、という問題は解決したのでした。
長い割に対した話じゃありません、ここまで読んで下さった方、ありがとうございました。

窓の社大賞の受賞おめでとうございます。
いやいやいやノミネートだけで賞はこれからユーザ投票で決まるんですって!
結果発表は12/25だそうです。
関連記事