2012/09/30

シャウトの作り方

新しいシャウトを作ってみました。
ちゃんとドラゴンフォントで表示されて嬉しい♪
やっぱり、シャウトのメニュー画面のドラゴン語って、あらかじめ作られていた画像とかでなく、fontconfig.txtで指定してあるDragon_scriptのフォントで表示されるんですね。

ヘイムスカーを問答無用で黙らせるシャウト「Da・Ma・Re☆」

フスロダをベースにした吹き飛ばし系のシャウトに、
ヘイムスカーの演説シーンをストップするスクリプトを仕込んでいます。


そんなに難しい手順でもないのですが、忘れないうちに新規シャウトの作り方を書いておこうと思います。

まず、「シャウト」というのは、ゲーム中でも「魔法」の選択画面で見ることができるように、CK上でも魔法の一種として扱われています。
シャウトというのは、「魔法」が3つ、「シャウト」というテンプレートに登録されて、一種の「魔法セット」になっている状態……みたいなものです。
そのセットの状態を編集するのが、オブジェクトウィンドウの「Magic/Shout」内にあるShoutオブジェクトです。
Object Windowの「Magic > Shout」
Shoutの編集画面

それでは、新規で「Shout」を作って、中身を設定してみましょう。
まず、このShoutオブジェクトの「ID」を決めます。
「Name」の欄にはこのシャウトの名前……これはゲーム中で表示されるシャウト名になります。メニュー画面を始め、習得する時にも、お気に入りの枠の中でも表示されます。
「Menu Display Object」はメニュー画面で表示されるこのシャウトの見た目(プレビュー)です。これは既存のシャウトや魔法などを参考にして選ぶといいんじゃないかと思います。
また、右下の「Description」は、メニュー画面で表示される、シャウトの説明です。

ここまでの設定項目を見ても分かるように、「Shout」というのは、メニュー画面で見ることのできるシャウトの概要や枠組みを決めているオブジェクトなんですね。
実際に、そのシャウトがどんなを効果を発するか…という詳細については、別のオブジェクトの設定画面の中で調整していくことになります。

Shoutの編集画面では、3つの「ワード」を登録する欄があります。
もちろん、Word1が第一段階、Word2が第二段階、Word3が第三段階のシャウトです。
それぞれ、「Word」と「Spell」、そして「Recovery Time」という設定項目があります。
「Recovery Time」というのは、予想がつくかと思いますが、シャウトを使った時、次に使えるようになるまでの再充填にかかる時間です。

「Word」というのは、シャウトを構成する各単語(ワード)の情報です。
これはObject Windowの「Magic/Word of Power」で登録・編集することのできる、WordOfPowerオブジェクトを選択することで指定します。

Object Windowの「Magic > Word of Power」
Word of Powerの編集画面

ごらんの通り、「Word of Power」は、シャウトを構成するワードのID名と表示名を登録してあるだけの小さなオブジェクトです。
それでは新規のシャウト用に、新たなWordOfPowerを3つ作りましょう。
まずは他のオブジェクトのIDとかぶらないID名をつけます。
次に「Name」の欄ですが、こちらに入力された文字がシャウトのメニュー画面のドラゴン語で表示される部分になりますので、短いアルファベットじゃないと、フォントの関係上うまく枠内に表示されないと思われます。
「Translation」はその下に表示される翻訳名です。こちらは日本語でOK。
これらの設定が済んだら、Shoutの設定画面に戻って、新規で作ったWordOfPowerを、各段階のWord欄で指定してやります。


次に「Spell」の指定ですが、これはシャウトを発した時に何が起こるか……対象にダメージを与えたり、吹っ飛んだり、といった内容を決める箇所で、これはObject Windowの「Magic/Spell」で編集・登録できる、Spellオブジェクトを選択することで指定します。

Object Windowの「Magic > Spell」
Spellの設定画面

こちらは新規でSpellを作ってもよいし、既存のSpellを再利用するのでも構いません。
ただし、Spellの編集画面で設定するTypeの項目を「声の力」にしてあるものでないと、Shout編集画面でのSpellの候補には出てきませんので要注意です。

ちなみに「Spell」というのは、いわゆる魔法です。
このオブジェクトも、Shoutと一緒で、"Spell"というテンプレの枠組みに、魔法効果のオブジェクトなどを詰め込んで、各種セッティングをしているオブジェクトなんですね。
スペルを構成する効果の内容の詳細については、「Magic Effect」というオブジェクトの設定画面で、別途作成することになります。
なんでこんな回りくどい方法で設定するのか……シャウト、というオブジェクトの設定画面で最初から一気に全部設定できるようにしてくれればいいじゃないか、と思うかもしれませんが、こういう回りくどいやり方でオブジェクトを構成していった方が、パーツの再利用ができるので、便利だし効率的なんですよね。
最初は、どのオブジェクトがどのオブジェクトに繋がって設定されているのか、把握するのが大変ですが、オブジェクトを右クリックして出てくる「Use Info」というメニューの情報を頼りにリンクの糸を辿ってゆくと、相互関係が掴めることが多いです。

「Spell」の設定についてや、その効果の内容を決める「Magic Effect」の設定の仕方については、おばちゃんは今のところ、既存のオブジェクトを再利用してるだけで、解説できるほど各種項目を詳しく理解していないので、申し訳ありませんが省略させていただきます。
ちなみに、ヘイムスカー氏の演説を止めるためのスクリプトは、汎用ダメージ効果の「UnspecifiedDamageFFAimed」というMagic Effectを複製して作成した物に追加しています。
(このMagic Effectを、新規シャウトで使うSpellのEffectに組み込んでいるわけです)

Object Windowの「Magic > Magic Effect」
Magic Effectの設定画面

Magic Effectには、右下のPapyrus Scripts欄でスクリプトを追加できます。

Shoutを構成する各WordのSpellの設定が済めば、この段階で新規シャウトとしてゲーム中で使うことができるようになってはいますが、せっかくなのでシャウトを叫ぶ時に再生されるボイスもちゃんと設定しましょう。
シャウトを使用した時に発するボイスの設定は、Questオブジェクトで別途設定します。
ちなみにデフォルトの各シャウトのボイスは、「VoicePowers」というクエストの中で設定されています。
Object Windowの「Character > Quest」
「VoicePowers」QuestのCombatタブ画面


この「VoicePowers」クエストでは、プレイヤーのボイスだけでなく、ドラウグルやソブンガルデの英雄さん達など、シャウトを使うキャラすべてのボイスを統括して設定しています。
このクエストに、新たに作ったシャウトのボイスを追加登録しても良いのですが、デフォルトのオブジェクトを弄るのはできるだけ避けたいので(※デフォルトのオブジェクトは他のModが参照するかもしれないので、できるだけ変更しない方が無難です)、新規でクエストを作ってボイスを追加しましょう。

新規クエストは「VoicePowers」クエストにならって、Priority(優先度)は"5"、「Start Game Enabled」にチェックを入れた状態で作成します。
クエストの作成なんて、難しそう…と思うかもしれませんが、このクエストは4種類のボイスを登録するだけの簡単な設定で済みますので、そんなに気張らなくてもOKです。
あ、ちなみに新規でQuestオブジェクトを作る際は、最初のDataタブでIDやNameなどを設定した後、一度OKを押して設定画面を閉じ、念のためにその段階で一度espを保存してくださいね。Questオブジェクト内の各種データは、一度そうやって確定してやらないと、設定できません。
おそらく、Questで使われるボイス等は、espの名前のフォルダに、クエストのIDに紐づいたファイル名で格納されることになるため、編集中のespとQuestがきちんと決まっていないと編集できないようになっているんでしょうね。

さて、シャウトのボイスの設定ですが、これはQuestの「Combat」タブで設定します。
「Combat」タブというのは、キャラクターが戦闘状態にある時に発するセリフ等を設定する一覧画面です。
例えば攻撃が当たった時の呻きや、パワーアタックする時の気合の入った声、フレンドリーファイヤーを食らった時のセリフ、敵を挑発する時のセリフや、逃げる時の悲鳴、死に際の負け惜しみ(?)のセリフなど、戦闘シーンにおけるありとあらゆる状況下で発するセリフを設定し、管理することができます。

まずはこのCombatタブ画面の「Topics」欄でNew Topicを作成してください。
すると「Select Topic」というウィンドウが出てきます。これはその新規作成するTopicが戦闘時のどんな状況下で発生するか、という起動スイッチの指定です。
この起動スイッチは、シャウトに関連するものとしては4種類あります。

(A)VoicePowerStartShort……シャウト第一段階目のみが発動した時のスタート時
(B)VoicePowerStartLong……シャウトが第二、第三に続く際のスタート時
(C)VoicePowerEndShort……シャウトが第二段階で止まる時の終了時
(D)VoicePowerEndLong……シャウトが第三段階目まで発動する際の終了時

各状況の説明としてはこんな感じなのですが、これじゃわかりにくいので、フスロダこと「揺るぎ無き力」の例で見てみましょう。

「揺るぎ無き力」の場合
(A)VoicePowerStartShort……「ファス!」
(B)VoicePowerStartLong……「ファス…」
(C)VoicePowerEndShort……「ロ!」
(D)VoicePowerEndLong……「ロ… ダ!」

ゲーム中でパワーボタンをちょびっと押して、フスロダの第一段階のみを使用すると、(A)の「ファス!」というボイスのみが再生されます。
第二段階までいくと、(B)+(C)の組み合わせになって「ファス…ロ!」となります。
ボタンを長押ししてきっちり第三段階までいくと、(B)+(D)の組み合わせになって「ファス…ロ…ダ!」になるというわけです。
ようするに、「Start」と「End」の組み合わせでボイス再生のバリエーションが変わるわけです。
そんなわけで、この構成を踏まえたセリフを各Topicに登録していきます。


Topicを作成すると、赤枠の「Subtype」欄に、選択した起動スイッチのタイプが表示されます。
今回はシャウト関連の4種類の起動スイッチについて、それぞれTopicを設定することになりますので、Topic欄には4つのTopicが並ぶことになります。
右側のTopic Text欄は、どうせゲーム中では表示されないテキストなので、大元の「VoicePowers」クエストにならって適当につけてます。
その下の「Info」の欄が、実際にその状況下で発することになるセリフの一覧です。
ここに新しくInfoを追加して、各Topicで発するセリフ&ボイスを設定していきましょう。
ちなみに今回作ったシャウトでは、ウルフリック首長のボイスの中から、「やめろ!」というボイスと「死ね!」というのと、「死ね!このクズ!」というボイスをチョイスして使ってます。
第一段階で「やめろ!」
第二段階で「やめろ!死ね!」
第三段階で「やめろ!死ね!このクズ!」
…とまあ、こんな感じで再生されるように。
聞き苦しいセリフばっかりですが、他に適当なのがなくて……;
どうでもいいですが、戦闘中のウルフリック首長はめちゃくちゃ口が悪いです。
「イヌめ!死ね!」とか「おまえを殺してやる!」とか……あんなに素敵な声で、いかにも名士ですって顔してるのに……キレると人格が豹変するタイプなのかしら。

Topic Infoの設定画面


さて、4種類のシャウト関連の各状況下で登録したTopicのInfoは、そのセリフが発生する時の条件を設定してやらなければなりません。
でないと、シャウトを使う時、すべてのキャラでそのセリフが発生してしまいますので……
その条件設定はTopic Info編集画面の「Conditions」で設定します。
(上記画像の赤枠の部分)
まずは、「新規作成したシャウトを装備している時」という条件を新規追加しましょう。
Condition Functionで「GetEquippedShout」を選び、新規シャウトのIDを選択して条件を「==1」にします。これで新規作成したシャウトを使った時だけ発生するようになりました。
続いて、条件にボイスタイプを指定します。
本当は「プレイヤー」がシャウトを使った時、などという指定にしたいところなのですが、そうするとプレイヤーキャラになりうるすべてのボイスタイプについて、音声ファイルを用意しなくてはならなくなります。
他人に配布するModでしたら、そういった準備も必要でしょうが、今回は個人で楽しむためのものなので、自分のプレイヤーキャラが使用しているボイスタイプだけを指定しちゃいましょう。
おばちゃんのプレイヤーキャラであるウルフリック首長はノルド男で、ボイスタイプは「MaleEvenToned」を使用しています。(もっとも、プレイヤーとして使用するセリフのファイルはウルフリック首長のボイスをリネームして上書きしちゃってますが)
なので、「GetIsVoiceType」で「MaleEvenToned==1」という条件を追加します。
するとEdit Responseの設定画面で、セルフに付随する音声ファイルの格納場所やファイル名が自動的に割り振られます。
Edit Responseの設定画面


ボイスタイプを条件指定したことで、Edit ResponseのAudio枠のVoiceTypeの欄には指定したボイスタイプと、音声ファイルの格納先のパスが表示されるようになります。
クエストで使用される各ボイスファイルの格納先は「Data/Sound/Voice/xxxx.esp/MaleEvenToned」…という風に、「Data/Sound/Voice」の中に、まず、そのModのesp名のフォルダが出来て、さらにその中に各ボイスタイプのフォルダが作られ、自動的に付けられたファイル名(赤枠の部分)で保存されるような仕組みになっています。
これらの音声関連のファイルは、espの名称に基づいたパスやクエストのIDに基づいた名前が、データを呼び出す時の目印になっているため、自分で好きな場所に保存し直したり名前を勝手に変えたりすることはできません。
クエストのボイスを登録した後で、作ったModのespの名前を変えたりすると、ボイスが再生されなくなってしまうので要注意です。

ちなみにAudio枠の下の方にある「Record」ボタンを押すと、PCに接続したマイクを使ってその場でボイスを録音できます。
そして「Save」ファイルを押すと、録音した音声がwavファイル形式の音声データとして保存される…筈なのですが、CKが1.6にバージョンアップしてからというもの、おばちゃんの環境下ではどうもwavファイルの録音機能や再生機能がうまく働きません。
1.5バージョンではちゃんと録音できて、ゲーム内で再生もできていたのですが……
まあ、でもfuzファイルなら再生に問題はありませんので、音声データはfuzファイルに変換したものを使用します。
fuzファイルというのは、音声ファイル(xwm)と口パクの動きであるリップファイル(lip)が一緒になったファイルで、ゲームのデータのbsaファイルを解凍すると、サウンドやボイスのデータはすべてこのfuzという拡張子のファイルになっています。
ですから、既存のNPCのボイスを再利用する際は、特に変換作業は要りません。
(使いたいセリフをチョイスしてデータを探し出すのが面倒なんですが……)
新規シャウトのボイスとして用意したfuzファイルを、赤枠の部分のファイル名にリネームした上で、格納先のボイスタイプのフォルダにきちんと置けば、音声ファイルのセットはこれで完了です。

↑こんな風に4種類のTopic Infoのセリフ(responce)用のボイスデータを所定のフォルダ内に、指定されたファイル名で置けばOK。


それでは実際に作成したシャウトがゲーム上でちゃんと動作するか、テストしましょう。
作成したシャウトをゲーム中で使うには、まずそのシャウトをプレイヤーが習得しなければなりません。
これはコンソールで入手してもいいのですが、ゲーム中でタイプするのは面倒なので、今回は適当な場所にアクティベーター(スイッチみたいなもの)を置いて、そのアクティベーターにシャウトを習得するスクリプトをくっつけようと思います。


この石碑のアクティベーターは、おばちゃんがしょっちゅうお世話になっている、便利なオブジェクトです。Object Windowの「WorldObjects > Activator」のカテゴリの中に、「WETempActivator」というID名で登録されています。
クリックすると、アクティベートするというだけの、何の動きも面白味もない単純なスイッチなんですが、ちょっとしたスクリプトをテストするにはもってこいのアイテムなんです。
今回はそれをブリーズホームの入り口付近に置きました。
(そのままだとデカくて邪魔なのでスケールを0.5にしてます)
そしてこの石碑アクティベータのReferenceに下記のようなスクリプトをくっつけます。
Scriptname obaTestShoutActivator extends ObjectReference
  WordOfPower Property MyWord1 Auto
  WordOfPower Property MyWord2 Auto
  WordOfPower Property MyWord3 Auto

Event OnActivate(ObjectReference akActionRef)
  game.teachWord(MyWord1)
  game.teachWord(MyWord2)
  game.teachWord(MyWord3)
  game.UnlockWord(MyWord1)
  game.UnlockWord(MyWord2)
  game.UnlockWord(MyWord3)
  Debug.MessageBox("シャウトを覚えた")
EndEvent
スクリプトの解説までやってしまうと長くなりすぎるので、詳細については割愛しますが、上記のスクリプトは、石碑がアクティベートされた時に、指定したシャウトのワードをプレイヤーがそれぞれ習得し、同時にアンロックまでされるという内容になっています。
このスクリプトを付けた後、「MyWord1」「MyWord2」「MyWord3」の各プロパティに、新規作成したシャウトのWordOfPowerオブジェクトを指定してやります。
これでテストプレイの準備が整いました。
それでは、作ったModを読み込んでゲームを起動しましょう。


よしよし、ちゃんとアクティベーターは稼動してますね。
さて、新規シャウトを無事に習得したら、ちょいとひとっ走り、ヘイムスカー氏の前まで走っていって、黙れ☆シャウトの試し打ちをしてみましょう。

ちなみに新規作成したシャウトは、フスロダをベースに作成しているので、当てた相手に少なからずダメージが入ってしまいます。
そうなるとデフォルト状態のヘイムスカー氏は敵対状態になってしまい、スクリプトのおかげで演説がストップしたのか、それとも戦闘モードになったからなのか、わからなくなってしまうので、最初にコンソールを使ってフォロワー状態にしておきます。
これで3発までは誤射しても笑って許してくれる状態になりますので、思う存分シャウトをぶつけてやれます。


ちゃんと「やめろ!死ね!このクズ!」という罵声も再生されたし、ヘイムスカー氏の演説も止まって、フォロワーとしてちゃんとプレイヤーに付いてくるようになりました。
タロス像の近くにいると、再び演説シーンのスイッチが入ってしまって、また性懲りも無くスピーチが始まってしまうことがありますが、その時はまた一喝してやればいいです。

ふう……もっと手短にまとめられると思ったんだけど、また長くなってしまいました。
これでもいろんなところを端折ったんですけど、手順の説明って、難しいものですね。

2012/09/02

スカイリム CK(クリエイションキット)の日本語化

(2013.11.16 一部改訂しました)
コンシューマのゲーム機では味わえないPC版スカイリムの最大の利点と言えば、ユーザーが自由に作ったModを導入してバニラとはまた違った遊び方が楽しめる…という点に尽きるわけですが、他人様が作ったModを導入するだけでなく、自分でもCK(クリエイションキット)を使ってModを作るようになると、また180度違った楽しみ方が増えて、遊び尽くした筈のスカイリムの世界がまた新たなフロンティアに思えてきます。
おばちゃんは今でも、初めてCKを触った時の衝撃が忘れられません。
CKを弄るにあたって、まず手始めに、CK Wikiのチュートリアルに従って、Bendu Oloのクエストをそっくり真似して作ってみたのですが………ミックスウォーターの労働者の家に配置したダークエルフが突然、自分の声で喋り出した時のあの驚きといったら、もう……びっくりするやら、可笑しいやらで、しばらくしゃっくりが止まりませんでした。

それまでCKを使わずに遊んでいた時も、まるで自分がスカイリムの雪深い世界に実際にいるような気持ちで遊んでたわけなんですが、今度はもう、スカイリムの世界の中に、自分の声で喋るキャラが本当に実在しちゃってるわけですよ!
今まで何百時間も入り浸って遊んでいた世界に、自分の存在が、アイデアが、とにかく思いついたものは何でも投入できてしまうんです。
たとえば……作ろうと思ったら、スカイリムのガチムチノルド達から、心臓が妊娠しそうな言葉でクドかれまくる恋ゲークエストとか、簡単に作れちゃうわけですよ。
いや~、こんな夢みたいなツールを、ユーザーに無償で提供しちゃうなんて、本当にベセスダって会社はとんでもない会社だわ~と、心底震え上がりました。

マーラの結婚クエストでは物足りなかった方も、CKさえあればお望みの展開に。
一体何を作ってるんだ……というツッコミは無しでお願いします。


そんなわけで、PCユーザーなら絶対入れなきゃソンでしょ!という、CK(クリエイションキット)なんですが、決して親しみやすい仕様のツールではないので、しょっぱなから挫折しそうになることも多いです。
そもそもスクリプトだの3Dだの、今までロクに触れたことなんてないよ、という人にとっては、チュートリアルに出てくる言葉でさえ理解不能なものが多いですし、また分からない事を検索して調べてみても、Mod制作に関するフォーラムや情報ページはほとんど英語だったりしますので、やはり素人の自分には敷居が高い世界だったか…と思い知らされることも多いです。
その敷居を少しでも低くするために……まずはCK内に読み込まれるゲームのテキストの日本語化を行って、少しでもとっつきを良くしてからMod作成にチャレンジしましょう。
日本語化といっても、CK上のメニューなどを日本語化するわけではなく、ただ単に読み込むテキストを日本語にするだけなのですが、建物や街の名前や、アイテム、NPCの名称が、見慣れた日本語で識別できるだけでも、かなり難易度が下がるような気がします。
また中身が日本語であれば、ヒマな時にCKを起動して、キャラのステータスやクエストの中身をなんとなく眺めているだけでも楽しいものです。

以下はおばちゃんが行っているCKの日本語化の手順です。
読み込む日本語のデータによってはうまく行かないこともありますが、日本語での動作はもともと対象外なのですから誰にも文句は言えません。うまくいったらめっけもの、くらいの心持でお試しください。


【手順1】日本語テキストデータをCKで読み込める文字コードにする

さて、CK(クリエイションキット)では、Modを制作する時、まずは「Skyrim.esm」といったベースとなるesmファイルをマスターファイルとしてあらかじめ読み込んでからModを作り始めることになります。
この「esm」という拡張子のついたファイルには、「テキスト」がesmファイルの中に含まれているタイプのものと、「テキスト」が別のファイル(strings、ilstrings、dlstringsという拡張子のファイル)として独立しているタイプのものがありまして……Skyrim.esm等のゲームのデフォルトのesmファイルはすべて後者の「テキスト」が別のファイルとして独立しているタイプになります。

実は当記事でご紹介する「CKの日本語化」というのは、厳密に言うと、これらのテキストデータを日本語のまま、文字化けせずにCK上で読み込めるようにすること、を指しています。
ちなみにstrings、ilstrings、dlstringsといった独立タイプのテキストのファイルに限らず、CK上で読み込まれるModのファイル(esmやespファイル)に含まれているテキスト、またスクリプトファイル(pscファイル)なども、文字のエンコードをすべて「Shift_JIS」にしないとCK上では日本語はすべて文字化けします。
(文字化けするだけでなく、Shift_JIS化しないで日本語テキストを読み込もうとすると、操作の箇所によっては、CK自体が落ちてしまうこともあります)
ですので、CKで問題なく日本語表示するためには、読み込まれるデータのすべてを「Shift_JIS」化しなくてはならないわけですが、まずはMod制作の基盤となる「Skyrim.esm」「Update.esm」他、DLCのテキストデータをShift_JISに変換することから、やり方をご説明したいと思います。
(※以下の作業はすべて、すべてのファイルの拡張子を表示する環境下で行ってください)

■用意するもの

日本語版のスカイリムの「Data/Strings」フォルダ内に入っている各Strings系ファイル
skyrim_Japanese.STRINGS
skyrim_Japanese.ILSTRINGS
skyrim_Japanese.DLSTRINGS
Update_Japanese.STRINGS
Update_Japanese.ILSTRINGS
Update_Japanese.DLSTRINGS

各DLC(Dawnguard、Hearthfire、Dragonborn)またはレジェンダリーエディションを導入されていて、それらのデータを使ったModを作成したい場合は、同じく日本語版の各bsaファイルの中から、以下の各Strings系ファイルもご用意ください。

【Dawnguard用の日本語テキストデータ】
(日本語版の「Dawnguard.bsa」を解凍して取り出してください)
dawnguard_Japanese.strings
dawnguard_Japanese.ilStrings
dawnguard_Japanese.dlStrings

【Hearthfire用の日本語テキストデータ】
(日本語版の「HearthFires.bsa」を解凍して取り出してください)
hearthfires_japanese.strings
hearthfires_japanese.ilStrings
hearthfires_japanese.dlStrings

【Dragonborn用の日本語テキストデータ】
(日本語版の「Dragonborn.bsa」を解凍して取り出してください)
dragonborn_japanese.strings
dragonborn_japanese.ilStrings
dragonborn_japanese.dlStrings

これらの各種stringsファイルの中身をShift_JISに変換するためには、「Skyrim Strings File Tool」というツールを使って、まずはcsv形式のテキストデータにUnpackします。
ちなみに「Skyrim Strings File Tool」は、「コマンドプロンプト」で使用するタイプのツールです。
「何それ?」という方は参考になるかどうかはわかりませんが、下記の記事をご覧ください。
→「Skyrim Strings File Tool」の使い方の一例

さて、「Skyrim Strings File Tool」でUnpackする時のコマンドですが、下記のように「/B」というIDを16進方式で出力するオプションと、各stringsの形式に合わせた「/IL」「/DL」等のオプションをつけて、デフォルトの「UTF-8」のエンコードのままUnpackします。

■Skyrim Strings File ToolのUnpackのコマンドの書式
(※以下はSkyrim Strings File Toolのexeファイルと変換元のstringsファイルが同じフォルダに入っていて、かつカレントディレクトリになっている場合のコマンドの一例です)

(拡張子がstringsのファイルの場合)
StringsUnpacker /B Skyrim_Japanese.strings Skyrim_Japanese_utf8.strings.csv

(拡張子がilstringsのファイルの場合)
StringsUnpacker /IL /B Skyrim_Japanese.ilstrings Skyrim_Japanese_utf8.ilstrings.csv

(拡張子がdlstringsのファイルの場合)
StringsUnpacker /DL /B Skyrim_Japanese.dlstrings Skyrim_Japanese_utf8.dlstrings.csv

緑文字の/B/IL/DLといったオプションは、必ず大文字で入力してください。
/ILオプションはilstringsファイルに、/DLオプションはdlstringファイルの変換時に必ずつけます。
赤文字の部分のSkyrim_Japanese.strings等のファイル名は、上記で用意した変換元のオリジナルのファイル名です。当たり前ですが、実際の変換元のファイルときっちり同じファイル名を入力してください。
青文字のファイルの名前(Skyrim_Japanese_utf8.strings.csvなど)は、変換後のファイル名です。
上記のサンプル名の通りじゃなくても、自分が判別できるファイル名なら何でも良いです。
ただしファイル名の最後には「.csv」という拡張子をつけて下さい。

「Skyrim_Japanese.strings」だけでなく上記で用意した各種stringsファイルもすべてUnpackできたら、次はそれらのcsvをテキストエディタで開いて「Shift_JIS」で保存し直して下さい。
※csvファイルはダブルクリックしないこと!
ダブルクリックすると人によってはExcelが開いちゃったりしますので……注意してください。

csvファイルを開くテキストエディタは文字コードを指定してテキストを保存できるエディタなら、なんでもいいです。(大事なことなのでもう一度いいます。csvをExcelで開いたらダメです)
ちなみにおばちゃんは「JmEditor2」というエディタをずっと愛用しております。


「SJIS」も「Shift_JIS」もたぶん一緒のはず……

csvを「Shift_JIS」に変換して保存し直したら、再び「Skyrim Strings File Tool」を使用して、各種Stringsデータに戻します。
元に戻す(Packする)際は以下のように、/Bオプションと、/Eオプションを使って、「Shift_JIS」のコードページである、「932」を指定した状態でPackします。

(拡張子がstringsのファイルの場合)
StringsPacker /B /E932 Skyrim_Japanese_utf8.strings.csv Skyrim_JapaneseSjis.strings

(拡張子がilstringsのファイルの場合)
StringsPacker /IL /B /E932 Skyrim_Japanese_utf8.ilstrings.csv Skyrim_JapaneseSjis.ilstrings

(拡張子がdlstringsのファイルの場合)
StringsPacker /DL /B /E932 Skyrim_Japanese_utf8.dlstrings.csv Skyrim_JapaneseSjis.dlstrings

オプション(緑文字)を大文字で入力することや、変換元のファイル名(赤文字)をきちんと正しく入力することなどの注意点はUnpackする時と同様です。
青文字の変換後のファイル名については、今度は命名する名前に以下のような決まりがあります。

【ローカライズ用ファイルの命名の法則】
マスターファイル(esm)の名称の後に「_(アンダーバー)」を挟み、その後ろに
iniファイルで指定した「sLanguage」の使用言語の名称(※手順2で説明します)を入力する。

つまり、「Skyrim.esm」のテキストである各種Stringsは、
「Skyrim」+「_(アンダーバー)」+「sLanguageの指定」.拡張子……という名前にします。
ちなみに「Update.esm」のテキストである各種Stringsは、
「Update」+「_(アンダーバー)」+「sLanguageの指定」.拡張子
「Dawnguard.esm」のテキストである各種Stringsは、
「Dawnguard」+「_(アンダーバー)」+「sLanguageの指定」.拡張子
……といった具合です。
つまり、手っ取り早く言うと、下記のように_(アンダーバー)以下の「xxxxx」の部分は、各種stringsファイルで共通の言語名をつけなくてはならない、ということです。

Skyrim_xxxxx.strings
Skyrim_xxxxx.ilstrings
Skyrim_xxxxx.dlstrings
Update_xxxxx.strings
Update_xxxxx.ilstrings
Update_xxxxx.dlstrings
dawnguard_xxxxx.strings
dawnguard_xxxxx.ilstrings
dawnguard_xxxxx.dlstrings
hearthfires_xxxxx.strings
hearthfires_xxxxx.ilstrings
hearthfires_xxxxx.dlstrings
dragonborn_xxxxx.strings
dragonborn_xxxxx.ilstrings
dragonborn_xxxxx.dlstrings

ちなみに「xxxxx」で指定する言語名は「English」とか「Japanese」とかにしてしまうと、スカイリムのゲーム本体で使用するStringsと名前がカブってしまいますので、ダメですよ。
CK用にわざわざエンコードしなおした別ファイルを作ってるわけですから……名前がカブっていたら、ゲーム本体で使うファイルを上書きしてしまうかもしれませんし、第一、混乱の元です。
この「sLanguage」で指定する言語名は、別に実在する言語じゃなくても構いませんので、ご自分でわかりやすい名称を好きに付けてください。
ちなみにおばちゃんは上記のコマンド例にもあるとおり「JapaneseSjis」という名称にしています。

Packが済んだこれらの各種Stringsファイルは、すべて「Data/Strings」フォルダに入れてください。


【手順2】SkyrimEditor.iniの設定を変更する

CK用のStringsの用意が済んだら、今度は「CreationKit.exe」と同じ階層(Steam/steamapps/common/skyrimフォルダ)に入っている「SkyrimEditor.ini」というファイルの内容を編集します。
「SkyrimEditor.ini」というのは、CK用の設定ファイルです。
有難いことにゲーム本体のiniとは別個になっているので、ゲーム本体とは違う言語設定が可能で、それゆえにゲーム本体とは違うCK専用のStringsを読み込める、というわけなんですね。
このini設定ファイルをテキストエディタで開いて、先頭の[General]の項目の下に、
sLanguage=xxxxx
…という指定を加えてください。
「xxxxx」の部分はもちろん、手順1で各種Stringsに付けた共通の単語を指定します。
おばちゃんの場合は「JapaneseSjis」という名称にしたので、
sLanguage=JapaneseSjis
…という指定になります。

「SkyrimEditor.ini」の設定の書き換えが済んだら、ここでCKを立ち上げてみます。
各マスターファイル(esm)を読み込むと、最初にいっぱいエラーが出てくるのはCKの仕様(?)みたいなもんですが、各種Stringsファイルに不備がある場合は、真っ先に下記のようなエラー表示が出ますので、注意して見ておいてください。
Stringsファイル系の読み込み時のエラーは「BGSLocalizedStrings.cpp」という
ファイルのエラーとして警告されることが多いです。

Shift_JISに変換したStringsファイルに何の問題もなく、テキストが無事に読み込めていれば、見覚えのある日本語が各ウインドウのName欄などに表示されているはずです。


セルの名前が全部英語だと、どこが何なのかさっぱりわかりませんが、日本語表示になればだいたいの見当がつきます。……この差はかなり大きいです。

また、一番、日本語化の恩恵をこうむるのは、クエストを自作する際のセリフの編集です。
日本語を使えない状態では、複雑な選択肢のダイアログなんて作る気もしませんからね。
またゲームの既存のクエストを解読するのにも、慣れ親しんだ日本語のセリフ等で内容を把握できるのとできないのとでは大違いです。
ちなみにゲームのデフォルトのクエストの流れやシーンの詳細などを見て真似して作るのは本当に勉強になりますよ。開発者様もユーザーがMod作りのお手本にすることを意識して作成したんじゃないかと思われるフシが多々あります。
また、スクリプトのコメントなども作り手側の意図がこっそり書かれていたりして面白いです。

ちなみに日本語化しても、CK内では、ところどころ文字化けしてしまう箇所があります。
ちょっと見づらいですが、たとえば下の画像の赤枠の辺りとか、です。


これは日本語化に失敗しているわけではなくて、CKのそのウインドウのテキストフィールド部分が、日本語フォントではない欧文フォントで編集するように指定されているために、文字化けが起こるのではないかと思われます。
この部分のフォント指定を日本語フォントに直せないか、「Resource Hacker」を使ってCKのプログラムのリソースを改造してみたりもしたんですが、EXEファイルを書き換えたら、Steamに蹴られてCKが起動しなくなっちゃいました。
……まあ、そりゃそうですよね。
EXEファイルのバイナリを書き換えることができたら……不正利用できてしまうことになりますし。

そんなわけで、文字化けしている箇所については、しょうがないので、そのまま目をつぶってください。
ちなみに文字化けしている箇所でも、日本語入力はできます。
文字変換を確定した瞬間に化けてしまうので大変読みにくいのですが、コピペしてエディタにペーストすればきちんと読めますし、文字化けする箇所もそれほど多いわけではないので、まあ、我慢するしかありませんね。
「Edit>Find Text」でも、「Search Text」の欄は残念ながら文字化けしてしまいますが、化けた状態のままでも日本語でテキスト検索が可能です。
オブジェクトウインドウの「Filter」欄では、IDの名前しか引っかからないので日本語検索は無理ですが、日本語表示のName欄でのソートができますので、目的の物がだいぶ見つかりやすくなる筈です。


ウルフリック首長って、ウィンドヘルムにいる本体と、
内戦バトル用と、ソブンガルデ用と3人もいるんですね。


【手順3】作成したModファイル(esp)のテキストをUTF-8で保存する

さて、日本語化したCKで作成したModは、そのままゲームに読み込むと文字化けしてしまいます。
なぜかというと、CKと違ってゲーム本体で読み込めるテキストのエンコードは「UTF-8」という形式なので、Shift_JISの日本語のテキストがModに含まれていると文字化けしてしまうんですね。
そこでどうするかというと、Modの日本語化でお馴染みの「Skyrim Strings Localizer」を使って、作成したModのテキストをUTF-8に保存し直します。


まず、CKで作成したModのespを読み込む時は、ウインドウ下の赤枠の部分、「Override Code Page」にチェックを入れて、Shift_JISのページコードの「932」を手打ちで指定して読み込みます。
すると、CK上で編集した日本語が、文字化けしない状態で表示される筈ですので、そうしたら今度は同じ「Override Code Page」の箇所を「UTF8」に選択し直します。
そして「Embed Strings in」のボタンを押して、espを書き出してください。
これでゲーム上で文字化けしない「UTF-8」の形式のespに変換できます。

気をつけなければならない点としては、作成した自作Modを再び編集するためにCKで開く場合です。
作成したModを「Skyrim Strings Localizer」でUTF-8のコードで保存してしまっていると、Shift_JISしか読み込めないCKでは当然、日本語は文字化けした状態になります。

自作したModに限らず、他人様のModでも、Modの中身の日本語テキストが「UTF-8」になっている場合は、そのままCKで開くと文字化けしますので、それらを編集したい場合は「Skyrim Strings Localizer」でShift_JISに文字コードを変換しなおします。
つまり「Override Code Page」で最初に「UTF8」で読み込んで、次に手打ちで「932」を指定して「Embed Strings in」して書き出す、という逆の手順を行うわけですね。
ちなみに「Skyrim Strings Localizer」でModを保存する際には、自動的に「bak」という拡張子の、書き換える前のデータがバックアップされている筈ですので、「UTF-8」変換前のbakデータが残っている場合はそちらのファイルを使用してもかまいません。
…というかPCのスペックにもよるかとは思いますが、CKを起動したままでもゲーム本体は普通に起動できますので、Modの作成・動作確認中はCKをいちいち終了しない方がいいです。
編集中のespファイルを開いた状態のまま、ゲーム上での動作確認を行い、何か修正点があれば開いたままのCKに戻って編集し、espを上書き保存。
そしたら「Skyrim Strings Localizer」の「932」で読み込み→「UTF8」で書き出し。
再びゲーム中にロードして動作確認。
…とまあ、面倒ですが、慣れてくると流れ作業的にこのコンボを繰り出せるようになります。