2016/03/27

日本語かな入力メニュー ~Rename Tool~

プレイヤーやアイテムの名前を変更するModは、以前にもこんなのとかこんなのとか作ったことがあるのですが、その総集編みたいなModを改めて作ってみました。
ちなみに「日本語かな入力」といっても、ゲーム内で日本語入力IMEを直接起動できるわけではなくて、ひらがな・カタカナ以外はクリップボード経由で入力できるというだけなのですが、コピペしたテキストを何度も使いまわせるようにメニュー自体にいくつかテキストをストックできる機能をつけましたので、これで少しは使い勝手がよくなったんじゃないかと思っております。
あまりクールなデザインとは言えませんが、私なりに工夫してみましたので、ぜひ使ってみてください。
Download >> RenameTool_v1.0.zip 2016.3.27 update

●Modの概要

このModはプレイヤーやNPC、アイテムなどの名前をゲーム中で変更するためのModです。
日本語かな入力用のカスタムメニューを使って、ひらがな、カタカナを直接入力できる他、クリップボード経由で漢字なども命名に使用することができます。
名前変更はMCMからいつでも好きな時に行える他、付呪する時のアイテムの名前変更の際にも日本語かな入力メニューによる文字入力が可能です。
また、かな入力メニューを使って保存したテキストを、コンソール画面のコマンド入力欄にコピペすることもできますので、batファイルをわざわざ作らなくてもこれで日本語の名称を直接helpコマンドで調べることができます。
ちなみにこのModは、付呪のクラフトメニューやコンソール画面のFlashファイルには一切変更を加えていませんので、SkyUIやMfgConsoleを使っていても競合せずに稼動します。
というか、むしろSkyUIは必須ですので必ず導入してください。


●名前変更のためのホットキーの設定について

このModを導入したら、まずはMCMの「Rename Tool」のメニューを開いて、ホットキーの設定を確認してください。
このMod用のホットキーは、クロスヘア(照準)の当たっている対象の名前を変更したり、付呪の画面でかな入力メニューを呼び出す時に必ず使うものになります。
デフォルトでは「名前変更キー」が「V」、「補助キー」は「Ctrl」キーになっています。キーを変更する場合は、付呪時の操作キーなど他の機能とカブらないキーを割り当ててください。
(ゲームパッドをご使用の方は「名前変更キー」だけで結構ですので、できるだけ差し触りの無いボタンをひとつ割り当ててください)。
ちなみに「補助キー」はキーボード入力時の誤爆を防ぐために「同時押し」をするための補助用のキーとして使用します。(CtrlキーやShiftキーを設定するのがおすすめです)
補助キーはゲームパッドのボタンを割り当てても有効にはなりませんので、必ずキーボードのキーを割り当ててください。

いずれもMCMにある「ホットキーの設定解除」で、どのキー(ボタン)も使用しないように割り当てを解除できますので、使用できるキー(ボタン)が少ない環境の場合は、名前を変更する時だけホットキーを設定するなど、工夫してご利用下さい。


●プレイヤーの名前を変更する

プレイヤーの名前を変更するには、MCMメニューから「プレイヤーの名前」>「変更する」の箇所にある「>>」のマークをクリックします。
するとプレイヤーの名前を変更するために、日本語かな入力メニューが開きます。
テキスト欄は、半角英数字でしたらキーボードからの直接入力が可能です。
「←」「→」キーやクリックでキャレット(※テキストフィールド内で文字を入力する位置に表示されている縦棒のこと)が移動しますので、好きな場所に文字を挿入したり、「BackSpace」や「Delete」キーで文字を削除したりできます。
ひらがなやカタカナなどの文字ボタンにフォーカスが移ると、残念ながらテキスト欄のキャレットは見えなくなってしまいますが、最後にキャレットのあった場所にちゃんと文字が挿入されますので、まずは編集したい文字位置にキャレットを合わせてから、お好きな文字ボタンを押してください。
(余談ですが、この機能をつけるの、地味に大変でした……)

ちなみに日本語かな入力メニューには、下記のような機能をもったボタンがあります。
キャンセル
…何も変更しないで、かな入力メニューを終了します。
元に戻す
…かな入力メニューが開いた時、一番最初に表示されていたテキストにリセットします。
クリップボード
…クリップボードにあるテキストを、テキスト欄のキャレットの位置に挿入します。クリップボードに予めテキストをコピーしておくか、ウィンドウを切り替えて、メモ帳などでテキストをクリップボードにコピーしてから、改めてスカイリムのゲームのウィンドウに戻り、「クリップボード」ボタンを押してコピペしてください。
コンソール用に保存
…テキスト欄のテキストを、コンソールコマンド用に保存します。コンソール画面で「補助キー」+「名前変更キー」を押すと、保存したテキスト(日本語可)をコンソールコマンド入力欄にコピペできます。

また日本語かな入力メニューの下段には、テキストを保存しておけるストック欄があります。
ストック欄のテキストを使いたい場合は、まずその使いたい箇所のストック欄をクリックして「選択状態」にします(選択状態になると背景が青に変わります)。
その状態で、保存「↓」ボタンを押すと、テキスト欄のテキストが選択したストック欄に保存されます。
また読込「↑」ボタンを押すと、選択したストック欄のテキストが、テキスト欄のキャレットの位置に挿入されます。

わずか6個の枠ではありますが、クリップボード経由のテキストだけでなく、このかな入力メニューのテキスト欄に入った文字は何でも保存できますので、うまくやりくりして作業を軽減してください。

!ご注意!
プレイヤーの名前に日本語を付けると、デフォルトの「fontconfig.txt」の設定のままでは「showracemenu」のキャラメイク画面を終了できないことがあります。
その場合は、一旦半角英数字の仮の名前をつけてキャラメイク画面を終了し、再びプレイヤーの名前をRenameToolでつけ直すか、あるいは「data/Interface/fontconfig.txt」を編集して、日本語を使えるように「validNameChars」の項目にひらがな・カタカナ・漢字などを追加して下さい。
(※「validNameChars」の設定は、キャラメイク時の最後に出てくるプレイヤーの命名テキスト欄や、付呪時のアイテム名前欄で確定できる文字を定義しているコンフィグ項目です。
デフォルトでは日本語のひらがな・カタカナ・漢字などは設定されていませんので、日本語の文字を入力したい場合はその設定を変更する必要があります。
ひらがなやカタカナ、漢字などの文字を追加した「fontconfig.txt」のサンプルはこちら


●クロスヘア(照準)の対象の名前を変更する

MCMメニューにある「クロスヘア対象の名前」>「名前変更モードを開始」の箇所にある「>>」のマークをクリックすると、クロスヘア(照準)の当たったNPCやアイテムなどの名前を変更できるようになる「名前変更モード」が始まります。
(「補助キー」+「名前変更キー」で、MCMを使わずに「名前変更モード」を開始することもできます)
「名前変更モード」中はずっと画面上部中央に、名前変更モード中であることを示すウィジェットの表示が出続けます。うざいことこの上ない仕様ですが、このモードを終了させるのを忘れないようにあえて目立つように表示しているものですのでご理解下さい。
「名前変更モード」中にクロスヘア(照準)が当たると、上記のスクリーンショットのように対象が赤くもわっと光ります。名前を変更したいNPCやアイテムを赤く光らせたら、「名前変更キー」を押してください。
対象の名前を変更するために、「日本語かな入力メニュー」が開きます。
!ご注意!
クロスヘア(照準)の対象の名前は、すべてが変更できるわけではありません。
その場では変更できたように見えても、ゲームを起動しなおしたり、遠く離れたりすると名前が元に戻ってしまうものも数多く存在します。
(ちなみにクロスヘア対象の名前変更は、SKSEの「SetDisplayName」関数で行っています)

また、名前を変更したNPCやアイテムが、クエストの関係者(エイリアス)に選ばれると、表示名(ディスプレイネーム)を失ってアクティベートできなくなることがあります
(たとえばリディアさんの名前を変更し、その後、リディアさんに「ついて来い」と話しかけてフォロワーにすると、その瞬間からリディアさんの名前は表示されなくなり、話しかけられなくなります)
こういった問題が起きた場合、NPCに関しては名前を回復する魔法(下記参照)で復旧することができますが、アイテムや宝箱など魔法がかからないものに関しては修復の手段をご用意していませんので、クエストの対象になりそうな物体はむやみに名前変更したりしないようにご注意下さい。
NPC(動物を含む)の名前を元に戻したい時、あるいは表示名が無くなってしまった時は、「名前の回復」呪文をその対象にかけてあげることで、失った名前を復活させることができます。
名前を回復する呪文はMCMの「システム」のカテゴリの項目から習得できます。
実をいうと、クロスヘア対象の名前を変更する機能については、表示名を失ってアクティベートできなくなるとクエストなどが詰む恐れもあるため、削除しようかな……とも思ったのですが、いろいろ思い悩んだ末、あえて残すことにしました。
というのも、クロスヘア対象の名前を取得できれば、わざわざウィンドウを切り替えてクリップボード経由で漢字を輸送しなくても、使いたい文字が含まれる名前をストックすればいいので……ばっさり切り捨てるにはちょっと惜しい機能だな、と思って。
そんなわけですので、クロスヘア対象の名前を変更するモードについては、かな入力メニュー上にアイテムの名前をストックするための補助的なモードとしてお使いいただければ幸いです。

「名前変更モード」を終了させるには、MCMの「クロスヘア対象の名前」>「名前変更モードを終了」をクリックするか、対象の名前を変更した後に出てくる確認画面で「名前変更モードを終了」のボタンを選んでください。ウィジェットの表示が消え、クロスヘアの対象が赤く光ることはなくなります。


●付呪中のアイテムの名前を変更する

付呪中にアイテムの名前を変更するには、まず付呪するアイテムや効果、使用する魂石をちゃんと選んで、あとは「作成」ボタンさえ押せばこれで付呪できるという完成の一歩手前の状態にします。
左下に「アイテム名の変更」するキーの表示が出ていれば準備OKです。
この状態になったら「アイテム名の変更」のキー(ボタン)は押さずに、「補助キー」+「名前変更キー」を押してください。(ゲームパッドの方は「名前変更キー」に割り当てたボタンを押すだけでOKです)
すると「日本語かな入力メニュー」が開きますので、そこでお好きな名前を入力して下さい。
「決定」ボタンを押して、かな入力メニューの画面を閉じると、アイテム名前欄の名前が変わります。
しかしこの状態ではまだ名前は確定していません。大事なのはここからです!
上の画像を見ると、一番左端にキャレットの縦棒が見えているのがわかるかと思いますが、この状態ではまだ、変更した名前のテキストは確定されていません。
念のためキャレットを文末まで移動させてから、必ずリターンキー(Aボタン)を押して、変更した文字を「確定」して下さい。(確定したらキャレットは見えなくなります)
そして文字を確定したら、余計なものは触らずに、すかさず付呪の「作成」に割り当てられたキー(ボタン)を押して付呪を行います。余計なところをクリックしたり、他のキーやボタンを触ってしまうと、元の名前に戻ってしまいますのでご注意ください。
ちなみに「日本語かな入力メニュー」は付呪中ならいつでも開くことができるので、どんな状態のものでも名前を変えることができるように見えるのですが、実際は「あとは【作成】ボタンを押すだけで完了」という付呪アイテム完成一歩手前の状態でなければ、アイテムの名前を変更することはできません。
(余計なところをちょっとでも触ると、すぐ元の名前に戻ってしまうため)
なんともクセのあるわかりずらい仕様ですが……SkyUIのクラフトメニューのFlashを大改造するわけにもいきませんので、慣れるしかありません。
慣れるまで何度か失敗するかもしれませんので、まずは名前をつけ損なっても惜しくないものでお試しくださいませ。
!ご注意!
付呪のアイテム名前欄のテキストは「fontconfig.txt」内の「validNameChars」という項目で設定されている文字でないと確定できません。
デフォルトの「fontconfig.txt」では、ひらがなやカタカナ、漢字といった日本語の文字は設定されていませんので、「日本語かな入力メニュー」で日本語の名前を付けようとしても、デフォルトの設定のままではテキストを確定することができずに元の名前に戻ってしまいます。
ひらがなやカタカナ、漢字を追加した「fontconfig.txt」のサンプルはこちらでダウンロードできます。
ただし「fontconfig.txt」にはフォントの設定情報も含まれていますので、フォントを変更している方は、ご自分の「fontconfig.txt」の設定を上書きしないようにご注意ください。
(フォント変更して「fontconfig.txt」の設定を変えている方は、サンプルの「validNameChars」の項目の設定だけ参考にして下さい)

ちなみに「Enhanced Character Edit」に付属している「fontconfig.txt」を使用されている方は、日本語のプレイヤー名を付けるために「validNameChars」に漢字や記号等が追加されていますので、わざわざ上記のサンプルを使う必要はありません。
ECE付属のものでなくても、「fontconfig.txt」の最後の方に漢字だの記号だのがいっぱい並んでいるものであれば大丈夫ですので、ご自分の環境の「fontconfig.txt」をまずは確認してみてください。


●コンソールコマンド入力欄にテキストをコピペする

「日本語かな入力メニュー」の「コンソール用に保存」ボタンを押して保存したテキストは、コンソール画面の表示中に「補助キー」+「名前変更キー」を押すことで、コマンド入力欄にコピペできます。
保存したテキストは「help "保存したテキスト"」という形式でコピペされます。
コピペするとキャレットが中途半端な位置に移動しちゃいますが、細かいことは深く気にせずにw、文末までキャレットを移動させてからリターンキーを押してください。
ちなみにコンソール画面のコマンド入力欄にテキストをどうやってぶち込んでいるのかというと、
UI.SetString("Console", "_global.Console.ConsoleInstance.CommandEntry.text", "テキスト")
という記述でやっとります。(ActionScript2.0だからこそ出来る技ですね)
MfgConsoleのコンソール画面でもバニラと同じ指定で動くか心配だったのですが、MfgConsoleはバニラの構成を変更してはいないようで、問題なくコピペできました。

MCMの「コンソールコマンド」>「コマンド用テキストを編集」をクリックすると、コンソール用のテキストを編集するために「日本語かな入力メニュー」が開きます。
もっともMCMから編集しなくても、「コンソール用に保存」ボタンを押せばいつでもテキストを保存できますので、プレイヤーやアイテムの名前をつけるついでにテキストを保存しておけばOKです。
保存したテキストはMCMのメニュー上に表示されます。
「coc」コマンドを多用する私は常々、日本語の場所名からセルIDをhelpで調べることができたらなあ、と思っていましたので、個人的には付呪の日本語命名よりも遣いでのある機能だと思っております。
場所の名前はカタカナのみだったりすることが多いので、かな入力だけでも充分事足りますしね。


●Modのインストールについて

このModはSKSEのバージョン1.7.3以上、SkyUI v5.0以上の導入が必要です。
Modをインストールするには、解凍したデータを丸ごとSkyrimのDataフォルダに直接入れるか、NMMやMOなどのMod管理ツールを使って導入し、ゲーム中に「ロード」するチェックを入れてください。
またスカイリムを「japanese」から「english」にリネームする方式で日本語化されている方は、解凍したデータ内の「Data/Interface/translations/RenameTool_JAPANESE.txt」を「RenameTool_ENGLISH.txt」にリネームしてからインストールしてください。

Modをインストールする前には、必ずセーブデータ等のバックアップを取り、何か問題が起こっても元の状態に戻せるようにあらかじめ準備してからお使いください。
また「クロスヘア対象の名前の変更」については前述しました通り、物によってはゲームの進行にも差し障りのある問題を引き起こす可能性がありますので慎重に行ってください。

このModについて、「おや?」と思うところを見つけたり、不具合を発見した場合はぜひコメント欄にてお知らせください。どうぞよろしくお願いいたします。
Download >> RenameTool_v1.0.zip 2016.3.27 update

2016/03/16

FloatingMenuを使って

ひみかさん作の「Floating Menu」を使わせていただいて、NPCの頭からシムズみたいなアイコンの吹き出しを表示させるウィジェットの試作品を作ってみました。
とりあえず動いているところが早く見たくて作っただけなので、素材は借り物だし、アイコンもただ単にランダムで表示してるだけなんですが、それでも吹き出しをつけただけで途端にシムっぽく見えるスカイリムの住人達の姿に大笑いしてしまいました。
いや~、UIの破壊力というものは凄いですね。ちょっと弄っただけで、まるで別のゲームになっちゃう。
ロアフレンドリーにこだわる方がご覧になったら憤死しそうな演出ですが、こういう改変を実際にやれちゃうところがスカイリムの懐の深さだと思います。
ウルフリック首長に早速ダメ出しするレイロフ君。いい度胸だ。


静止画のスクリーンショットじゃよくわからんかなと思ったので、動画↓を撮ってみました。
もっと行動と思考回路をリンクさせて、NPCを観察してるだけで楽しくなるようなModにしたいな。



使わせていただいた「Floating Menu」というModは、ゲーム上のオブジェクトに追従して画面上を浮遊するようなFlashを、SkyUIのHUDウィジェットなみに簡単に追加できるという、すんばらしいModです。
ゲーム上のオブジェクトに追従して画面上を浮遊する(Floating)……というのは、クエストの目的人物やアイテムに付くマーカーみたいな状態のことです。
Modだと、戦闘中に敵味方の体力バーを表示する「Floating Healthbars」とか有名ですね。
私はこういう、NPCにくっついて動くタイプのUIがずっと前から作りたかった……!!
NPCの就寝中にzzz...みたいなマークを飛ばしたりだとか、格闘ゲームみたいに攻撃がヒットした時に「○○HIT COMBO」みたいな表示を出したりだとか、NPCの背後に「ズキュウウウン」みたいな書き文字を背負わせたりだとか(笑)……それにシムズみたいに吹き出しのアイコンで会話しているように見えるUIが作れたら、既存のセリフの中から音声を無理やり探さなくても、NPC同士のたわいないおしゃべりシーンが簡単に作れるのに、ってずっとずっと思ってました。

これを使って、仲間たちと最後の旅を楽しむ為のフォロワー拡張Modを作りたいなと思います。
これでフォロワー同士、いちゃいちゃさせよう。