[memo] 箱書きと字コンテ

玄兎 2008.12.28 (日曜日)

 B.W 氏がシナリオ作成ツールの設計をしておられるようです。
 ベリー楽しみ(^^)

 どういったインターフェイスになるのかも分からないのでアレですが、TreeView の話が出てたのでツリーモデルになるのかな? だとしたら金色老師氏の設計されてる “SYSTEM” のシナリオ記法が役に立つかもしれません。

 これを勝手な想像で書いてみちゃったのが以下のエントリです(笑)
 記法より運用面の話になってるんですが。

ペテン師の戯言。

 ということで、シナリオ記法についてだけ考えても、セッションコントローラ別シナリオマップとか、まだ書かなきゃいかんよーなコトが沢山あるだろうに、その辺は脇において「プレーンテキストでシナリオを書く」ときの自己流プロセスについて。
 どっちかというと CRPG のゲームシナリオ作成プロセスなんですけどね。

プレーンテキストによるシナリオ記述

 そもそも「プレーンテキストって何やねん?」という質問をされたらどう答えましょう?
 文字だけの文章、とかでいいかな。ダメかな(何)
 まあ詳しい定義が知りたい方は、サックリ検索してください。
 手抜きでスンマセン。

 プレーンテキストによるシナリオの書き方ってイロイロあると思うんですが、とりあえず我流のアプローチを二つばかり。

箱書き

 一つは構成要素の羅列による擬似的な箱書き。
 箱書きっていうのは、シナリオを構成するイベントごとに“箱状に”書き出したモノのこと。
 実際の箱書きは、文字通り四角い枠内に書き込むことで、そのままシナリオフロー(フローチャート)に使用できる形にしますが、プレーンテキストでシナリオを記述するときは、まあシナリオフローまで作らないことが多いんで、イベント単位で適当に区切って箇条書きにするくらいでしょう。
 たとえば僕は、以下のような項目について箇条書きにします。

(コード番号「イベント名」)
  • 前イベント(コード番号「イベント名」)
  • 構造上の意味/ポイントキー(有無)
  • 発生時間/終了時間
  • 場所
  • 登場勢力/所属NPC「衝突要件」
  • Sイベント(イベント名)/手段/確率
  • フラグ処理
  • 基本目標
  • 次イベント(コード番号「イベント名」)
  • イベント概略(箇条書き)
  • キーワード

 だいたいこれくらいの情報をイベントの冒頭にまとめておいて、詳細をその後に書く、ってやり方ですね。
 F.E.A.R.系のシナリオ集なんかで見られるものも、こんな感じだったような気がします。
 ぶっちゃけ「ここまで書くならフロー書け」とか思わんでも無いんですが(笑)、その辺は好みで。

字コンテ

 もう一つは、脚本のようにシナリオの流れを書き出していく方法。
 より読物的な作り方で、プレイヤーの介入点が無尽蔵にある TRPG よりも、システムによって介入点が制御される CRPG に適した記法ですが、オンラインセッションでマスタリングするときは、発言をコピペして手直しするだけになるので便利です。

字コンテ・例

// PCはウッド男爵領の交易都市トーリを目指して青緑街道を南下中。
// 「土地勘」があれば判定して周辺地域の情報が得られる。
// 野営の順を決め、エンカウント判定を行う(90%)
// 街道沿いの村まで残り三日のところで、南から猛スピードで北上する馬車に遭遇。
// 止めようとすると「危険なので逃げろ」と老人の声。
// 馬車はそのままのスピードで北上する。追っても追いつかない。
// 馬車が通過した後、南から駆けてくる数騎の騎馬(荒くれ騎馬)と遭遇。
// 無視して南下する ⇒ “EV-0B10「余所者」”
// 荒くれ騎馬を阻止する ⇒ “EV-0A01「荒くれ騎馬との戦闘/1」”
/*—————–*
EV-0A01「荒くれ騎馬との戦闘/1」
*—————–*/
// 荒くれ騎馬との戦闘(荒くれ騎馬の半数は「突破」を狙う)
// 半数を撃退できれば、突破されたものを除いて荒くれ騎馬は撤退する。
// 突破した騎馬が 2頭以下 ⇒ “EV-0A03「少女と老人」”
// 突破した騎馬が 3頭以上あって追撃する ⇒ “EV-0A02「荒くれ騎馬との戦闘/2」”
// 突破した騎馬が 3頭以上あって追撃しない ⇒ “EV-0B10「余所者」”
/*—————–*
EV-0A02「荒くれ騎馬との戦闘/2」
*—————–*/
// 追撃するなら北上して30分ほどで遭遇。
// 剣を持った老人が、馬車と騎馬の間に倒れている。
// 馬車の窓が開いて少女が顔を出す。少女、悲鳴をあげる。
// 荒くれ騎馬と戦うなら戦闘。
// 荒くれ騎馬に勝利 ⇒ “EV-0A03A「少女と老人」”
// 5ラウンド戦闘が続く ⇒ “EV-0A03B「少女と騎士」”
/*—————–*
EV-0A03「少女と老人」
*—————–*/
// 荒くれ騎馬を撃退すれば、馬車から少女が駆け下りて老人に取りすがる。

 字コンテの利点は、箱書きに比べて「編集しやすい」という点があります。流れの中で、情報を増やしたり減らしたりという編集をかけたいとき、字コンテならそのまま情報を追加してしまえばいいのです。
 箱書きの場合、もうちょっとだけ手間がかかります。(追加する情報の構成要素を分解して、各項目に書かなければならないので)
 なんでまあ、先に字コンテで流れをチェックしてから、必要なら箱書きを作る、というのがイイんじゃないかと。

 ちなみに各行先頭の「//」は、プログラムの“コメントアウト”です。別にンなモン書かなくても構いません(笑)

 この字コンテに、そのまま処理スクリプトを書いちゃうのも手です。
 過日のワークショップでは、趣味でプログラミングやってる人が処理式を C か何かで書いててビビりました(笑)
 試しに真似してウソ言語で書いてみると、えー……

字コンテ+スクリプト・例

// PCはウッド男爵領の交易都市トーリを目指して青緑街道を南下中。
// 「土地勘」が 2レベル以上あれば周辺地域の情報が得られる。
  if (土地勘 >= 2) {
    getInfo “後 5日で、宿泊できる大きな農園がある。”;
  } else {
    die;
  }
// 野営の順を決め、エンカウント判定を行う(90%)
  check (エンカウント) {
    if (エンカウント >= 90) {
      battle”普通の街道”;
    } else {
      die;
    }
  }
// 街道沿いの村まで残り三日のところで、南から猛スピードで北上する馬車に遭遇。
  getInfo “南の方から砂煙をあげて、街道をこちらに何かが向かってくるよ。”;
  getInfo “どうやら馬車のようだ。それも高級な、貴族が乗るような。”;
  getInfo “傍観するにしても、無視して南下するにしても、馬車は君らの傍を猛スピードで駆け抜けていく。”;
// 止めようとすると「危険なので逃げろ」と老人の声。
  if (Action -> “馬車を止めようとする”) {
    getInfo “制止しようとすると、老人の声が答える。”;
    getInfo “「ここは危険ですぞ。お早く逃げなされ」”;
    getInfo “「しからば我らは急ぎます故、これにて失礼!」”;
    getInfo “そのまま馬車は駆け抜けていった。”;
  }

 こんな感じ。
 ちなみに追加されたスクリプトはでっち上げの出鱈目です。悪しからず(笑)

 で、それを箱書きにまとめてシナリオフローを作る、という流れになります。
 まず字コンテで「なにが起こるのか」を記述しておいて、それをメタゲーム視点に置き換える(シナリオプロットを分解・再構築する)のが箱書きだ、と考えればいいと思います。

 この辺は標準化されてるモノではないらしいので、僕が教えられたプロセスはローカルルールかもしれません。悪しからず(笑)

「字コンテ ⇒ 箱書き」の流れ

 プレーンテキストでシナリオを書くとき、頭の中でシナリオがかっちり作れちゃう人ならいいんですが、そうでない場合、あるいはちゃんと推敲したい場合は、字コンテ ⇒ 箱書きの流れを追うといいかと思います。
 というのは、字コンテの利点ですね。いくらでも拡大・縮小ができる。

 これはワークショップでやった話につながるんだけど……まあこれは長くなるんで別の機会ってことで。

トラックバック URL :

トラックバック

  1. [TRPG][シナリオ作成ツール] これはすばらしい情報!

    玄兎さんがすばらしいエントリを授けてくださいました(笑) [memo] 箱書きと

  2. system より:

    systemのプログラム化、未来について

    老師です。 年末にかけて忙しく公開できなかった。 申し訳ない。 玄兎さんの所で

コメント

コメントはありません。

コメントを投稿する