gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

夢歩き おいちゃん変

久々のTRPGネタ。
先日、他人さまのマスターで深淵をやる機会がちょいちょいとありまして。
何となく思ってないわけでもないのですが「おいちゃんの"深淵の夢歩き"」って、いくつか特徴的なところがある可能性、が想起されたので(ってか差分があったので)。
これが「駄目マスター」だと「駄目なんだなぁ」で片付くのですが、そうではないちゃんと面白いマスターさんで、かつ「おいちゃんとは違う夢歩き(の見解)」だったので、興味深いこの感覚が薄くなる前に一筆。


あぁ当然ですが、以下ぜんぶ「おいちゃんの個人的見解」ですので念のため。


さて。
おいちゃんの夢歩きスキルのベースはぶっちゃけると「Tarot占い」です。
知ってる人しか知らないような気がしますが*1、おいちゃんは、プロのTarot占い師でもあります。
それ一本で食ってた時期もそれなりにありますし、そのあとも色々と占いは受け付けてますし*2、素人さんとかセミプロさん相手に教えてた時期もある、くらいにはプロです。


閑話休題


なので、おいちゃんの夢歩きを「十全に習得する」場合「じゃぁまずはTarotを一通り理解しようか」とかいう気の狂ったお話になるので、まぁそこまで踏み込まない程度に(笑


まずは夢歩きの回数から。
まぁ深淵で「オープニング」と「エンディング」に夢を歩かない、というケースは相応にレアであると思われるのですが。
それ以外に「何回夢を歩くか」は、割と、マスターさんによる色が出るような気がいたします。


おいちゃんは、「オープニング」「エンディング」以外で、キャラにもよりますが大体3〜5回くらいは夢を歩かせるようにしています。場合によってはもうちょいましまし。
多分、めっさ多いです(笑


この辺はおいちゃんの「深淵、というゲームに対するスタンス」などあるか、と思うのですが。
おいちゃんの深淵は、どちらかというと「事実をリアルに正確に」というよりは「幻想的に美しく狂おしく感情の渦に振り回され翻弄されるように」的なセッションを、割合に好みます。
その辺で「夢歩き」ってのは、とても「日常に入り込む非日常」を演出できるんで、割と多用するんですね。
「夢と現(うつつ)の間(あわい)」ってな感じ、でしょうか。


あと、基本キャラクターは「悲惨で陰惨で致命的で暴力的な*3運命」を、2つとか3つとか付与されているので。
せめても、プレイヤーが「こんな方向に話を進めたい」っていう、マスターへの意見陳述ルートだ、とも思ってます*4


なので。
基本的には、夢を使って「少しづつ事実(または別のナニカ)を明らかにしていく」っていうような感じで、運命などを紐解く情報源として使います。


んで。その「明らかになっていく情報」ですが。
キャラクターにもよるのですが、「キャラクター本人の謎」と「シナリオの謎」の、できるだけ双方を、織り交ぜたりまぜっかえしたり融合させたりしながら出す事が多いように思います。


この辺は「キャラクターの運命の使い方」にもよるのですが。
個人的には、出来るだけ「各キャラクターの運命が、今回のシナリオにも絡んでいく」ように作る事が多いので*5
キャラクターの運命のひも解きとシナリオのひも解きには「ある程度の関連性」があるので、そんなに苦労する事もないですね。


あと、そのシナリオに「フレーバー」を入れる、なんて事も割とよくあるので。
そういう時は、夢の中にそのフレーバーを、割と執拗に様々な角度からぶち込む、なんてのもやります。
つい先日やったシナリオで吐露させていただくと、多分おいちゃんだと「花畑、蜂、蜂蜜、ミード、蜘蛛、8本脚、糸」あたりのキーワードを使うと思います。


さて、ほんちゃんの夢歩きですが。
上述に書いた
・本人の運命
・シナリオ
・シナリオフレーバー
のそれぞれから、キーワードを抜き出します。
で、プラスして「出された運命カードの"語り部"の文言」を使います。


これで「語るためのベース」が揃いました。
後は「ショートショートな物語を紡ぐ」だけです。
ちなみに「最後の、真相に迫るところ」以外は、あちこちモヤっとさせたままでよいと思います。「適度に隠された」ものは、プレイヤーたちが沢山の妄想をするためのよいエサになりますから(笑


そうですねぇ今、即興で一つ、作成をしてみましょう。
http://d.hatena.ne.jp/gallu/20091223/p5 とかちょうどよいので、使ってみますw


スタート場所
 1.寒村、冬直前(もしくは春)の宿屋。旅路での宿泊。
スタート付近夢歩きのきっかけ
 6.村特産の飲み物(お茶、あるいはアルコール類)
オプション
 3.満開の花(場合によっては一箇所だけ奇妙に)
中盤以降の嫌な場所/もの
 3.いきなり出現する青龍:大暴れ
シナリオKeyな人物の背景
 4.すでに滅びた村。何らかの理由で「すでに滅びた人々」が「夢の中で」生きている。事件の解決は夢の開放、すなわち「村人の死」を招く。が、このままではPC達も夢から出られない。
シナリオKeyな人物の立場
 3.騎士や貴族などの高い身分の人
シナリオKeyな魔族
 1.八弦琴の魔族


シナリオフレーバーには、前述の「花畑、蜂、蜂蜜、ミード、蜘蛛、8本脚、糸」をそのまま使ってみます。
多分……全体としては「村にしがみついていた貴族」「すでに村は滅びた」「でも"滅びた事"が受け入れられなくて(+魔族の力?)、村が"夢の中で"まだ生きている」的な背景が浮かび上がります。
スタート付近夢歩きのきっかけで「村特産の飲み物(お茶、あるいはアルコール類)」とあるので、村の特産品をミード(蜂蜜酒)としておきましょう。……金持ってそうだなぁ貴族がしがみつく理由の一端が見えそうな気がするよ(笑
恐らくですが、村が滅びた理由が「青龍」で、きっと夢の中でも定期的に「襲ってくる」のでしょう。
蜘蛛がフレーバーにあるので。貴族は「蜘蛛の糸のように現実に糸を伸ばして、"夢の村"という蜘蛛の巣に人々をとらえて、その生命を使って生きながらえている」のかもしれません。
ここで「あぁ蜘蛛の大公スフィンとかいたなぁ」からお話を紡いでもよいでしょうし、その辺はマスターの深淵知識次第なので「特に蜘蛛の魔族については気にしない(出さない)」でもよいと思います。大体、セッションやってるとちょいちょい「PCが魔族化」してたりするので、設定以外にも、大量に魔族っぽい存在は転がってるだろうしなぁ(笑


そうするとシナリオの流れは見えてきます。
http://d.hatena.ne.jp/gallu/20091223/p4 あたりでも少し語っているのですが。
ものっそおおざっぱに。コンベンション前提で、セッション前の説明やらテンプレ選びやら設定決めやらが、深淵は丁寧にやっておいたほうがよいと思うので、1〜1.5時間、と仮定して。
割と多くのコンベンションって「11時くらいに開始、18〜19時には終了」が多いように思うので、大体7時間。準備にのりしろみて2時間、昼飯1時間と考えると、残は5時間。
どこぞのお話ではないのですが*6
タイムテーブルを作ったところで「30分のシーン想定で、実際には1時間30分が必要になる」なんてのはザラ、なので。
まぁとりあえず「30分想定くらいのボリュームで実際には1時間かかるであろう」とみると、残5時間なので、大体「1シナリオ、5シーン」という大まかな流れの骨格が見えてきます。


このうち「第一シーン:オープニング」と「第五シーン:エンディング」は確定しているので、あとは2〜4までの3つ。
ごく大まかには
2.シナリオに流されている:あるいは違和感を感じて調査する(必要なら、軽いバトル一ついれて"戦闘ルールを体に叩き込む")
3.謎を解き明かし、最終ターゲットをマーキングする
4.ラストバトル


くらいの感じでしょうか。
これが謎中心だったりプレイヤーがさまよったりすると
2.シナリオに流されている:あるいは違和感を感じて調査する
3.謎が解らないまま、迷走を繰り返す
4.敵が謎を明かしつつ(大体は不利な状態で)ラストバトル


くらいまでのワンパンは許されるのではないか、と思います(笑


んで、夢歩きの話に戻りますが。
大体、おいちゃんがよく使うのは


・シナリオ導入時の「謎に満ちた」夢歩き
・「だんだん、真相の一部が明らかになっていく」夢歩き*複数回
・ラストバトル直前くらいの「全ての真実が、今、明らかになる!!」な夢歩き


くらい、ですかねぇ。
あとは、夢歩きのちょっと「ひねった」バージョンとして「最後で視点がどんでん返し」なんてのをやる事があります。
わりと強く印象に残っているのが。
「魔族に作られたもの」の運命を持っているキャラクターがいたのですが。


ず〜っと、夢歩きで「君は、何か目の前にある水槽のようなもので、"ナニカ"を作っている」という、作成者側の視点で夢をあるかせ続けて。
「自分の失った記憶……もしかして、自分は魔族ないしそれに類するもので、何かよからぬものを作ってしまったのか?」って方向にず〜〜〜っとミスリードさせておいて。
最後の「全ての真実が!!」のタイミングで、「君は水槽の中の"ナニカ"に声をかけるよ。"さぁ目覚めるんだ 'PCの名前' よ!!"」って爆弾落としたことがありました(笑
プレイヤーさんが、本気で驚いてましたねぇ(笑


まぁ、おいちゃんの夢歩きは、割とそんな感じで作っていくことが多いように思います。
実際に「どんな風に夢を歩くのか」については、そのうちBlogのほうに書いていければなぁ、と思いますので、よろしかったらご期待くださいませ。

*1:当たり前だ

*2:今は「知り合い経由」くらいしか受け付けてませんが

*3:はずの

*4:陳述が「通るのか」はまた別問題w

*5:作成場所:セッション場所。作成時間:セッション直前(若しくはセッション中)

*6:Ashenroses Report、と書いてわかる御仁でここを見る可能性があるのは、多分、地球上でわずか数名であろうw

トロールの間に流れる民話集より抜粋

 昔々あるところに、2人のトロール、トロトルとトルートルがいました。
 トロトルは優しい性格をしていたのですが、トルートルはあまり優しくありませんでした。


 ある日の事。2人のおばあさんエルフが、トロール達の所に行きました。
 「もう、何日も水を飲んでいないので、水を頂けますか?」
 トルートルは言いました。
 「お前なんかにやる水はないね。代りに、お前を俺が食ってやる」
 こう言って、半分干からびているエルフを食べてしまいました。
 「ああ、まずい」
 そうです。乾燥しかけていたので、パサパサしてあまり美味しくはなかったのです。
 トロトルはいいました。
 「さぁ、こっちに水があるから、たんとお飲み」
 するとどうでしょう。干からびていたエルフは、あっという間に若帰り、美しいエルフになりました。
 トロトルは、新鮮なエルフを食べる事が出来ました。
 そのエルフは、たいそう美味しかったそうです。


 どっとはらい

るんけむかしばなし

 昔々あるところに、エルフの王国があり、そこには1人のお姫様がいました。
 お姫様は大変に美しい御方で、その美しさは隣近の花屋にまで噂されるほどでした。


 ある時、魔王が噂を聞きつけ、お姫様をさらってしまいました。
 さぁ、驚いたのは、王様です。
 王様は、早速国中にお触れを出しました。
 「姫を助けたものには、たくさんの褒美を取らせる」


 しかし、魔王は強く、数多くの人々が魔王に挑んでは、すべて手折られてしまったのです。
 何年かたった後、人間の勇者達が、その王国に訪れました。
 そして彼らは、魔王に挑んだのです。


 魔王の力は、人間の勇者達を倒さんばかりのすざましさでした。
 が、勇者達は、その攻撃を避け、払い流し、或は耐えて、勇敢に戦いました。
 そして、勇者が放ったとどめの一撃は、見事、魔王を倒したのです。


 さて。回りを見渡しても、お姫様の姿がありません。
 よく探すと、何と、玉座の真上でつるされているではありませんか。
 早速お姫様を降ろすと、お姫様は干からびていました。何年もの間、ずっと吊るされ、乾燥保存されていたのでしょう。
 勇者がたらいに水を張り、お姫様を浸すと、あっという間にお姫様はもどりました。
 「ありがとう勇者よ、これでようやく、お父様の元に帰れます」
 こう言ってはらはらと涙を流す姫に、勇者はそっと呟きました。
 「姫。どうか泣きやんでください。また干からびてしまいますから」


おしまい

狂気…或は慟哭

 暗闇にいる。
 いや、違う。光はある。ただ、それが見えないだけだ。
 目が見えない訳ではない。ただ、見えないだけだ、光が。


 闇にうごめくものがある。


「やめろ!! しっかりするんだ!!!」


 闇にうごめくものがある。
 それは……。ああ、ニーナだ。
 昔、よく一緒に遊んだ。
 物心ついた時には、ニーナは側にいた。


「お、俺達は、おまえを殺したくはないんだっ!!!!」


 物心ついた時には、ニーナは側にいた。
 この音はなんだろう…。ああ、水が地面に流れ落ちる音だ。
 そうだ。よくニーナと行った、あの川だ。
 ニーナに水をかけては、泣かせてしまっていたあの頃。


「い、いやーーーーーーっ!!!」


 ニーナに水をかけては、泣かせてしまっていたあの頃。
 そう。球体で脈打つ、変な生物を見つけて、2人で驚いた事もあった。
 驚いた拍子に僕が握り潰してしまった時、ニーナが恐がって泣いていたっけ。


「た・・頼む・・・俺・・たちを・・・・・思いだ・・し・・て・・・」


 驚いた拍子に僕が握り潰してしまった時、ニーナが恐がって泣いていたっけ。
 ああ、又水の流れ落ちる音が聞こえる。
 この暖かい感覚は………
 ニーナの肌に、初めて触れた日だ。
 ニーナと、始めて肌を合わせた日だ。


「お、お前はっ!! ギルの、仲間の血を浴びて、そんなにうれしいのかっ!!!」


 ニーナと、始めて肌を合わせた日だ。
 幼馴染だったニーナ。
 2人の成長とともに、自然に愛しあい。
 そして、始めて肌を合わせた。
 暖かい、幸せな時だった。


「や、止めてーっ!! 殺さないでーーーっ!!」


 暖かい、幸せな時だった。
 あの時ニーナは、恥ずかしそうに微笑んでいた。
 そして、僕の腕に、飛び込んできてくれた。


「せめて、俺の手で殺してやるよ。・・・・うぉぉぉぉぉっ!!!」


 そして、僕の腕に、飛び込んできてくれた。
 僕はそれを優しく抱きしめ…


「お・・・俺の腕・・・じゃ・・・・や・・・っぱり・・・・・・・・」


 僕はそれを優しく抱きしめ…
 いつまでも一緒だよ、といった。
 2人で手を取って。
 僕が冒険に出たあの日も、
 2人はいつも一緒だから、といって、当然のようについてきた。


「どうして!? どうして仲間同士で殺し合わなきゃいけないのっ!!!」


 2人はいつも一緒だから、といって、当然のようについてきた。
 随分長い間、冒険を、旅をしてたニーナ。
 子供が欲しい、といってたっけ。
 僕に、何人欲しい? って、聞いてた。
 僕が答えに窮してると、私は沢山欲しいわ、っていってた。
 子供はかわいいから、たくさん欲しい、って。


「お、お願いします。子供だけ・・・は・・止めてーーーーーーっ!!!!!」


 子供はかわいいから、たくさん欲しい、って。
 ああ、優しかったニーナ。
 子供の頃いった花畑を、まだ僕は覚えている。
 甘い、なんともいえない素敵な香り。


「殺せーっ!!我が国を、民達を、守るのだーーーーっ!!!」


 甘い、なんともいえない素敵な香り。
 そうだ、あの花園だ。
 2人で始めて見つけたあの秘密の花園は、特にニーナのお気に入りだった。
 優しかったニーナ。
 花を摘むのがかわいそうといって、ただ2人で、ずっと眺めていた。
 秋には、林檎がりにいった。
 腐ったリンゴを、間違えてつんだ時。


「わ、わしが死んでも、まだ王族の血・・・ぎゃぁぁぁぁ・・・・」


 腐ったリンゴを、間違えてつんだ時。
 飛び散ったリンゴの汁を、ニーナが、自分の服でふいてくれた。
 ニーナ。
 僕は、君がいれば、もう後は何もいらない。
 ニーナ。君はどこにいるんだい?
 ああ、そうだ。君は殺されたんだ。
 あの、黒い悪魔に。
 …違う、あれは夢だ。


「その傷ついた魂とともに、永久に眠るがいい」


 …違う、あれは夢だ。


 暗闇にいる。
 いや、違う。光はある。ただ、それが見えないだけだ。
 目が見えない訳ではない。ただ、見えないだけだ、光が。


 ……ニーナ。
 目が覚めたら、君に会えるね。
 …………………
 おやすみ


 一つの王国を滅ぼした魔族。その魔族が、実は人間だった、と言う噂が流れた。
 魔族は後に、勇者に倒された、と言われている。
 その魔族の心を知るものは、いない………


 異世界の、物語。

リアルの中にあるCP

おいちゃんの大好きなTRPGというゲームジャンルの中に、GURPS(ガープス)と言うシステムがありまして、その中でCP(Character Points : キャラクタポイント)という概念があります。
これがさりげなく「現実の考察」において便利だったりするので、ちょろりと書いてみようかと。


GURPSにおいて、CPとは概ね「その人の能力(を数値化したもの)の合計」になります。
つまり、ある人は「剣で戦うこと」が得意であったり、別の人は「魔法で戦うこと」が得意であったり、別の人は「宮廷で噂話との格闘」だったり、或いは「寝屋での以下略」だったり、まぁ個性は色々とあろうかと思うのですが。
同じ「100CPという数値」であれば、大体「同じくらいの強さだろう」という、仮想単位です。


…まぁつまり「得意分野」にうまいこと持ち込むと、25CPのキャラが100CPのキャラに勝てる瞬間もあるのですが(苦笑
言い方を変えると「得意分野にはめ込まない限り」、なかなか勝ち目は薄いってのもまた事実です。


んでまぁ。
このゲームにおいて、スキルは「CPを使って買う」ことを要求されます。
つまりCPってのは実際には「このキャラクタを作成するために消費されたCPの合計」なわけですね。ものっそ擬似的には「貨幣」ってみなしてもいいのかもしれない。
例えば…「剣戟で相手に攻撃を命中させる」という技を。
とある人が1CP支払って覚えると「剣戟:スキルレベル10」になったりします。このゲームだと「50%の成功率」です。
これが2CPを支払うと「スキルレベル11」となり、確立が62.5%に持ち上がります。4CP支払うと「スキルレベル12」、確率が74.1%。
結構違うわけですね。


ちなみに(…旧版の記述だったかもですが)、1CPは大体「200時間の学習と等価」なんだそうで。
200時間って数字はただのゲームタームなのですが、重要なのは「学習時間とスキルが、ある程度比例している」ってこと。


で、ここからが「リアルとの接続」。
多分、本当に多分、なのですが。
Aさん25歳とBさん25歳は、誤差はあるにしても、ある程度「同じ時間数」をすごしていると思うのですよ。GURPS的にいうと「同じようなCPを使ってる」わけですね。
ただ、ンじゃお二人が「どのスキルにCPを突っ込んでいるか」で、お二人のスキルの分布図は、えらいこと変わると思うんですね。


でまぁ…わりとよく見かけたり感じたり思ったりするのが。
例えばエンジニアで「そのわりに社内政治に妙に長けている」人って、どうしても「技術力が低い可能性が多い」ように見えまして。
それって多分「他のエンジニアが技術力の学習にCPを突っ込んでいる配分の中で、社内政治に大量のCP突っ込んでいる(分、技術力の学習にCPがまわせてない)」なぁ、って思うこととか、色々あるですよ。


いやまぁもちろん厳密には「人生の大半は寝てたからCP総計が少ない」とか「元の資質(GURPS的には能力値)が高いから、少ないCPでも高いスキルレベルになるから満遍なく高い」とかまぁ色々あるかとは思うのですが。
とはいえ、ある程度「CP総計」と「CPをどれくらい散らかして、どれくら一点集中させたか」っていう観点は、リアルでも有効なんじゃないかなぁ? って思うですよ。


なんていう戯言をわりと昔から考えているので、なんとなくメモ。

マギカロギア:おいちゃん用嘘裏設定

われらが「世界<原典>」よ、永遠に栄光あれ!!


われらが世界<原典>は、素晴らしい文明を誇っていた。
あらゆる「力」という「力」を「魔力」に転化して、文明は魔法という力によって最大級に膨れ上がり。
しかし、もはや「転化すべき力」は「世界<原典>」からとうに枯渇し、栄華を極めたはずの、万能なはずの、素晴らしき文明は、われらが「世界<原典>」は、滅びの危機に直面していた。
魔力のない世界において、魔法など無意味に過ぎぬが故に。


しかし我等は「異なる世界」を発見する。
そこは「魔力もなく、魔法文明もない」、つまり「転化すべき力が、生のままに手付かずで眠っている」素晴らしい世界だった。


問題があった。
その世界の、「彼の世界の生の力」は、そのままでは吸い上げることができない。彼の世界にすまう生物どもに魔法を教え込み、「彼の世界の生の力」を「彼の世界の魔力」に転化させる必要があった。
「彼の世界の魔力」ならば、その力を「世界<原典>の魔力」にすることができる。


早速「彼の世界」の生き物に「魔力の生成方法と使用方法」を教えた。
しばらく試してみてわかったが、彼らと魔力とは、あまり親和性がよいとは言えなかった。
当然の帰結として、彼らの、生き物としての作り、あるいは存在方法を変えることにする。通常の生物形態から器物形態に形態変化させることで、大分とマシな量の魔力を練ることが出来るようになった。
どんな形態でもよいのだが、彼らは古典的な「書物」の形式を好むらしい。


こうして「彼の世界」の魔法は花開いた。
不死…というか「死ぬ」という概念から「壊れる」という概念にシフトチェンジする存在も、ようよう、でてきたようだ。


「彼の世界」の魔力の元になる力は「存在力」であった。あるモノが、モノとして「存在していること」そのものが力になる、というアレだ。
つまり「存在力」を魔力転化しつづければ、いずれ「彼の世界」そのものの存在力が無になる。平たく言えば「存在しなかった」ことになる。
いずれ食いつぶすことになるだろうから次の補充先を探さなければならないだろうが、現在保有している「存在力」をざっと計算するに…おそらく1/100劫程度はもちそうである、おそらく。


しばしの間ではあるが、我々は魔力供給源を見つけた。
「世界<原典>」のための餌として、存在が無になるまでの間、魔力を組み上げていこう。


…と思っていたのだが、厄介な存在が現れた。
理論的には、我々が与えた「すべての魔法技術」を集め、研究することで、我々が魔力を吸い上げるこの行為を防ぐことができる、可能性が、ある。
とはいえそれは「理論的に可能である」程度のレベルのはずであった。


しかし、最近「Collector」なるものどもが、何の意図か「すべての魔法技術を収集する」動きを見せ始めた。
大事無いとは思うが、危険は芽吹かぬうちに排除する必要がある。


速やかに「正等なる魔術集団」を結成さよ。
そうして、あらゆる「Collector」どもを、確実に抹消せよ。


写本の長よ。
我が命に、無条件かつ全面的に従うのだ!!

          • -

つまり平たく言うと「大法典」はおもいっくそ「外宇宙の手先」で、書籍卿(ビブリオマニア)の一部こそが「地球を憂いでる」連中、っと。
で、ビブリオマニアは「あらゆる魔法技術を平行して解析する」ために、あらゆる魔法書を収集している、と。
んで「技術的にcoreに触れる部分があるから見せたくない」ものを、大法典は「禁書」扱いして封印、研究させまいとしてる、と。


魔法使いが「死んだら消える」のも。
別に「世界に嫌われているから」じゃなくて「存在力が無になるまで搾り取られた」結果。公式の世界設定にすら喧嘩を売っていますw


…あぁ繋がったつながったw
これなら、おいちゃん、シナリオ書けるかもしれないわw

TRPGの成功判定で学ぶオブジェクトの切り方への一案

とりあえずきれいごとな建前として「クラスをどう設計していくのかの一例を示してみたい」っていうあたりの要望がある、ってことにしといて。


ネタ的にものすごくニッチな気もするのだが。
書きたくなったんだからしゃ〜ないw
# っていうか「実装する気満々だったりする」ので単純に「ちょ〜どいいから記事にして備忘録にしちゃえ〜」って感じです B-p


まず、大雑把に「TRPGにおける成功判定(ダイスを使うもの)」について「最アバウトレイヤー」で考える。
・ダイスを振る
・成功したり失敗したりする:結果とか呼んでみる


うんこんなもんだ。
プログラムっぽく書くとこんな感じ。

結果 = ダイスを振る();

素晴らしい。
見もふたもない、とも言う。


さて。結果とダイスを振る、のどっちから考察してもいいんだけど…とりあえず結果から。
基本的には「成功」か「失敗」の2択なので。2択ならbooleanでいいんぢゃね? ってことで考えてみる。
この辺の考えの甘さとそれに伴う修正の仕方とかは後でやるから、気づいてたら一端失念してw

boolean = ダイスを振る();


さて、処理への考察。
一般的に「さいころを振って」「ある数値基準に、それより大きかったり小さかったりすると、成功したり失敗したりする」もんです。

boolean = ダイスを振る(振るダイスのタイプと数, 目標値);

そうだなぁとりあえず「D&D 4thのST判定」とか局所なところから。
1d20ふって(20面ダイスを1回振って)10以上なら成功、9以下なら失敗。
この場合要素としては「1d20」「10(以上なら成功)」なので。その辺をてけとうにパラメタっぽくすると…こう?

boolean = ダイスを振る("1d20", 10);


ここいらあたりまではぶっちゃけオブジェクトとかいらない。別にぺたんとしたfunctionで十分。
問題はここから。
「ダイスによる判定」は、実際のところそれはそれはバラエティに富んでたりする。


まずは「上方判定」と「下方判定」。さいころの目が「小さいほうがいい感じ」と「大きいほうがいい感じ」ってのがある。D&Dとかは上方だし(昔は上下ばらんばらんだったんだけどねぇ)。GURPSなんてのは典型的な下方。
さらに。さいころの目を足すのではなくて「個々のさいころと目標値を比較して、目標値を上回ったダイスの数で判定(シャドウラン/WoD)」とかっていうのもあります。
さらにさらに、ごく一部のシステム(具体的には央華封神)には「裏成功」というびみょ〜な成功もあります。
ついでに。結果も「成功と失敗」だけではなくて、一般的には「クリティカルとファンブル」ってのがあります。改心の一撃&痛恨の一撃とかまぁ色々表現がありますが。ないものもあります。


まずとりあえず「結果、ってのは2種類とは限らない」らしいことが骨身にしみてわかったので、一端boolean説を取り下げます。
毎度のごとく「結果、というよくわからんモヤモヤしたもの」に戻します。
この辺のフットワークのよさとかケツの軽さとかは重要なのでチェック。試験に出るよ。

結果 = ダイスを振る();


先に結果のほうから再考察。
色々なシステムを大まかに統合して、「結果」というカテゴリに入る状態や情報は
・成功
・失敗
・クリティカル
ファンブル
・裏成功かどうか
・成功数
・失敗数(ボッチ数)
あたり。数を聞くものを除いて、基本的には「個々にis関数を作って問い合わせる」のが楽なので。
極めて大まかに、この子をクラスにします。

class 結果
{
  public abstract boolean is成功();
  public abstract boolean is失敗();
  public abstract boolean isクリティカル();
  public abstract boolean isファンブル();
  public abstract boolean is裏成功かどうか();
  public abstract int get成功数();
  public abstract int get失敗数();
}

となるわけですな。結果の状態が増えたら適当に増やしといて、っていう気軽さがオブジェクトの身上。
なので、一端、戻り値である「結果」については考察終了。


次に「ダイスを振る」ほう。
結局のところ「ある目標値に対してダイスを振ってどうだったか」を聞くので、本質的な部分である

結果 = ダイスを振る(振るダイスのタイプと数, 目標値);

の部分には差異がない。ここ重要。


差異がないからんじゃってんで、割とすぐに思いつくのはこーゆーインタフェース。

結果 = ダイスを振る(判定種別, 振るダイスのタイプと数, 目標値);

い〜んだけどっていうかぜんぜんよくないんだけど。
上述の実装は、やらせてみると、大体こんな感じ。

結果 function ダイスを振る(判定種別, 振るダイスのタイプと数, 目標値)
{
  switch(判定種別)
  {
  case 'D&DのST':
   処理;
   処理;
   処理;
   break;

  case 'ソードワールド':
   処理;
   処理;
   処理;
   break;

  case 'シャドウラン':
   処理;
   処理;
   処理;
   break;

  }

 - 以下略 -

で、保守性の観点などから、はっきりいって「ンベ B-p」な感じです。
これをみて「きしょい」って思える程度の感性は、もっていて損ないと思う。
こゆ時に、GoFの「工場(Factory)」をつかうであるざんす。


んと…イメージを大まかに書くと、こう。

ダイス処理インスタンス = 工場::作成依頼(システム名);
結果 = ダイス処理インスタンス->処理よろ〜(振るダイスのタイプと数、目標値);

ずぼらな人的には、こう。

結果 = 工場::作成依頼(システム名)->処理よろ〜(振るダイスのタイプと数、目標値);


これをやると「システムが増えたとき」に有利なほかに「とあるシステム(用のダイス処理)への修正」が「ほかのシステム(用のダイス処理)に影響しない」ので、その辺がなんていうか「気軽」です。


まぁ、こうやっておいちゃんはクラスを切っていくわけですね。
「上から下に」落とすんじゃなくて、もっとこう…なんていうか…あぢゃいるでいんたらくてぶな感じ?(いってみたかっただけ)
こまめに作って、ちょこちょこと修正しながら、時々は大本に立ち戻りながら、ゆっくりと「荒削りから仕上げに向けて」進めていく感じ。


このほうが楽なんじゃないかなぁ、って思う、おいちゃんからの一案でした。