読者です 読者をやめる 読者になる 読者になる

Skyrim箱庭DIY

MODによる固有の環境不具合は自分で直して快適ゲーム。CTDにさようなら。Do It Yourself!!

【Skyrim】プレイヤー追加種族に髪が適用されない場合の原因と対策

改造 競合対策 キャラクタ


スポンサーリンク

キャラクタエディット時に追加種族を選ぶと、バニラ種族では選べる髪や眉、目等が選択できない場合が稀にあります。恐らく古いMODほど確率高いんじゃないでしょうか。これは不具合というより、そのMODの仕様だと思います。

特に、追加した髪が選択できないことが目立ってしまう為、

 

MODで追加した髪が特定の追加種族だけ選べない

 

という判断をしがちですが、厳密には違います。

おそらくバニラの髪も一部が選択不可になっている筈です。良く見れば眉や目も選択できない物があるんじゃないでしょうか。実は同梱されている髪以外は選べなかった、なんて場合もあります。なぜこういう事態が起こるのでしょうか?

順を追って探ってみます。

 

現象としては大したことなさそうに見えるのですが、すごく根の深い問題です。 結構手間かかります。多少の不具合に目を瞑るなら楽に修正できますが、お勧めしません。この場合、クエスト進行に不具合出ます。他の同種のMODとも競合します

 選べないパーツが存在する理由

そもそも追加種族というのは、バニラと無関係の新種族です。人類っぽいのからプレデターロンゾ族まで。それら全部ひっくるめて「追加種族」です。

つまり、システム的には既存の髪と互換性が無くて当たり前なんですね。

 

例えば、「人間種族にしか見えない追加種族」を導入した場合を考えます。

見た目が人類な以上、ノルドで使えた髪ならば、この追加種族でも使いたいのが人情です。しかし、残念ながらゲームシステムにはそのファジーな判断ができません。アルゴニアンのエディット時に人間種族の髪が選択肢に出てこないように、追加種族に対しても人間種族の髪を選択肢に表示しません。

 

アルゴニアンのエディットするとき、こんな髪は本来表示されませんよね。

これはこれで面白いですけど(笑)

アルゴニアンに人間種族の髪

 

つまり、

 

追加したのは人間種族である

 

という情報を、どこかに設定する必要があります。

 

Form Listという名の「メモ」

Form List」(TES5EditだとFormID List)というカテゴリがあります。これは好きなように使える、Editor IDを羅列しただけのただのリストです。

買出しに行く時「どら焼き、ちくわ、チーズケーキ」と書いたメモを作ったり。

飲み会参加者を控える為、せっかくだから「越前、ダニー、グレッグ」と手帳に書いたり。

名称を羅列しただけのリストです。何に使うかは書いた人のみぞ知る、です。

 

これを使って「人間種族」のリストだったり、 「獣人以外の種族」のリストだったりと、必要に応じて色々なリストがあります。

種族以外にもアイテムリストや魔法リストとか、何でも好きなように使えると思います(何か制限あるかもしれませんが、知らないです)。

 

これを踏まえて、そろそろ現物を見ながら説明してみます。

 

追加種族MODのValkyrieRace_0_0_4out_fx5を例にして構造を見てみます。様々な特殊アビリティを持った種族を追加するMODです。最終更新は2012年7月と、ちょっと古いですが。

見た目は人間種族なので、バニラは勿論、ApachiiSkyHairで追加された髪も選択肢に入って欲しいところですけど、キャラエディットでは一部の髪しか選べません。MODにもApachiiSkyHairがいくつか同梱されていますが、それ以外も一部の人間種族用の髪は選ぶことができます。中途半端に人間種族であると認識している感じです。微妙ですぬ。

以下、TES5Editで中を見ながら説明してみます。

※重要※

Form Listの構造説明の為に見ていきますが、この方法でのForm List変更は現在はやめた方が良いです。お手軽ですけど。理由は後述します。

 

ValkyrieRaceをTES5Editで開く

 早速Form Listを見てみます。「HeadPartsHuman」というForm Listがあり、Skyrim.esmではその名の通り人間種族が羅列されています。赤枠内、Valkyrieもここに追加されています。

ValkyrieRaceのFormList

 

Form Listは色々有ります。「HeadPartsAllRacesMinusBeast」というリストは、オークやエルフ、吸血鬼も含んだ「獣人種族以外」のリストです。ここにもValkyrieが追加されています。

ValkyrieRaceのFormList2

 

 ApachiiSkyHairをTES5Editで開く

このForm Listがどう使われているのか?を調べるためにApachiiHair.esmの髪を見ます。マスター指定して使うこともできるように、esmになってます。

Head Partの中に髪があるので、1つを見てみましょう。

赤枠の中、「Varid Races」の項目に、上記Form Listが設定されています。

ApachiiHairのValidRaceを確認

何してるかというと、「HeadPartsAllRacesMinusBeast」に書いてある種族がValidである、と設定してます。つまり

 

これは「獣人種族以外」に対して使える髪

 

と設定されてる、ってことです。このように各パーツごとにForm Listを設定することで、どの種族に対して有効なパーツなのか指定されています。

 

もう1個、別の髪も見てみます。

HeadPartsHumansandVampires」というForm Listが設定されています。見覚えが無いですね

ApachiiHairのValidRaceの確認2

このForm Listを覗いてみます。 すると・・・

 

上書きがありません。このForm ListにはValkyrieRaceが追加されていないです。見覚えが無い訳ですね。

f:id:Kutsumiya:20150611042722p:plain

つまり、このForm ListをVarid Raceとして設定している髪に対し、システムは

 

これはValkyrieには適用外の髪である

 

という判断を下します。

 これがValkyrieにおいて、表示される髪とされない髪がある、という原因の正体です。

 

Form ListにValkyrieを追加する実験

Form Listに追加すれば髪が使えるようになるか?を確認してみます。前述しましたが、これを恒久対策としないでください。トラブルになります。あくまで構造確認の実験です。理由はもうちょっとだけ待ってください。

 

Form List「HeadPartsHumansandVampires」にValkyrieを追加してみました。

ValkyrieをFormListに追加

 

Skyrimを起動して確認してみると、Hairスライダで選択できる髪の数が大幅に増えました。以下のSS2枚の髪は、いずれも使うことの出来なかったApachiiSkyHairの髪です。Form Listに追加したことで、Valkyrieも使用対象種族の仲間入りとなりました。

FormList追加でValkyrieで使える髪が増えた確認

 

FormList追加でValkyrieで使える髪が増えた確認2

構造認識としてはこれで正しいようです。いよいよ何故これを恒久対策としちゃダメなのか?を説明します。

 

この対応策の問題点について

 Dawnguard.esmを一緒にロードしてみました。Form Listが競合しています

SnowElfとValkyrieの競合

DLCで追加されたスノーエルフがValkyrieによって潰されています。なんか問題起きそうです。

同様に、同じ構造のForm Listを持つ追加種族を導入した場合も、競合確実です。今度はValkyrieが潰されることになります。

Bashed Patchのように互換パッチを作ればいけるような気もするかもしれませんが、今度は別の問題が。

詳細見てないのですが、吸血鬼化やウェアウルフ化する時のスクリプトでもForm Listの変更がある(?)ようで、espによるForm Listの変更ではこれらの互換性にも問題が発生するようです。吸血鬼もウェアウルフも、どちらもプラグイン上ではPlayableではない種族になってますし。キャラエディットで最初から選択できませんよね。

 

吸血鬼化しない、一部のクエストを放棄する、Dawnguardを導入しない等の条件であれば回避できるかもですが、かなり厳しいと思います。どうしましょう。

 

Racial Compatibilityを使う

追加種族MODを使っている人は大抵使っていると思います。これはModder's resourcesなので、ただインストールしても何の意味もありません。MOD側で対応している必要があります。

espによるForm Listの変更は行わず、追加種族MODにスクリプトを追加することでこの問題に対応してくれます。他にもあるかもしれませんが、ちょっと僕の理解超えてます。

 

Creating a Playable Race - The right wayにある物が元祖で、その後別の作者さんが改良を加えた2つのバージョン、

RaceCompatibility for Skyrim and Dawnguard

Racial Compatibility - compatibility with other mods improved

が有る、と思ってるんですが、違ってたら指摘頂けると助かります。

 

追加種族を対応させるには、エントリの書き換えとスクリプトの貼り付け、種族に合わせたソース変更とコンパイルが必要になります。どれを使うかで作業内容が少し変わります。

 

原因と対策方針の説明をしたところで、一旦切ります。

次回、

  • Form ListとHeadPartsの関係のまとめ
  • ValkyrieRaceのRacial Compatibility対応化改造 ※次々回に変更になりました。

 

あたりをやってみます。Racial Compatibility対応化に合わせて、吸血鬼化やウェアウルフ化も対応させます。多分・・・できてると思いますが。

 

続きはこちら