NWN奮闘記
2004年1月〜


●1月20日
 アケオメという事ですが今年のNWN出だし不調。まあ僕が体調を崩したのも理由の一つ。
 そういうわけでキャンペーンの続きに約1ヶ月空いてしまったわけです。

 練習キャンペーン第4回は、3回との間に時間があったのでまず前回までのおさらい的なものをIRCで語ってからスタートしました。今回のDM(僕)側の目論見としては「手動で戦場を再現出来るか」というもの。
 一緒に遊んでくれてるManboさんが良く翻訳してる戦闘系のMODを、僕らも人数足りない時などに遊んでみたりテスト参加させてもらったりしてるんですが(「戦群」とか「GoodVSEvil」とか。NWCJで見つけられます)、ああいう形のシナリオっていうのはNWNをやる上で考えたことないなあ…と。だからやってみようかなと思い立ったわけです。
 で、TRPGおなじみのパターンだと「砦(野営地)防衛」と「村防衛」というのがありますね。今回話の流れから言ってどちらの形にも出来たんだけど、DM不慣れなのでバランスとか間違ってる事が多々あるんですよ。だからもし失敗とかしててアッという間に全滅させられた場合に、村だと悲惨すぎると思って「砦防衛」にしました(笑)
 もちろん、砦のボスはちょっとヤな感じの人にして「たとえ死んでてもそれほど申し訳ないとPCに思わせない工夫」は万全(汗)

 NWNというゲーム的な話に戻りますと、難しかったのは「オークの攻撃力」と「扉の耐久度」「NPC兵士の強さ」のバランスでした。オークが強すぎると簡単に蹂躙されちゃうし、扉が硬すぎるといつまでも壊せないので緊張感ないし、兵士強すぎても駄目です。というわけで一応テストはしてみたんですが1回やった程度じゃ全然駄目。本番では扉の耐久度はまったくもって良い感じだったんですが、NPC兵士がアッという間に全滅。せっかくPCが考えた作戦も実行できないままやられちゃいました。
 理由はクリティカル。バランス調整した時に、オーク5人VS兵士5人であわせてて、殴り合い始めてからそれなりにチャンバラやり最終的には兵士が一人死亡しオークを全滅させる…というようになったので「ああ、これ良い感じだ」と満足してたんです。でも実際にはいきなりオークのクリティカルが連発し、やつら攻撃力結構高いので兵士即死。一人死んだら人数のバランスも崩れてそのままオークを道連れにしつつも兵士全滅。

 まあおかげでPC側の範囲効果魔法が解禁されたので(笑)勝てましたけどね。
 今回は本当に戦闘の展開は考えてなくて、どうなっても本筋のストーリーには実はそれほど影響なかったんですね。だから戦闘の流れはほとんどアドリブ。僕としては砦側が圧倒的不利な状態で始まるので「砦の人は立て籠もって時間稼ぎし、その間にPCで敵の司令官をやっちまう」というパターンになるかなあと思っててそのための伏線も張ってあったんだけど、実際には「(敵の策略にひっかかって)砦を離れている本隊が戻ってくるまで少ない人数でなんとか守備する」という展開になりました。ある意味、砦の人を見捨てないパターン。PC一行の性格を読み違えてたか!(笑)

 あ、ちなみに最初の僕の目論見はどうなったのかというと、戦場っぽさ、つまり敵の部隊がそれぞれ行動してて味方NPCも動かしつつ戦わせる…というのはひたすら忙しい、という事(笑) 小さい砦とかキャラバン隊程度の規模にしておくべきで、それ以上ならなにかしら自動で動くようにしておかないと厳しい。もしくは複数DM。
 でもPC達を見ていると、右に左に忙しく動いて対応してくれて、それはそれで楽しかったみたいでした。話を聞いてみると、一番楽しかったのは「現状の勢力でいかにして砦を守るか」という方法(作戦)を考えてた時だったみたいでした。やはりDMの価値観がPCの感想と一緒にはならないんだなあと改めて思います。僕は今回たくさんオークが次々に襲ってくる迫力みたいのをメインに捕らえてたけどPC的にはそうではない、と(笑)
 まあ迫力出すならそのための仕掛けや話の盛り上げ方ってのがあるんでしょうね。特にNWNはTRPGと違ってビジュアルがあるわけだから特に。僕は完全にTRPGするツールとして今は使ってるのでビジュアル・エフェクトはかなり適当つーか薄いけど、もっと気を使ってみるべきかもしれませんな。

 さて、今回の教訓。
 ファクションはきちんと設定しよう!
 適当にやっとくとあとで自分が大変(笑)特に今回のシナリオのようなPC以外の勢力がいくつか出てきたりするやつ。


●1月22日
 3回から4回は間が空いたけど、今回はいきなり2日後(笑)
 練習キャンペーン最終回。ロード・オブ・ザ・リングにかけてるわけでは決してないけど指輪の話(汗)
 まあ、取られた指輪を取り戻せ、というシナリオです。

 キャンペーンなので、ここまで話としてのつながりはあって、それが今回一区切りされるので最終回という事に。いつまでも続けていけそうな感じだけど、いつまでも練習キャンペーンてのも申し訳ない。

 以前に、このキャンペーンシナリオを固定メンバーではないフリーセッションでやってみたらどうだろう、という話が出て、僕も調子に乗って多少その気になってたのですが、今回それを完全に忘れてシナリオ作ってしまいました(笑)
 どういう事かというと、参加キャラクターにオーダーメイドでイベント組んじゃったんですよね(笑)

 今回の僕の目論見ってのは特にありません。最終回ならそれらしく盛り上げる事と、軽く世界でも救っておこう、くらい。構想そのものはギリギリまで決まんなくて困ってたんですが、キャンペーン4回目までにそれぞれのキャラクターが作り上げられてくれたおかげでそれを使う事にしました。
 戦闘はほとんどなし。数値やデータに出てこないキャラクターへの精神攻撃という僕の好きな事やらせてもらいました。まあ、2回目から登場のソーサラー君が主人公的位置づけなのは理解してもらってるなーと思ってたので基本的には彼のためのシナリオ。このキャンペーン2回目以降って、結局は彼の旅立ちのお話だったんだなあって最後に分かりました(笑)

 プレイヤーの皆さんはセッション終了後、お互いのイベントについてはゲーム中断片的にしかわからないので(シナリオ途中で全員バラバラになって、それぞれのイベントが進行する。その間、故意にパーティー会話を使ってもらいました)、どうだった?みたいな話になるかと思ったけど、皆が「秘密」というのであまりこの話題では盛り上がらなかったな(笑)
 ただ、何かしらこのキャンペーンに参加して楽しんだり思ったりしてくれたらいいし、そういう反応みたいのはもらってたので僕もまあ、良かったかな、と思います。

 本当は、こういうキャラクターを作り上げていくきっかけになるシナリオを全員同時でなくても個人的に挟みつつキャンペーンするのが好きなんです。だからこのシナリオをやった後、「さあ! というわけで、これからですよ」という気分なわけだけど今回はおしまい。ただまたこのキャラクター達に再会する機会は作ってあげたいと思います。

 さて今回の教訓。
 やっぱりビジュアルとかエフェクトにもそれなりに拘ろう!
 「まぶしい光が君達を包み込み、目の前が真っ白になった。君達はそのまま意識を失う」という言葉も想像力を刺激してとてもいいんだけど、この言葉と共に光ったりしたほうがいいですね。だってゲーム画面があるしねえ。


●1月27日
 さて、今回からは翻訳されたMODのテストを兼ねて新キャンペーンの開始です。
 NWNでいいなあって思うのは、毎回DMを誰かがやる必要があるわけではない事ですね。たとえばなんとなくDMやる気分じゃないなあって時はDM不要のMODたくさんあるわけですし。
 今回からスタートのMODは細かく作られているし、導入がすごくおもしろく興味を引く感じです。いきなり謎を抱えてスタートするタイプで、洋ゲーっぽいなあ、と。ボリューム的には長いほうだと聞いてますのでしばらくは楽しめそうです。

 僕はというと、いくつかやりたい事/やってみたい事があります。
 一つは、まだやった事ないMODでNWCJに登録されているのってたくさんあるんですよね。クリアしてないのとかもあるし。それらをやってみたい。ソロ推奨ならいいけどマルチ推奨なら、もちろんマルチで。MQとは別にセッション立ててプレイヤー募集とかしてみたいという野望もあります。ただ、いろいろと手一杯で時間・気力ともに…。一緒にやろうよ、という方がいたらそれに乗っかったりできるんですがね(汗)
 あと、実はDMセッションにプレイヤーとして参加するのは未経験なので、どなたかのDMセッションに参加する野望。ただこれは時間的に都合がつかなくて。もし連作とか連続となるとまず不可能だし…。単発で時間の都合も良いやつを狙ってはいるんですが。

 それと今回の練習キャンペーンをフリーでやるのは止めました。やっぱり今回のは誰とでも出来るものではない、というか、キャラの性格とか読んだ上でシナリオ作ってたり、その日のシナリオの終わり方で結構次のシナリオ作り変えたり作ってたりしてきたので一回かぎりのものであるべきだと思ったわけです。僕自身も楽しめないかもしれない。
 ただ、DM不要のMOD作りに興味が出てきたので、今回のキャンペーンの中から抜き出して再構成したものを何か作りたいなあと思ってはいます。せっかく作った資源をリサイクルしたいし(笑)

 あとは次期キャンペーンの構想と単発シナリオの構想が1つずつ。形になるかどうかは不明。
 キャンペーンはやはり全5回くらいのもの。構想というほどのものは出来てなくてアイデアの種みたいな状態。1レベルからスタートして20近くまでぼちぼち続けていけるような、ながーいまったりキャンペーンも好きだけどこれは好き嫌いありそうだなあ。やっぱりそうするにしても、何回かに区切っていくべきか。
 単発シナリオは、ソロ専用DMセッションという変なやつです。アイデアだけで実際におもしろいかどうか等はまったく未知数。お試し用のやつを作ってテストしてもらおうかなあ。

 まあ、などなどと、今年もNWN遊んでいこうてな具合なんです。早く拡張パックとか正式版のパッチとか出ないもんですかね。マジで!


●2月12日
 MQでは翻訳されたMODのテストプレイ中。

 僕はこの日、休日だったのですが朝からなんとなくツールセットをいじっていました。
 もともとは次のキャンペーンやMODにハードコアルールセット(HCR)を使うというのに興味を持っていたのでそれをNWNVultから落してきて試してみたのですが…ほとんどのスクリプトでエラーが発生。これは予想してた事で、日本語版のバージョンが古いからなんですが、やっぱりか、というところ。
 古いバージョン探してみたけど断念。それで「スクリプトをいじって現在の自分のバージョンで使えるようにする」というのを考えたんですが、ちょっと中身見て全然意味わかんないのでこれも断念(笑)

 どうしようかなあ…とボケーっとHCRの解説ページを見ていて、現在僕にとって必要というか、僕が欲しいと思ってる機能はHCRの全部ではないんだという事に気がつきました。
 もちろんあったらいいなと思う部分もたくさんあるけど、なくてもいいやというものも多い。それにないほうがいい、というのもある。

 FRの紹介をしてるくらいなので、基本的には僕のシナリオは全て舞台がFRなわけです。だからサブ種族とかも使えたらいいと思うし、死んだらフーガプレーンに飛ばされて欲しいし、元のルールに忠実な死のルール(HP0〜−10までは瀕死で死んでない)であって欲しいと思うわけです。
 でも食事のルールは正直どうかと思ってきて…。常設とかH&SなMODならいいんだろうけど、DMセッションとかの時にPCが今後の方針を話し合っているとすぐにお腹が空いてしまう。これはゲーム内時間が早い(ゲーム内の時間のスピードって設定できないんでしょうか?)からなんですが、ちょっと邪魔かなあと。だけど、食事のルールは欲しい。
 キャンプ(休息)が無制限なのは僕もどうかと思うので制限したいのですが(街中ならいいんだけど荒野にいるのにすぐに座って安全に回復できるのはちょっと変)時間制限ではなくしたい。というのも休息したいと思ったときにできなくて「あ、あと1時間でまた休息できるようになるから待って」と言うのが変。そもそも僕はどこでも安全に休めるというのがたぶん気に入らないのだと思うので、なら危険を伴うようにすればいい。
 これくらいなら、再現できるスクリプトがどこかに落ちてた気がするのでやれそうだぞ、と思い着手しました。

 HCRは確かに魅力的なんだけど、常設とかDMなしMOD向けっていうか…そんな感じが少しありますね。まあ将来的にはHCRも使ってみようと思いますし、自分が望む形を再現できるように中身をいじったりできるようになったら…いいんですけど(笑)

 とりあえず、Vaultとかでスクリプトを漁ってみたりスクリプトジェネレーター弄ってみたりしてるうちに…本来の目的を忘れて釣りスクリプトやアイテム製作スクリプト・デーモン召喚リングのスクリプトなどを試してて数時間経過…(笑)

 気を取り直して、休息するとランダムにエンカウントするスクリプトと、休息するのにアイテムが必要になるスクリプトを拾ってきました。一部英語なのを日本語にして、ちょっとだけ設定をいじったり自分で設定するところを設定したりしてました。もちろん説明文を読みながらですが、それでも少しは中身を触われるようになったんですねー(笑)
 休息アイテムはもともとポーションの設定だったんですがそれを食料に変更。まあタグとブループリントの名前を変えないように、アイテム名称と外見を変更しただけで上手く行きました。

 そしてセットするわけですが、問題発生。両方とも休息に関係することなのでモジュールプロパティのPlayerRestイベントにセットするんですよね。でも1個しか入れられない。
 なら、まとめて一つにするしかないわけですが…どうしたらいいんだろう?
 まあ、ここはやってみるしかないので、とりあえず片方のスクリプトをもう一方に全部コピペしてみました(笑)
 もちろんコンパイルエラー(笑)

 ここで昔、わけもわからずにスクリプト開いてみた時の経験が活きてくるのです。昔にスクリプト見てたときに、全てのスクリプトは

void main()


 から始まって



 で終わる。
 という、おそらくものすごく当たり前な事を確認してたのですが、今回のスクリプトにはそれが二つ入ってしまってるんですね。コピペしただけなので当たり前だけど。
 プログラムというのは頭から順に処理していって、関係ないところは素通りする…というか動作しない、というのは基本的にどれでも同じだと思うんです。(ですよね?たぶん…)
 だから単純に並べただけでも動くだろう…な予想はあったんです。でも、このスクリプトにおける基本ルールが間違ってしまっているんだろうなあ、ということでまずエラーの出ていた

void main()



{ }

を全てコンパイル(普通にスクリプトセーブすると自動的にしてくれます)してチェックしながら削除。
そしたら…動いてしまいました(笑)

 予想はしてたけど、結構衝撃(笑)
 そして、これによって僕が実現できることがものすごく増えたという事です!
 今まで、スクリプトをセットするスロットが1つしかないところに、2つ以上のものを入れたいというのがたびたびあって、諦めてきたんですが、今後はこの方法でまとめてしまうことが可能になったわけです!(笑)

 もちろん全てというわけではないだろうし、こうして出来たスクリプトはすごく不恰好でたくさん入れすぎると重くなりそうだけど、確かにまた一歩前進できたと思います。

今回の教訓
興味があったら、わからなくてもスクリプトはとりあえず開いてみよう!
まず第一歩を踏まないと始まりません。あとは一歩一歩やっていきましょ。

今回のまとめ
スクリプトをまとめる時は、全部コピペして、セーブ時にコンパイルエラーと出たvoid main()と{ }を全部消す。
(あまり堂々と書くことではないかもしれない…大目にみてください(汗))


●2月19日
 結局、今日も1日スクリプトで終わってしまいました…。
 前回の結果、じゃあいろんなスクリプトを使って自分の思うような形に出来るんだーという希望を抱いてしまったわけですが、それでNWNVaultのスクリプトを漁っては試す…みたいなのを繰り返していました。

 目的は一応あって、前回導入したり作ったりしたスクリプトに気に入らない部分があったので、そこを改善できるものを探してたんですが、やっぱりだんだんと目的を忘れてあれもこれもと試して時間を潰してしまいました(笑)

 とはいっても、スクリプトを入れて動作確認する…というのをただ繰り返していたわけではなくて、どこがどういう動きをしてそうなるのか…という構造などを、スクリプト開いて考えながらやってました。
 まあ、全部ちゃんと理解しながら次ってわけではまったくなくて、斜めに読み程度。気になったらNWN Lexicon JPNで調べて説明を軽く読んでみるくらいなもんですが。

 結局、目的を見失ったままダラダラとそんな事をしてました(笑)
 でも、なんというか、最初に比べてNWNスクリプトってどういうもんか、というのが少しわかってきたような気がします。より身近になってきたっていうか、そんなに構える必要がなくなってきた感じ。もしかしてそれはすごく大切な進歩かもしれませんね。

 今回はもう一つ、他のスクリプトの一部分だけを切り出して別のスクリプトに組み込むというような事もやってみました。まあ、前回のような形で合体できちゃうんならそれもできるだろう…と。
 で、命令文の部分だけ切り取ってコピペしてみたけど上手く行かない。なんでだろう…と、眺めてみるとそれも当然。パラメータの定義がされてないんですね。パラメータというか関数?ですかね。
 スクリプトの中で使われている”oPC”とか”oObject”とかそういうのが、何を表しているかというのを最初に定義してやらないといけない。なのでそれらを定義している部分も抜き出して最初にコピペしてやったら動きました!

 ここまでやってきて、前回の組み合わせて作ったスクリプトを見ていると同じものを同じように定義している部分があるんですね。”oPC”とか良く使われていますし、今回は同じようになってたからいいけどもし同じ関数を使ってて定義というか中身が違ってたら、ただ組み合わせただけじゃ動かないんでしょうね。
 まあすっきりさせようとおもって重複している部分は消して動作確認。問題なし。

 だいぶやれそうな自信もついてきたかも〜。

 適当なテスト用のエリアとか作って試行錯誤いろいろとしてみるのはとても良いかもしれない。もちろん計画的にやれればなお良しですが(笑)


●2月26日
 最近ずっとスクリプトいじっているわけですが、無目的というか目的を見失いやすいのでMOD作り始めて同時に進める事にしました。

 とりあえずは休息のルールとかそういう全体的なルールに関するスクリプトだけ作って、あとは作りながら追加変更していこうという予定です。

 そんなわけで基本ルールのスクリプト。
 ほとんどは前回までいじってきたやつを使うつもりでいるんですが、それでもまだ変更したい部分が二つあって、一つは「鎧を着たまま休息するとペナルティーを受ける」もう一つは「焚き火に薪を入れると明るくなる」というやつ。

 鎧ペナルティーは前回の切り取り組み込みを利用してHCRから切り出そうと思ったんですが…どこにこれがあるのかわからない。なんとなくそれっぽいの発見したけど、どこからどこまで切り出せばやってもらえるのか全然わからない…。仕方ないのでLexiconJPNで関数とかチェックするだけしてみて、とりあえず放置。

 薪で明るくなる…はそういうスクリプト探してみたりしたけど見当たらない。ほかのMODのスクリプトから似たようなやつを見つけてみようとしてみたけど膨大すぎて見当ついてないと時間の無駄…。

 悩んだ末に、「ああーもうこうなったら自分で書くかあ!」という結論に!
 こういうのはやる気になった時にやるのがいいので、まずはTRPG OnlineさんのNWN特集にあるスクリプトチュートリアルを読む。
 読みながら、いろいろと頭の中で構築してみる。

 ちなみに、この記事はすごいイイです。僕は読んだだけだけど、初めての人でもここに書いてある通りにスクリプトを実際に書いて動作を見ながらやっていけばすごく身に付くと思います。

 それから、TRPG OnlineさんとLexiconJPNを交互に見ながらスクリプトツールをいじって数時間…(まあ実際には1時間くらいかなあ(笑))
 ついに「薪を入れると明るく光る焚き火」が完成!
 いや〜自分で作ったスクリプトが思い通りに動いているのを見るのはすごいうれしいもんですね。始めてのやつは特に。

 そのあと続けて、鎧ペナルティーに着手。
 これについてはある程度どんなコマンドが使われるのかをチェックはしてあるけど、条件付けとか必要なわけだし難しいかなあと思ったけど、LexiconJPN見ながらやったら案外と楽に出来ちゃいました。

 いや、この日は結構感動というか満足して寝られました。始めて自分でスクリプトを書いてみて、うまく動いてくれた日になりました!

 今日の教訓。
 思い立ったが吉日。やる気になった時に気合入れて突撃してみましょう!
 とりあえず書いてみる。スクリプトチュートリアルにも「とりあえず書いて見てください」と書かれていたけどあれは本当。あれを読みながら勉強始めてみるなら指示通りに書いてやってみるべき!

 TRPG Onlineさん、NWN Lexicon JPNの皆さん、には本当に大感謝!


戻る