SEGA PC LOCALIZED GAME OFFICIAL SITE のトップページへ
NewsBBSNeverwinterNightsBaldursGate2BaldursGateIcewindDalePlanescapeTorment


ネヴァーウィンター・ナイツ日本語版サポートページ トップへ
Download


[トップ] >> [ダウンロード] >> [夢魔の城塞]

ダウンロード

ここでは、『ネヴァーウィンター・ナイツ 日本語版』に関連したファイルのダウンロードサービスを行っています。

2008/ 8/ 7 (アップデート) バージョン1.69 アップデートパッチ(手動用)

2004/ 9/22 (モジュール) JGC2004 SEGAPCオリジナル「魔女の棲む島」

2003/11/21 (モジュール) AMC2003 TRPGコラボレート「夢魔の城塞」

2003/ 4/17 (モジュール) コンテスト・オブ・チャンピオン0492 日本語版

2003/ 4/ 4 (モジュール) 病魔の坑道






(モジュール) AMC2003 TRPGコラボレート「夢魔の城塞」

この地に迷い込んだら最期、二度と生きて帰ることはできない…。 いや、死を迎えさえしても抜け出すことのできぬ、呪われた土地…。


このシナリオは、呪われた土地に迷い込んでしまった冒険者の一行が、その地を支配する呪いを打ち破り、脱出するまでの冒険を描く物語です。

残念なことに、呪いの起源は知られていません。 魔城の主であるヴァンパイアの呪いであるとも、その城に棲む魔女であるとも、あるいは、街道にたたずむ吟遊詩人が起源であるとも言われています。 いずれにせよ、彼らをこの呪われた地から解き放つことができるかどうかは、あなたたちの行動にかかっているのです…。

このシナリオは、TRPGイベント「AMC2003」にて使用した、シナリオ原案/協力 AMC2003実行委員会、制作 セガ による、CRPG(コンピュータ・RPG)とTRPG(テーブルトーク・RPG)のコラボレーション・モジュールをオンライン・セッション用に調整したものです。

「AMC2003」では、5台のコンピュータをLANで接続することで、お互いの顔の見えるマルチプレイセッションを実現しました。 シナリオ部分はDMとプレイヤー同士が実際に会話することで進行させ、戦闘シーンを『ネヴァーウィンター・ナイツ 日本語版』で楽しむという新しい試みは、お互いの声を聴き共に笑い合うTRPGならではの楽しさと、映像や音楽・スピーディな展開というCRPGならではの楽しさの両方を一度に味わえるものでした。 当日ご参加いただいた皆様、ありがとうございました。

今回はこのシナリオを、テーブルトークDM無しでもプレイできるように調整いたしましたので、当日参加できなかった皆様にも、ダウンロードして楽しんでいただければ幸いです。


TRPGイベント「AMC2003」で使用したデータを若干調整しています。

   ご注意

ファイルの運用・セットアップによって起こる全てのトラブルに対して、弊社は責任を負いません。あらかじめご了承の上、自己責任のもとでファイルのセットアップをおこなってください。

このモジュールは、バージョン1.29で作成したモジュールですので、お使いの『ネヴァーウィンター・ナイツ 日本語版』をバージョン1.29以降にアップデートしておく必要があります。 バージョン1.27(製品インストール直後)をご使用の方は、「アップデート」をご覧になり、バージョン1.29にアップデートしてからご利用ください。


ダウンロード & 使用方法

(1) 
下記のファイル名をクリックして、ファイルのダウンロードを行ってください。
(ファイルの保存先はどこでも構いません。デスクトップなど操作しやすい場所に保存することをお勧めいたします)

(2) 
ファイルのダウンロードが完了しましたら、「nwn_amc2003.exe」をダブルクリック(実行)します。

(3) 
『「夢魔の城塞」をインストールしますか?』とダイアログウィンドウが表示されますのでよろしければ[はい(Y)]ボタンをクリックします。

(4) 
1 file was successfully installed.』と表示されれば、モジュール「夢魔の城塞」のインストールは完了です。

「夢魔の城塞」をプレイするには、上記のインストールを行ってから、『ネヴァーウィンター・ナイツ 日本語版』を起動してメインメニュー画面の「新規」をクリックし、さらに「その他のモジュール」をクリックしてください。
モジュールの選択画面で「夢魔の城塞」を選んでゲームをはじめます。

「マルチプレイヤー」でもプレイすることが可能です。 詳しくは、取扱説明書29ページ「マルチプレイヤーモード」およびネットワークプレイ(マルチプレイ)の遊び方をご覧ください。

ダウンロード
想定PCレベル:
プレイ人数: 4人

シナリオ原案/協力:
AMC実行委員会

制作: セガ

呪われた地に迷い込んでしまった冒険者一行…。 この地に迷い込んだ者は生死をさ迷い、呪いを解かない限り最後には蠢く死体と化してしまう。 呪いの起源は吸血鬼か、魔女か、はたまた吟遊詩人か?  呪いが解けるかどうかは、あなたたちの行動にかかっている!
※バージョン1.29で作成したモジュールです


自作のシナリオ(モジュール)にエフェクトを追加してみよう!

「夢魔の城塞」や『ネヴァーウィンター・ナイツ 日本語版』本編のシナリオ内では、様々なエフェクト(映像的演出)がゲーム展開を彩っています。

シナリオの面白さは派手な演出に比例するものではありませんが、その場所の雰囲気を演出したり、モンスターの強さを表現したり、プレイヤーを驚かせたり、プレイヤーの気を引いたり、といったことに上手く使うことで、ゲームに臨場感を与えゲームの進行を円滑なものにすることができます。

ここでは「夢魔の城塞」で使われているスクリプトをサンプルとして、エフェクトの追加方法を解説します。

基本的な「オーロラ・ツールセット」の使用方法について、ここでは特に触れません。 あまり「オーロラ・ツールセット」を使ったことのない方は、当ページを読み進む前に、取扱説明書186ページ「第4章 冒険世界の自作と管理」、「ツールセット 入門編」「ツールセット チュートリアル」をご覧いただき「オーロラ・ツールセット」の使い方をご確認ください。

「スクリプト・エディタ」については、【ツールセット チュートリアル】チュートリアル 9:スクリプト「スクリプト・エディタの使い方」をご参照ください。

NWスクリプト言語を使ってエフェクトを加える

エフェクトを加える方法はいくつかありますが、今回は「スクリプト・エディタ」を用い、スクリプトの"ApplyEffectToObject"関数を利用して、ゲーム中に発生する様々なイベントの際にエフェクトを発生させる方法をご紹介します。

スクリプトを使った経験が無い方は、「スクリプトは難しそうだなあ」と思うかもしれませんが、シンプルな演出に使う場合は、スクリプトも簡単な記述だけで済みますから、この「自作のシナリオ(モジュール)にエフェクトを追加してみよう!」からスクリプトを始めてみてはいかがでしょうか?

それでは、オーロラ・ツールセットを立ち上げ、メニュー「ツール」より「スクリプト・エディタ」を選択しましょう。

フィルタ欄に「Apply」と入力すると

ApplyEffectAtLocation
ApplyEffectToObject

の2つの関数が表示されます。 "ApplyEffectAtLocation"関数は、場所に対してエフェクトを発生させる関数です。 "ApplyEffectToObject"関数は、オブジェクト(クリーチャーやアイテムなど)に対してエフェクトを発生させます。 今回は"ApplyEffectToObject"関数を使用します。


関数の使い方(仕様)を確認する

内容一覧に表示されている「ApplyEffectToObject」をクリックしてみてください。 ヘルプウィンドウに以下のように"ApplyEffectToObject"関数の使い方(仕様)が表示されます。 (これを関数の「プロトタイプ」と呼びます)

// Apply eEffect to oTarget.
void ApplyEffectToObject(int nDurationType,  effect eEffect,
                         object oTarget,  float fDuration=0.0f)

"ApplyEffectToObject"関数は4つのパラメータを必要とする関数であることがわかります。

第1パラメータ: int nDurationType

エフェクトの持続時間を指定します。このパラメータには定数を指定することができます。 フィルタ欄に「Duration」と入力し、[定数]ボタンをクリックするとフィルタ内容一覧に「DURATION_TYPE_INSTANT」、「DURATION_TYPE_PERMANENT」、「DURATION_TYPE_TEMPORARY」という定数が表示されます。 それぞれの定数は、「瞬間的」、「永続的」、「指定時間(第4パラメータfloat fDurationに指定した時間)」、のようにエフェクトの持続時間を示しています。

第2パラメータ: effect eEffect

エフェクトの種類を指定します。 エフェクトの種類の指定方法はいろいろありますが、今回は"EffectVisualEffect"関数を使い「VFX_...」定数を指定する方法を使います。

第3パラメータ: object oTarget

エフェクトを適用するオブジェクトを指定します。

第4パラメータ: float fDuration

第1パラメータに「DURATION_TYPE_TEMPORARY」を指定した場合に、エフェクトの継続時間を指定します。 float fDuration=0.0fというのは「このパラメータは省略することができ、省略した場合は「0」が適用される」ということを意味しています。


「スクリプト・エディタ」で実際に書いてみよう

実際にスクリプトの中に書き込むときは、以下のように記述し、文の終わりに「;」を付加します。

void main()
{
  ApplyEffectToObject(DURATION_TYPE_INSTANT,
                      EffectVisualEffect(VFX_IMP_LIGHTNING_M),
                      OBJECT_SELF);
}

この例では、エフェクト持続時間を「瞬間」、エフェクトの種類を"EffectVisualEffect"関数に定数「VFX_IMP_LIGHTNING_M」を与えたものを指定、エフェクトの対象をこのスクリプトが設定されたオブジェクト自身、に設定しています。 (4つ目のパラメータは省略しています)

このスクリプトが実行されると、「スクリプトを実行したオブジェクト」に対して「稲妻のエフェクト」が「瞬間的」に発生します。


スクリプトを使ってみよう

それでは、このスクリプトに名前を付けて保存しましょう。 (「effect」と名前を付けておきます)

保存したら「エリア・ウィザード」を使用して適当なエリアを作成し、作成したエリアに「ゴブリン」を配置します。

配置した「ゴブリン」のプロパティより、「スクリプト」項を開き、OnDeath項目の[…]ボタンをクリックして、「effect」スクリプトを指定します。

「ゴブリン」のプロパティ・ウィンドウの[OK]ボタンをクリックして閉じ、モジュールの保存を行います。

『ネヴァーウィンター・ナイツ 日本語版』を起動し、[新規]より、先ほど保存したモジュールを選び、ゲームを始めます。

先ほど配置した「ゴブリン」を探し出し、倒してみましょう!  「ゴブリン」を倒すと、青白い稲妻が立ち上るエフェクトが発生します。

スクリプト内の定数「VFX_IMP_LIGHTNING_M」を他の「VFX_...」に変更すると「ゴブリン」を倒したときに発生させるエフェクトを変更することができます。 例えば、「VFX_FNF_FIREBALL」に変更すると、ファイアーボールが炸裂した時のような火炎爆発のエフェクトを発生させることができます。

このようにシンプルなエフェクトを追加するなら、たった一行のスクリプトを追加するだけで実現することができます。


モジュール「夢魔の城塞」のスクリプトを覗いてみよう

オーロラ・ツールセットを起動し、「夢魔の城塞」を読み込みましょう。


skeleton_death01 復活のスクリプト


まずは、シナリオの最初の方のシーンで登場する「何度倒しても復活するスケルトン」のスクリプトを見てみましょう。

スクリプトの「skeleton_death01」を右クリックして「編集」を選択します。 スクリプト・エディタが起動します。

#include "NW_I0_GENERIC"
void main()
{
  object oabc = GetObjectByTag("abc01");
  if(GetLocalInt(oabc, "skeleton_death") == 0)
  {
    location lNPC =  GetLocation(OBJECT_SELF);
    ApplyEffectToObject(DURATION_TYPE_INSTANT,
                        EffectVisualEffect(VFX_IMP_HARM),
                        OBJECT_SELF);
    CreateObject(OBJECT_TYPE_CREATURE,"skeleton001",lNPC);
  }
  else
  {
    ApplyEffectToObject(DURATION_TYPE_INSTANT,
                        EffectVisualEffect(VFX_IMP_HEALING_X),
                        OBJECT_SELF);
  }
}

クリーチャーが死ぬときは、『ネヴァーウィンター・ナイツ 日本語版』の基本スクリプトに従って死亡の処理が行われます。 この処理の直前に、エフェクトと共に同じクリーチャーを死んだ位置に出現させることで、あたかも復活したように見せています。

"if"条件式で、クリーチャーを作るか作らないかを決定します。 ボスが死ぬとローカル変数が変更され(skeleton_death)、その変数でボスが死んでいるかどうかを判定します。 もし死んでいればクリーチャーは作られず、"else"以降が実行され、エフェクトと共に死亡処理に移ります。

今回、"ApplyEffectToObject"関数には、持続時間は「DURATION_TYPE_INSTANT」で瞬間に、エフェクトの種類は「EffectVisualEffect」で視覚エフェクトに、発生させるエフェクトは「VFX_IMP_HARM」でハームに、エフェクトの対象は「OBJECT_SELF」で自分を指定しています。 また、同じ式で発生させるエフェクトを「VFX_IMP_HEALING_X」に書き換えて、"else"以降でヒールのエフェクトを使用しています。

クリーチャーを作り出す"CreateObject"関数には、「作り出すオブジェクトのタイプ」「作り出すもの」「作り出す場所」が必要です。 スケルトンを作るので「skeleton001」を、「GetLocation(OBJECT_SELF)」で死亡したオブジェクトと同じ位置を指定しています。 (注:"CreateObject"関数の第2パラメータで使うのはタグではなく、ブループリントResRefですのでご注意ください)


create_gargoyle 火ばちのスクリプト


次に、シナリオ中盤「夢魔の城塞」内に登場する「近づくと爆発してモンスターが出現する火ばち」のスクリプトを見てみましょう。

スクリプトの「create_gargoyle」を右クリックして「編集」を選択します。 スクリプト・エディタが起動します。

void CreateGargoyle(object oPC)
{
  object oGargoyle = CreateObject(OBJECT_TYPE_CREATURE,
                                  "nw_fire",
                                  GetLocation(OBJECT_SELF));
  DelayCommand(0.1, AssignCommand(oGargoyle, ActionAttack(oPC)));
}

void main()
{
  object oCreature = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,
                                        PLAYER_CHAR_IS_PC);
  if (GetIsObjectValid(oCreature) == TRUE
      && GetDistanceToObject(oCreature) < 7.0)
  {
    DelayCommand(0.1, CreateGargoyle(oCreature));
    effect eDam = EffectDamage(500);
    SetPlotFlag(OBJECT_SELF, FALSE);
    ApplyEffectToObject(DURATION_TYPE_INSTANT,
                        EffectVisualEffect(VFX_FNF_FIREBALL),
                        OBJECT_SELF);
    ApplyEffectToObject(DURATION_TYPE_INSTANT,
                        eDam, OBJECT_SELF);
  }
}

このスクリプトでは、1行目からの"void CreateGargoyle() { ... }"でクリーチャーを出現させる"CreateGargoyle"関数を定義して、"main"関数("void main()"以降)から呼び出しています。

"CreateGargoyle"関数は、元々、『ネヴァーウィンター・ナイツ 日本語版』本編で使用されていた、ガーゴイルを作り出してプレイヤーに攻撃させるという関数です。 この中の"CreateObject"関数でガーゴイルを作り出す部分の「NW_GARGOYLE」を「nw_fire」に書き変えて、作られる対象をファイアーエレメンタルに設定しています。

"main"関数では、"GetNearestCreature"関数と、"if"の条件式でプレイヤーが7メートル以内にいるかを判定し、"CreateGargoyle"関数を実行した(ファイアーエレメンタルを出現させた)後で、オブジェクトの破壊を行うスクリプトです。 この中に先程作成した"ApplyEffectToObject"関数の記述をコピーして、エフェクトの種類を「EffectVisualEffect(VFX_FNF_FIREBALL)」に書き換えることで、火ばちにファイアーボールのエフェクトを発生させ、火ばちが爆発したように見せています。


おわりに

スクリプトを使用したエフェクトの追加方法は、いかがでしたでしょうか。 エフェクトの追加はゲームの面白さの本質を決定するものではありませんが、その場の雰囲気などゲームに彩りを加える重要な要素の1つです。

このコラム「自作のシナリオ(モジュール)にエフェクトを追加してみよう!」が、皆様のモジュール制作のご参考になれば幸いです。





[ このページのトップに戻る ]


SEGA PC LOCALIZED GAME OFFICIAL SITE トップページへ
ネヴァーウィンター・ナイツ日本語版 サポートページ:トップへ ■

ネヴァーウィンター・ナイツ日本語版:紹介ページへ ■

SEGA PC LOCALIZED GAME OFFICIAL SITE トップページへ ■