思いつくままを綴る雑記帳

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

クローンNPCからの顔の移植について

以前にどこかで、こんな質問内容を見た記憶がある。

「クローンの顔を移植する方法ってないのかな?」

記憶の片隅に引っかかっていたので、ちょっと試してみた。

クローンは元々ベースになるNPCがいるはずなので何故クローンから顔データの移植をしたいのかは不明だが・・・
(元のNPCはModに定義されているはずだからそれから移植すれば簡単だという理由・・・)
クローンの顔データを調整しているModがあるのだろうか?

こうしたら移植できるということでやり方を残しておく。
但し、これが正しいのかどうかは保障できない。
このやり方は.essファイルを直接変更しているので事前にバックアップを取る事を勧める。
また、読んでも分からなければやらない方が賢明だと思うよ。

ここを見れば参考になります。
Tes4Mod Save File Format

.essファイルをバイナリエディタで開く
「FULL」で検索するとNPCの名前が出てくるので該当するNPCを見つける。
見つけたブロックから「FGGS」を検索する。
FGGSの次の2バイトがブロックのサイズになっている。
上位下位バイトが入れ替わっているので、C8 00となっているはず。
00C8 = 200バイト
C8 00の次から200バイトコピーする。
FGGSの次のブロックはFGGAなのでFGGSの次の2バイトを除いた先からFGGAの直前までをコピーすればいい。
FGGAも同様の構造だがFGGAは顔が左右対称に作られていない場合のデータなので通常は00ブロック。
ちなみにFGGAは120バイトである。
これが00で埋まってなければ非対称に作成されているので同様にコピーする必要がある。
FGGAの次はFGTSのブロック。
これも同様の構造。
これはテクスチャの扱いに関するものなのでコピーする。
これも200バイト存在する。
FGTSの次のブロックはFNAM。
FNAMのサイズを見ると 02 00となっているはずである。
02 00の次の2バイトもコピーする。

これで最小402バイト、最大522バイトコピーしたはずである。

同じ種族、性別で新規セーブデータを作成する。
新しいModファイルを作成する。
該当する種族を含むファイルがマスター指定されていること。
新規作成したキャラの顔データを作成したModにインポートする。(WryeBash)
TES4EditでインポートしたNPCのデータを開いて上記の要領でデータをコピーする。
バイナリエディタで作成したセーブデータの.essファイルを開く。
先程コピーしたFGGSに当たるデータを検索する。
見つけたらFGGS、FGTS必要ならFGGAも検索してコピーしたいクローンの取得したデータで上書きする。
使用するバイナリエディタによっては両方の.essファイルを開いておく必要があるかもしれない。

保存したらWryeBashで変更したセーブデータから顔データを先程のModにインポートする。
CSで顔データをインポートしたModを開く。
インポートしたデータは直接そのまま使用することは避けた方がよい。
理由はデータを上書きする時にFNAMが書き換えられていないからである。
FNAM自体どのように作用するかは不明だがジオメトリに関連するデータのようなので一致させる方が賢明だ。
そのために新規に同種族、同性別のNPCを作成しそれにインポートしたNPCのジオメトリ及びテクスチャをコピー&ペーストする。
完了したら不要になったインポートしたNPCデータは削除した方が無難。
保存して終了する。
続きを読む
スポンサーサイト

PEM_ChangeMod version 1.80 公開

今回バージョン番号が大きくなった理由はシステム周りの構成の変更のためです。
最近いろいろとModを作っていて取り入れた仕組みをPEM_ChangeModにも取り入れたために構成が大きく変化しました。

これまでConscribeは推奨でしたが、これからは必須になってます。
3つあったiniファイルが1つに・・。
代わりにiniファイルで提供されていたファイルがlogファイルとして提供される。
Conscribeのlogファイルですが扱いはデータファイルと同じです。

前回の投稿で書いていた複数の文字列を取り込むために組み込んでいたクエスト関連を撤廃してConscribeの機能で取り込むように変更しました。
これまではNPCの変更結果をログファイルからコピー&ペーストする作業がありましたが、このおかげで自動的に更新出来るようになりました。
Modの構成で正しく認識できなくなった変更内容を一時的に保留状態にし正常に認識出来るようになった段階で改めて自動的に適用するということも可能になってます。

この機能はデフォルト設定のオプションになってます。
一時保留機能をOFFにするとModの構成変更などで変更内容が適用出来ない場合はそのNPCの変更データが削除されます。
また既に登録されているNPCの髪形をまた変更するなどした場合も自動的にそのNPCのデータを更新します。

これまではスクリプトを書き出すために出力され続けていたログファイルはなくなりました。
起動する度にログファイルが肥大することもありません。

既存のiniファイルとはデータの記述方法が異なっているのでデータの引継ぎ方法などは同封のドキュメントに記載しています。
多言語化のために使用するメッセージはテキストファイルとして提供されるようになっています。
魔法の名称を変更したいとか、この文言はこうしたいということも出来ます。
一部スクリプトの構造を理解していないと難しいかもしれませんが失敗したら元に戻せばいいやという感覚でやればいいんじゃないかな?
このファイルにはあたかもメッセージ番号と思えるような番号が記載されていますが・・・
これは単なる飾り・・・この番号はシステム内では一切使用されていません。
5番のメッセージを10番に番号を変えても変わることはありません・・・。
いくつメッセージ書いたか数えなくていいように付いてるだけです。

やっちゃったよ・・

まだ公開もしていないModの事を書くのもあれですが・・・
前回書いたPEM_YourSplendidLifeのことです。

内部的にはバージョン1.5ぐらいの勢いで拡張してしまった・・・。
画面ベースで13画面・・・。
LoversRecruitGrewupNPCの正式リリース版というよりは既に別物の様相です。

全体の書き直しは既に3回・・・。
都度、動作確認の繰り返し・・・。

この状況は作業中に起こるあれのせい・・・あ!これいいんじゃね?

そう・・・私の思いつきのせいです。
データのバックアップ、自動更新機能など・・・どっかのシステム?
みたいな機能までいれちゃってますが・・。

本当にどうしよう・・・
このまま力尽きて公開しないまま終わりそうな予感も・・・
こうして書いている間も・・・こっちの方がいいんじゃね? と、囁く声が・・・

既に全体チェックの段階なのに・・・
しかも・・その方向で修正すると・・・また・・全面見直しになるでしょうに・・・

現在、ほぼスクリプトのみのはずなのに200kb越えてるという・・
んー・・・もうしばらく禅問答が続きそうです・・。
続きを読む

RecruitGrewupNPCって実験段階のままだった・・

猫さんは以前にLoversRecruitGrewupNPCというModを作っています。
添付しているReadMeにもこれは実験的なModですと明記しているので・・・
使ってくれている人も実験台なのかよと思いながら使ってるのでしょう。

何故今頃そんな話?・・・的な感じですが・・・。
実験的なMOD?・・・・ん~それでいいの? 的な?
じゃ、正式リリース版作っちゃう? 的なというか・・・。

昔は10年前に書いたソースコードも記憶していましたが・・・
最近は昨日の食べたものも・・・正確には・・・

ということでLoversRecruitGrewupNPCのスクリプトを見直すのは諦めた・・。
まぁ、機能的に同等のものであれば・・・
ということで・・・製作中・・・・。

いくつかの機能は割愛して、新たな機能を追加して・・・
これで相殺?・・・

Mod名はPEM_YourSplendidLifeになりますが・・・
元々はAIを搭載していない何もしないNPCに何か生活感を持たせたいと作ったのがLoversRecruitGrewupNPCを製作したきっかけなので・・・
PEM_YourSplendidLifeは、あなたの生活に華やかさを・・という意味合いを込めて命名しました。
今回のModも言語に依存しない作りになってます。

言語データは全てiniファイルに出しているのでユーザーが変更することが出来ます。
猫さんは日本語以外話せないので・・・機械翻訳された英語じゃわかりませんという方のためにこのような仕様にしています。
各自でわかるように文言変更してねということです。

この仕様のため.obseファイルが少し大きくなりますが・・・5kbぐらいかな?
どんな人が見ても構造が分かり易い様にスクリプトを書いてきましたが・・
これはさすがに無理・・・・頭にある設計書も何度も変更したりしているしね・・

最近作成したLoversImHere.espでこの手法を取り込み始めました・・。
言語別にMod作るとメンテナンス大変なので・・・
出来るだけメンテナンスが楽な様にしています。
LoversImHere.espではNPCが喋る台詞を勝手に追加したり出来るようになってます。
CSとか使わなくてもいいようにiniファイルに台詞を追加するだけです。

で、PEM_YourSplendidLifeに話を戻すと・・・
基本機能は80%作成してあります。
今は地道にこの基本部分の動作検証中・・・・。
進み具合を見て割愛した機能を組み込むか検討します。

機能追加するとスクリプトの構造を大幅に変更しないといけないのは分かっているので躊躇しています。
まぁ猫さんの基本的な判断基準は自分が使ってみて、こんな機能ほしいなですから・・
作った後にWryeBashでghostにしているModも結構あるけどね・・・

いつかPEM_YourSplendidLifeを見かけることがあったら、あぁ・・これかぁと思ってくれたら幸いです。
続きを読む
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。