Horizon 1.9の環境を構築する

環境構築

改造するために調べたことのまとめ。

UIについて

Horizonは改造版DEF_UIを内包しており、1.9で大幅に改造が進んだようです。

MCM Booster

MainMenu.swfが競合するため共存できず、HorizonかMCM Boosterのどちらかを選ぶ必要があります。

FallUI

postsに書かれている点にだけ注意すれば、FallUIも使えそうです。

If you choose to use another version of DEF_UI, or alternative UI mod, you absolutely MUST use Horizon’s “iconlibs2.swf” file, and it’s XML config files.  As of v1.9, MessageBoxMenu.swf and ExamineMenu.swf that come with Horizon are required, otherwise your game will look broken.

FallUI – Confirm Boxes以外を入れてみましたが、見たところ大丈夫そうです。

ソートについて

Fallout 4のUI Modといえば、DEF_UIとFallUIが有名です。

ソートModも大きく2つあり、DEF_UIとFISがになります。

ソートというModは、機能を2つに分けて考えます。

  • アイテム名の頭に文字をつけることで並び順を制御する
  • 文字をアイコンにかえることでおしゃれにする

アイテム一覧は基本的に名前順に並んでいます。そこで [Weapon][Armor] といった文字を付け加えることで、勝手に種類毎に並ぶようにしよう、というのがソートの基本の目的です。

これだけですと [Weapon] という文字がそのまま見えることになり格好悪いので、 アイコンにして見栄えをよくしよう、というのがもうひとつの目的です。

この [Weapon] という文字のことをソートタグと言います。

DEF_UIはUIを使いやすく改善し、さらにDEF_UI流ソートタグとDEF_UI流アイコンを足したものです。

FallUIはUIを使いやすく改善しますが、ソートタグとアイコンは好きなものが使えます。

まとめると、以下のどちらかになります。

  • Horizonだけを使う。DEF_UIを使うことになる。
  • HorizonにFallUIを足して使う。見た目はFallUI、ソートタグとアイコンはDEF_UIのまま。

日本語に対応させる

ffdecを使ってswfファイルにフォントを組み込みます。詳細は任意のUIに任意のフォントを使う方法にて解説しています。

作業記録

以下の要件定義で作業を行いました。

  • 基本的にHorizonが用意したフォントを使う。(デザイン的に良いと感じるので)
  • 日本語を表示可能にする。(できればFallout 4 Alternative Japanese Fontのままで)
  • Horizonの罫線などを壊さないようにする。

まず、Fallout 4 Alternative Japanese Fontを導入します。ロード順はHorizonの前です。

FontConfig.txtはFallout 4 Alternative Japanese Fontのものを使うことになります。

Horizonのfonts_en.swfからRoboto Condensedのフォントを2つexportします。これは英語フォントのみなので、importの際はall charactersで大丈夫です。

Fallout 4 Alternative Japanese Fontからfonts_ja1.swfを抜き出し、新規ModとしてMO2に追加します。ロード順はHorizonより下になるようにして最優先させます。

新規Modのfonts_ja1.swfをffdecで開き、Horizonからexportしたフォントをimportします。これでFallout 4 Alternative Japanese Fontの日本語フォントを使いつつ、Horizonの英語フォントになります。

Horizonからfonts_en.swfを抜き出し、新規Modに加えます。これをffdecで開き、Roboto Condensedの2つを削除します。

他にもfonts_en.swfとfonts_ja1~4.swfでフォントが被っているとfonts_en.swfが優先されるようなので、fonts_en.swfから以下のフォントを削除します。

  • DefineFont3 (6: $Terminal_Font, Share-TechMono)
  • DefineFont3 (7: $MAIN_Font_Bold, Roboto Condensed)
  • DefineFont3 (8: $MAIN_Font, Roboto Condensed)
  • DefineFont3 (9: $HandwrittenFont, Handwritten_institute)

フォントを削除する際は、fontsから当該項目を右クリックしてRemove with dependencies (SHIFT+DEL)がいいようです。さらに、scriptsからも同じ名前の項目を消したほうがいいようです。消さないとMCM Categorizerが文字化けするようです。

まとめると以下のようになります。

優先順位Mod内容
1Fallout 4 Alternative Japanese FontFontConfig.txt
fonts_en.swf
fonts_ja1.swf
fonts_ja2.swf
fonts_ja3.swf
fonts_ja4.swf
2Horizonfonts_en.swf
3自作Modfonts_en.swf
fonts_ja1.swf
太字が最終的に使われるファイルです。

Mod武器をHUDの弾薬表示に対応させる

プレイヤーが持っているキーワードで判定しているのでキーワードを適切に付与すれば表示されます。

判定はScript_Z_HUD.pexにて行っています。

Horizonはレシーバーにて弾薬を切り替えるため、レシーバーのOMODにキーワードが設定されています。

武器ごとに弾薬が固定なら横着して武器自体にキーワードを付与しても動作しますが後で困ります。

キーワードはZ_Architect.esmのdn_HasReceiver_Z_38あたりになります。

ロード順

NexusのDescriptionsに書かれています。

LOOTのルールだとZ_Architect_HomePlate.espが違う位置に置かれてしまいますが、FO4Editで覗いてみた限りでは大丈夫そうでした。

結合メッシュ

Z_Architect_Empire.espがコンコード周辺のみですが結合メッシュを無効にしています。

Z_Archiect_EnhancedSettlements.espが各地の居住地を中心に結合メッシュを無効にしています。

Z_Archiect_EnhancedSettlements_DLC.espが各地の居住地を中心に結合メッシュを無効にしています。

Z_Archiect_OptimizedLocations.espが結合メッシュを有効にしています。パフォーマンスへの影響が大きい地域に限って調整しているようで、ハングマンズ・アリー周辺のみです。

気になるなら自分の環境に合わせて結合メッシュを作るといいでしょう。

居住地の数の上限

居住地を存在させるだけなら上限はおそらくはないと思いますが、Horizonが管理している資源のデータが51までとなっています。これを超えると採掘などのデータ処理に失敗します。

Script_Z_ArcResourceManager.pexで管理しているので、上限数を決めているMaxDepositLocations定数の51を増やすことで対応できます。単に増やすだけだとニューゲームが必須です。途中で増やすには生成済みの配列を拡張する処理が必要になってきます。

薬品のランダム化

Horizon 1.9では薬品が入手した時点で何かしらの薬品が出てくる福袋的な物に置き換えられています。

プラグインにて置き換えられていますので、これはBase Object Swapperを使う方が簡潔に済むので、そうした方がいいでしょう。また、Modで追加された薬品も置き換えてくれます。

以下はSubway Runnerの例です。Locationの指定を無くせばゲーム全体で置き換えることができます。

subwayrunnnernodynamic_SWAP.ini (ini)

[Forms|subwaysystemruins]
Addictol|APack_WorldLoot_RandomLoot_DrugBox
Bloodpack|APack_WorldLoot_RandomLoot_DrugBox
Buffjet|APack_WorldLoot_RandomLoot_DrugBottle_Buffout01,APack_WorldLoot_RandomLoot_DrugBottle_Buffout02
Buffout|APack_WorldLoot_RandomLoot_DrugBottle_Buffout01,APack_WorldLoot_RandomLoot_DrugBottle_Buffout02
Bufftats|APack_WorldLoot_RandomLoot_DrugBottle_Buffout01,APack_WorldLoot_RandomLoot_DrugBottle_Buffout02
Calmex|APack_WorldLoot_RandomLoot_DrugBox
DaddyO|APack_WorldLoot_RandomLoot_DrugBox
DayTripper|APack_WorldLoot_RandomLoot_DrugBox
Fury|APack_WorldLoot_RandomLoot_DrugBox
Jet|APack_WorldLoot_RandomLoot_DrugBox
JetFuel|APack_WorldLoot_RandomLoot_DrugBox
MedX|APack_WorldLoot_RandomLoot_DrugBox
Mentats|APack_WorldLoot_RandomLoot_DrugBox
Overdrive|APack_WorldLoot_RandomLoot_DrugBox
Psycho|APack_WorldLoot_RandomLoot_DrugBox
PsychoJet|APack_WorldLoot_RandomLoot_DrugBox
Psychobuff|APack_WorldLoot_RandomLoot_DrugBox
Psychotats|APack_WorldLoot_RandomLoot_DrugBox
RadX|APack_WorldLoot_RandomLoot_DrugBottle_Radx01,APack_WorldLoot_RandomLoot_DrugBottle_Radx02
RadAway|APack_WorldLoot_RandomLoot_DrugBox
StealthBoy|APack_WorldLoot_RandomLoot_DrugBox
Stimpak|APack_WorldLoot_RandomLoot_DrugBox
XCell|APack_WorldLoot_RandomLoot_DrugBox

更新履歴

NexusのForumにPatch Notes - Horizon v1.9があります。1.9の新要素に関する詳細な文書です。

Horizon WikiのPatch notesにもあります。1.9.1の変更点があります。

タイトルとURLをコピーしました