NWNノート @Wiki

技能の追加

最終更新:

nwn_note

- view
管理者のみ編集可
訪問者:本日 - - 人 / 昨日 - - 人 / 全体 - -


技能の追加


概要

   プレイヤーが何かを行った時の成功・失敗を判定する際に使用する判定基準が技能と呼ばれる値です。
標準的な技能はNWNで用意されていますが、ユーザーが新しい技能を判定の基準にしたい場合には新しい技能を追加する必要があります。
以下に、どのようにして新しい技能を追加すればよいかを説明します。

新しい技能の作成手順

   ユーザーが新しい技能を追加したい場合は、skills.2daを編集する必要があります。

  1) NWN ExplororまたはNWN Viewerで最新のskills.2daを取得します。
    拡張セットをインストールしていない場合はNWN Viewerでも取得できますが、拡張セットがインストールされている場合は、NWN Viewerでは取得できません。
NWN Explororを使用して下さい。

    NWN Viewer
http://nwvault.ign.com/View.php?view=Other.Detail&id=340

    NWN Exploror
http://nwvault.ign.com/View.php?view=Other.Detail&id=248

    a) NWN ExplororでGame Data配下にあるskills.2daを選択します。
      NWN本体のみの場合は、NWN Main Data - data\2da.bif - Game Data配下
SoU導入済みの場合は、NWN:SoU Main Data - data\xp1.bif - Game Data配下
HotU導入済みの場合は、NWN:HotU Main Data - data\xp2.bif - Game Data配下
にskills.2daがあります。

なお、公式パッチを適用している場合は更に
SoU導入済みの場合は、NWN:SoU Patch Data - data\xp1patch.bif - Game Data配下
HotU導入済みの場合は、NWN:HotU Patch Data - data\xp2patch.bif - Game Data配下
に存在することもあります。(公式パッチ1.68時点ではPatch Data配下にはskills.2daはありません。)

   

    b) メニューのResourceからExportを選択もしくは右クリックメニューでExportを選択します。
     

    c) 「名前をつけて保存」ダイアログが表示されるので、名前をskills.2daとして保存ボタンを押します。
   

  2) 取得したskills.2daを編集します。
    skills.2daはテキストファイルですので、適当なテキストエディタで編集できます。
 

    2daファイルはどのファイルでも同じような書式になっています。
2daファイルの共通書式については、2daファイルの書式を参照して下さい。

    各カラムの意味は以下の通りです。

    Label スキルID
    Name スキル名称のStrRef
    Description スキル説明のStrRef
    Icon スキル一覧に表示するアイコンのファイル名
アイコンのプレフィックスはisk_です
    Untrained 技能ランクが0でも技能判定に用いることができるかどうかを指定
0は不可、1は0でも用いることができる
    KeyAbility 関連能力を指定
技能判定時に加算される能力ボーナス・ペナルティ値になる
    ArmorCheckPenalty スキル判定時に防具の種類によるペナルティが影響するかどうかを指定
0は影響なし、1は影響あり
防具の種類によるペナルティは防具によるペナルティ?を参照
    AllClassesCanUse 全てのクラスがこのスキルを習得できるかを指定
0は習得できるクラスが限定される、1は全てのクラスで習得可能
    Category スキルの分類
未使用
    MaxCR 最大のチャレンジ・レート値
説明資料がないので詳細は不明
    Constant スクリプト中でスキルを判定する際に使用するID
スクリプト中ではここで指定したIDで参照できる
    HostileSkill 敵対的な技能
使用すると敵対的な行為に見なされるかどうかを指定
0は敵対的行為ではない、1は敵対的行為である

    上記の説明を元にskills.2daに追加したい技能を新しい行に記述します。
なお、番号は既存の番号の次から指定して下さい。

  3) 技能用のアイコンを用意します。
    アイコンはサイズが32x32、色数は24BPで、TGA形式で作成します。
または、既存のアイコンを使用したい場合はNWN ViewerまたはNWN Explororで取得することもできます。
格納先はNWN Main Data->data\aurora_gui.bif->Textures, TGA配下にあります。

  4) 技能用のTLKファイルを作成します。
TLKファイルの作成方法はTLKについてを参照して下さい。

  以上の手順で新しい技能が作成できます。

新しい技能の追加手順(オーバーライド)


  オーバーライドによる技能の追加は、どのモジュールでも技能を追加することができるという点が最大の利点です。
この方法で技能を追加すると公式キャンペーンでも使用することができます。
但し、技能の場合はモジュール中で技能チェックを行わない限り、持っていても何も役に立ちません。
また、オーバーライドで追加した場合はどのモジュールにでも追加されるため、見えなくすることができません。
オーバーライドには以上のような利点と欠点があることを覚えておいてください。

  今回追加する技能はゴブリンと仲良くなるための素敵なスキル「言語 - ゴブリン語」を追加してみます。

  1) 上記の手順に従って、最新のskills.2daを取得します。
  2) 取得したskills.2daをテキストエディタで開き、新しい技能を追加します。
なお、データ番号は26まで使用されているため、27としています。
   

    今回は以下のように追加しました。
    Label 他と重ならない名前にするために「LangGoblin」を指定
    Name 技能名の文字列番号として「110900」を指定
    Description 技能の説明の文字列番号として「110901」を指定
    Icon アイコンは「isk_goblin」を指定
    Untrained 技能ランクが0の場合は使用不可とするため「0」を指定
    KeyAbility 関連能力は言語ということで「WIS」を指定
    ArmorCheckPenalty 防具のペナルティは関係ないので「0」を指定
    AllClassesCanUse 全てのクラスで習得できるため「1」を指定
    Category スキルの分類は「****(未指定)」
    MaxCR 最大のチャレンジ・レート値は「****(未指定)」
    Constant スクリプト中でのIDは「SKILL_LANG_GOBLIN」を指定
    HostileSkill 敵対的な行為ではないため「0」を指定

  3) 次に技能のアイコン画像を用意します。
今回は下記のようなアイコンを用意しました。
   
    このアイコンを32x32ピクセル、24BPで作成し、TGA形式で保存します。
私の場合はTAKABO SOFT NETWORKで配布している「Edge」で作成して、Irfan Skiljan氏作成の「IrfanView32」でTGA形式に保存しています。

  4) 次に技能用のTLKファイルを作成します。
まず、Dialog TLKで下記のように作成します。
   

    次にメニューから「Merge with dialog.tlk」をクリックして、dialog.tlkとして保存します。(注意:元々あるdialog.tlkは絶対に上書きしないように!)
詳細な手順は「TLKについて」を参照してください。

   これで必要なファイルは全て完成です。

  5) 続いて、作成したファイルをインストールします。
まず、手順2)及び3)で作成したskills.2da及びisk_goblin.tgaをNWNがインストールされているフォルダ配下のoverrideフォルダにコピーします。
   

    次に手順4)で作成したdialog.tlkをNWNがインストールされているフォルダ配下にコピーします。
    重要: コピーする前に元々あるdialog.tlkを別名に変更してください。
        問題があって、元に戻す場合はこのファイルから戻してください。
   

   以上の手順でインストールは完了です。
早速、プレイして確認してみましょう。
   Never Winter Nightsを起動して、適当にモジュールを選択し、新規プレイヤーを作成します。
技能選択画面まで来ると、確認できます。
   

   アイコンが作成したアイコンで表示され、技能名、技能説明も作成した内容で表示されているのがわかると思います。
また、関連能力を判断力(WIS)にし、判断力の能力ボーナスが「+4」となっているため、技能修正値も「+4」となっていることが確認できます。

   以上が、オーバーライドで技能を追加する手順になります。

新しい技能の追加手順(Hak)


  Hakによる技能の追加は、変更を適用するモジュールを限定することができるという点が最大の利点です。
この方法で技能を追加するとオーロラツールセットで明示的にHakを使用することを指定しない限り、適用されることはありません。
反面、いちいち指定しないとHakを使用できないという欠点があります。
Hakには以上のような利点と欠点があることを覚えておいてください。

  今回追加する技能はオークと友達になるための素敵なスキル「言語 - オーク語」を追加してみます。
なお、手順自体はほぼオーバーライドの場合と同じになります。

  1) skills.2daに新しい技能を追加します。
今回は、オーバーライドで追加した技能の次の番号である28を使用しています。

    今回は以下のように追加しました。
    Label 他と重ならない名前にするために「LangOrc」を指定
    Name 技能名の文字列番号として「16777217」を指定
    Description 技能の説明の文字列番号として「16777218」を指定
    Icon アイコンは「isk_orc」を指定
    Untrained 技能ランクが0の場合は使用不可とするため「0」を指定
    KeyAbility 関連能力は言語ということで「WIS」を指定
    ArmorCheckPenalty 防具のペナルティは関係ないので「0」を指定
    AllClassesCanUse 全てのクラスで習得できるため「1」を指定
    Category スキルの分類は「****(未指定)」
    MaxCR 最大のチャレンジ・レート値は「****(未指定)」
    Constant スクリプト中でのIDは「SKILL_LANG_ORC」を指定
    HostileSkill 敵対的な行為ではないため「0」を指定

    ここで気をつける点は技能名及び技能の説明の文字列番号です。
通常、Hakで新しい要素を追加する場合は、dialog.tlkもオーバーライドではなく、カスタムTLKとして作成します。
そのため、番号は16777216から始まる必要があります。
    また、カスタムTLKはモジュールに1つしか指定できないため、モジュールで使用するHak全ての文字列リソースを含める必要があります。
そのため、他のHak(例えばCEPやPRC)を使用する場合は自作のHakの文字列リソースをどのようにするか検討する必要があります。
解決策は、使用するHakのカスタムTLKに追加するか、もしくはオーバーライドで追加するかのどちらかしかありません。
どちらの場合も配布の点で問題があります。(著作権の兼ね合いで)

  2) 次に技能のアイコン画像を用意します。
今回は下記のようなアイコンを用意しました。
   

  3) 次に技能用のTLKファイルを作成します。
Dialog TLKで必要な文字列リソースを作成後、メニューから「Export as TLK」をクリックして、任意の名前のTLKとして保存します。

  4) 次にNWNに付属しているHak PackagerでHakファイルを作成します。
通常はスタートメニューに追加されていないため、直接起動します。
NWNがインストールされているフォルダ配下のutilsフォルダにnwhak.exeがありますので、これをダブルクリックして起動してください。
   

    Title、URL、Descriptionを必要であれば入力し、メニューの「Add」で必要なファイルを追加します。
今回は手順1)2)で作成したskills.2da及びアイコンを含めます。
カスタムTLKは含めないでください。(含めても意味ありません。)
最後にメニューの「Save As」で任意の名前のHakファイルとして保存すれば完成です。
     

   これで必要なファイルは全て完成です。

  5) 続いて、作成したファイルをインストールします。
まず、手順4)で作成したHakファイルをNWNがインストールされているフォルダ配下のhakフォルダにコピーします。
   

    次に手順3)で作成したカスタムTLKをNWNがインストールされているフォルダ配下のtlkフォルダにコピーします。
   

   以上の手順でインストールは完了です。
使用するためには更に手順が必要です。

  6) NWNからオーロラツールセットを起動し、適当にモジュールを新規作成します。
   

  7) メニューからモジュールのプロパティをクリックして、プロパティ画面を開きます。
次にカスタムコンテンツのタブをクリックします。
①のコンボボックスで作成したHakファイルを選択し、②追加ボタンを押して使用するHakファイルに追加します。
③カスタムTLKに作成したTLKファイルを選択し、④OKボタンを押してカスタムコンテンツの追加を行います。
     

   カスタムコンテンツ追加時の警告が表示されますが、そのままOKボタンを押します。
   

   正常に追加された旨が表示されます。
   

  8) 適当な名前で作成したモジュールを保存します。
   

   これで使用する準備ができたので、早速確認してみます。

  9) NWNを起動し、新規 - その他のモジュールを選択します。
   

    作成したモジュールを選択します。
   

    新規キャラクターの作成を選択します。
   

    適当に選択していき、技能選択の画面が表示されると追加した技能が表示されていることが確認できます。
   

    オーバーライドで追加した技能とHakファイルで追加した技能の2つが表示されていることが確認できます。

新しい技能の使用方法


   技能の追加はできましたが、プレイヤーが実際に使用することはこのままではできません。
最初にも書きましたが、技能はモジュール内の必要箇所で技能判定を行って初めて効果が表れるものです。
つまり、いくら技能を追加してもモジュール内でその技能を使用した技能判定がなければ、宝の持ち腐れというわけです。
ここでは、追加した技能をモジュール内で判定するにはどうすればいいかについて記述します。

  1) まず、オーロラツールセットで新規モジュールを作成します。
Hak形式で技能を追加する場合は前項の内容に従って、Hakを使用できるようにしてください。

  2) 以下、編集中





名前:
コメント: