SkyrimMOD作成wiki

CK Tips

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集

CKの非公式修正パッチを適用してCKの不具合やパフォーマンスを改善する(SE版)

SE版のCKには主要なパッチは3つあり、どれもCKに関する様々な不具合を修正しパフォーマンスを改善するため3つとも適用する事をオススメします。
特にSSE Creation Kit Fixes Updateは導入して設定を行う事でCKで日本語が文字化けされずに表示できるようになります。(ただし非推奨との事。問題が発生したらオフにする事)
また、CKによるMod編集をする上で下記の問題はかなり煩わしい不具合なので早めにパッチを適応した方が良いです。

  • espを読み込み中に無限ロードやエラーによる強制終了がランダムで発生(Mod環境が充実すると発生する可能性が大きくなる)
  • 特定の操作を行うとギズモ(オブジェクト選択時に出る移動や回転のアイコン)が突然表示されなくなりCKを開き直すまで表示されなくなる

Unofficial Creation Kit Patch


インターフェイス周りで様々な修正が施されるパッチです。

[導入方法]
AE版でなくても「Unofficial Creation Kit Patch AE」の方をダウンロードしてください。AEと書かれてますがSE版にも対応されてます。
パッチファイルをCreationKit.exeのあるフォルダに全て入れて、UCKP-Backup.batを実行してexeファイルのバックアップを取ります。
その後、UCKP-Patcher.exeを実行しCreationKit.exeのあるフォルダを指定してパッチを適用してください。

SSE CreationKit Fixes


Unofficial Creation Kit Patchで修正されるものとは別の問題点を改善します。

[導入方法]
Main filesの「CK64Fixes Release 3.2」をダウンロードして、
パッチファイルをCreationKit.exeのあるフォルダに全て入れてください。

SSE Creation Kit Fixes Update


SSE CreationKit Fixesを別作者が改善したパッチです。
また、マルチバイト文字(日本語)を文字化けさせずに表示できるように改善されます。

[導入方法]
Main filesのファイルをダウンロードし、
SSE CreationKit Fixesを導入後に上記のパッチで上書きしてください。
日本語を表示する場合は導入後にskyrim64_test.iniの[CreationKit]項目にてUnicodeをtrueにする事で日本語が文字化けされずに表示されるようになります。

[CreationKit]
~(略)
Unicode=true

CKで複数のマスターファイルを読む(multiple master file selected load. load operation abortedのエラーが出る場合)

スカイリムのルートフォルダ(TESV.exeがあるところ)にあるSkyrimEditor.iniをテキストで開いて編集します。
[General]項目に以下のようにbAllowMultipleMasterLoads=1を追加してください。
[General]
bAllowMultipleMasterLoads=1

補足:旧CKSkyrimEditor.ini新しいCK(SSE Creation Kit)はCreationKit.iniにファイル名が変わっています。

CKでDLCのesmファイルを読む

スカイリムのルートフォルダ(TESV.exeがあるところ)にあるSkyrimEditor.iniをテキストで開いて編集します。

[Archive]
SArchiveList=
SResourceArchiveList=
の最後尾に, Dawnguard.bsaというふうに追加する。
例:
SArchiveList=Skyrim - Textures.bsa, Skyrim - Meshes.bsa, Skyrim - Animations.bsa, Skyrim - Voices.bsa, Skyrim - Interface.bsa, Skyrim - Misc.bsa, Skyrim - Sounds.bsa, Skyrim - VoicesExtra.bsa,  Skyrim - Shaders.bsa, Update.bsa, Dawnguard.bsa, HearthFires.bsa

フィルターのワイルドカード

CKのフィルターはワイルドカード(ワイルドカード=*の部分がなんであれ一致します)が使えます。
たとえば、encbanditは通常のエンカウントする山賊ですが、山賊の両手持ちだけ抽出したい場合、
encbandit*2hと入力します。


プラグインを読み込むときの最初のエラーをスキップする設定にする

スカイリムのルートフォルダ(TESV.exeがあるところ)にあるSkyrimEditor.iniをテキストで開いて編集します。
[MESSAGES]
bBlockMessageBoxes=1
※ただし全部のエラーをスキップしてしまうのでエラーがよくわからないデメリットもあります。スカイリムフォルダのEditorWarnings.txtにエラーが記載されてます。

.espファイルで編集された項目一覧の表示(編集した項目の解除)

File -> Data... Plugin/Master Filesの中から編集項目を一覧したいプラグインを選択
赤枠Details... ボタンを押すと一覧が表示されます。
この項目の中で編集をとりやめたい(Ignored)場合はその項目を選んでDeleteキー
なにやらメッセージが出ますがはいを選択。
編集をとりやめた項目は青枠のIマークが出ます。
変更を適用するにはこのあと、そのespファイルをCKで読み込みセーブが必要です。

espファイルをマスター指定するには

オリジナルのCreation Kitではespのマスター指定をサポートしてません。
TES5Edit(SSEEdit)でマスター指定してください。
ネット検索で「espファイルをマスター指定」するとWrye Bashでespファイルをマスター指定する方法も検索結果にでてきますが、2023/8時点でダウンロードできるWrye Bashは仕様変更でespファイルをマスター指定できなくなっています。

espファイルをマスター指定したパッチファイルがCreation Kitで保存できない場合の対処

非公式修正パッチを導入していない、オリジナルのCreation Kitではセーブ時にespのマスター指定が解除される仕様になっています。
CKの非公式修正パッチのSSE CreationKit Fixes(SSE Creation Kitのバージョンが1.5 あるいは 1.6の場合はSSE Creation Kit Fixes Updateも必要)を導入することでパッチの保存が可能となります。


マスター指定の解除

{File -> Data...]で該当のespファイルを選択して右上ParentMastersの欄で解除したい.esp/.esmをCtrl+Deleteで削除します。
あとは該当のespをアクティブにして読み込みし保存します。
espファイルのマスター指定の解除については非公式パッチなしの環境でも実行可能です。

espファイルのバックアップ

スカイリムのフォルダ\Backupにespのバックアップがあります。
保存時の時にここにも保存しているようです。

レンダーウィンドウでのキー操作一覧


プレビューウィンドウの操作方法

視点の回転:Shift押しながらマウス移動
視点の上下左右移動:スペースキー押しながらマウス移動 or マウス中クリックしながらドラッグ
Mキーでマーカーのオン/オフ
クリックでオブジェクトの選択
ダブルクリックでEdit出す

プレビュー画面でモデルデータを確認する。

装備やエフェクトを作った時にCKに登録したとき、espを一旦読み込み直したりファイル名を変えないとプレビューのモデルデータが更新されません。
必ずskyrim.esm等のプラグインを読み込み、ActorでもActivatorでもなんでも右クリックでPreviewを開いておきます。
ドラッグアンドドロップで放り込むだけです。
必ずData下のフォルダにいれることと、ドラッグアンドドロップしたデータは別のメッシュデータ開いても残るようなので、気になるときはプレビューを一回閉じてください。

スクリプトのプロパティの解除

スクリプトに付いたプロパティが不必要になった場合は、
スクリプトの行を消してから、一旦プロパティ一覧を開いて、OK押さない限りは消えません。

長さの単位

CK上での長さの単位は2つあります。
ひとつはフィート(ft,feet,単数形foot,フット)
1ft=30.48 cm
だいたい30cm、そのままの意味で(靴履いた状態で)一足分の長さと思うと覚えやすいでしょう。

魔法のRange,Areaなどがフィート単位です。

ふたつめはUnitです。
1Unit=目安1.4cmぐらいです。
参考:CK Wiki Unit
人間は種族や男女の身長差に関わらずすべて、128Unitです。
Unitはボーンのボックスサイズで規定されているからです。

GetDisatance(),GetHeight(), GetWidth(), GetLength()などがUnit単位です。

Condition

Spell,Magic Effect, PackageやPerk等の様々なところにでてくるConditionとは条件文です。
この条件にあったら効果が発動します。


Conditionのチェックは一回たびに発動し、その負荷はスクリプトの関数と同等の重さです。

ANDとORについて

ANDとORは常にその行のあとにしか影響しません。

A AND
B OR

ならA AND B、つまりAとBが両方真なら効果が発動します。

ORも同じくその次にしか影響しないので
A OR
B AND

ならA OR B、つまりAかBのどちらかが真なら効果が発動します。

2行ならわかりやすいですが複数行だとちょっとややこしくなりますが、
AND/ORは直後にしか影響を与えないことを考えると分かりやすいです。


画像のような場合
Gauntlets=手 AND
Helmet=頭 OR
Boots=足 AND
Cuirass=胴 AND

手AND(頭OR足)AND胴になります。
手と胴の装備は必須、頭と足の装備はどちらか一つです。


(手 AND 頭) OR (足 AND 胴)
手と頭が揃ってるか、もしくは足と胴が揃ってる場合に発動します。
ORは直後にしか影響を与えないので、手と頭という()でひとまとめにできません。
その場合は分解して、
(手 OR 足) & (頭 OR 足) &(手 OR 胴) & (頭 OR 胴)
にすればいいのです。

手 OR
足 AND
頭 OR
足 AND
手 OR
胴 AND
頭 OR
胴 AND

処理する数が倍になってしまうので、あんまり複雑な条件はおすすめしません。
スクリプトとして違ってエラーを吐き出さなくてわかりにくいのも難点で、負荷はしっかりあるので、
基本的には簡潔な条件にしましょう。

クラフトカテゴリの追加の仕方

メニューバーのGameplay->Setting...でFilterにkeywordと入力。
sGenericCraftKeywordName08か~09のString Valueにカテゴリの表示名を書きます。
ObjectWindowのKeywordに新しくキーワードを作り、適当な名前をつける。(例"ArmorMaterialMOD")
Gameplay->Default Objects...を開く。
Type FilterをKeywordsにして、Keyword - Generic Craftable Keyword 08 か 09に新しく追加したキーワードを選択。
あとは任意のWeaponやArmor等にKeywordsをAddしてください。

※DLCで01~07, 10は使ってます。被った場合はその他カテゴリに移動します。残り二枠しかないのでmodder間での協議の必要性あり?



戦闘の割り込み

戦闘時にNPCに何かをさせようとすると中々うまく行きません。
戦闘中のAIは優先度の高い順から処理するので、事あるごとに上書きや中断されます。
たとえば、フォロワーが回復呪文使用中に殴られたりすると中断されてしまいます。
暗黙のAI上の割り込みは変更できないのと、優先度が分かりにくいのが厄介です。

これらの対処法は「素早く」「確実に」 処理を終わらせることです。

素早く処理する

まずは動作そのものをなるべく速くします。
新規で魔法を作りCasting Timeを短縮したり、早く終わるモーションを使うようにしたりなどです。

スクリプトの方面では処理に時間のかかる関数を使わないことです(Find系の関数やIsInMenu()など)。
同Wiki内のスクリプト最適化Tipsを参考に。

確実に処理する

Procedureやシーンなどの処理は画面と同期する必要があるため、Waitを挟むことで安定する場合があります。

事例によって違ってくるので詳しくは書きませんが、ifやconditionを使っての条件制約や、中断された場合の処理を加えることで、確実に処理できるようにします。

そもそも、中断させられるのを防ぐのも有効です。
処理中にStaggerの耐性を持たせたり、SetGhostで当たり判定なくしたりなど。

同Wiki内の関数の処理についても参考にどうぞ。

魔法を使えないNPC(動物など)に魔法を使わせる

1.まず使わせたい魔法のAbility版を作る

そのNPC専用に新規またはコピーしてSpellを作成し、SpellのTypeをAbilityにしてます。

2.Packageを作ってUseMagicを使う

Packageの作り方はCharacter->Package->UseMagicをDuplicateします。
コピーしたものは名前を適当に変えて、いいえ(IDを新しくするか)→はい(レファレンスを引き継ぐか)。

コピーしたものを開いて右上Package TypeをPackage TemplateからPackageに変えます。
Public Package Data内のNameがSPELLTypeがTargetselectorの項目を選んで、
右側、SelectedPackageData内のSpell Range Targetボタンを押します。
出てきたPackageTarget欄のAnyObjectのObject IDから作ったAbilityを選びます。
そのほかの設定は作った魔法によるのでいろいろ試してください。

3.Packageを適用する

2で作ったPackageを使わせたいNPCに適用させます。

Character->Questから新規でQuestを作ります。
Quest Aliasタブで新規Aliasを作ります。
新規で作ったAliasを開き、Alias Package Data欄内で右クリックしてAddします。
2で作ったPackageを選択します。

Script側で作ったAlias.ForceRefTo(NPC)でAliasを魔法を使わせたいNPCにかぶせてOnPacakageEnd等のEventまたはWaitでその後作ったAlias.Clear(NPC)でAliasから開放します。

これでバニラでAbilityを使えるアクターはすべてその魔法を使えるようになります。
犬や山羊や蟹などが魔法を使えるようになります。Abilityが使えない種族もいるので注意。


WeatherのDirectional Ambientの方向


大雑把に方角で書きましたが、実際には面の向きと適用される色はノーマルマップで判別されます。

X-:西側の色
X+:南側の色
Y+:北側の色
Y-:東側の色

Z+:上(天井など)
Z-:下(地面)

例:日が昇るのは東で、太陽の当たる面の環境光なら、X-(太陽光の色も含まれる点に注意)

ConditionのGetCurrentDeliveryType

魔法のDeliveryType判定です。
0:Self
1:Contact
2:Aimed
3:TargetActor
4:TagetLocation

装備スロットの割り当て

Armorには装備箇所を決めるスロットがあり、それをどれに割り当てるかはArmorのBiped Objectの項目で変更可能です。

30 - 頭部
31 - 髪
32 - 胴体
33 - 両手
34 - 前腕(ひじから手首まで)
35 - 首飾り
36 - 指輪
37 - 足
38 - ふくらはぎ
39 - 盾
40 - 尻尾
41 - 長髪
42 - 頭飾り
43 - 耳
50 - 切断された頭部
51 - 切断部分
61 - FX01(ドラゴンアスペクト)

NEXUSフォーラムで提案されている未使用Slotの割り当て
(これはnif skopeのBSDismemberSkinInstanceのPartitionsリストにもとづいてます)

44 - 顔、口
45 - 首
46 - 胸、上着
47 - 背中
48 - その他1
49 - 腰1、上着
52 - 腰2、下着
53 - 脚1、上着、右脚
54 - 脚2、肌着、左脚
55 - 顔、装飾品
56 - 胸2、下着
57 - 肩
58 - 腕2、肌着、左腕
59 - 腕1、上着、右腕
60 - その他2



マップに設置したアクターのPersistentフラグについて(アクター消滅バグについて)

フォロワーModとかを作成する際にアクターを設置した後にespを保存した後、
xEditでセルに設置したアクターを見ると大抵の場合はTemporaryというツリーの下に
設置したアクターのレコードが作成されています。

これは設置したオブジェクト(アクター)にRecord FlagsのPersistentフラグが設定されてないためであり
Persistentフラグが設定されている場合はPersistentという名前のツリーの下にレコードが表示されるようになっています。
(TemporaryのアクターのRecord FlagsにてPersistentを設定するとPersistentツリーに移動する)

基本的にPersistent(永続的)フラグがついているアクターの場合はゲーム開始時の地点でアクター情報が生成され
メモリに情報がキープされるようになり、同一セルに居ない場合でもメモリに保持されたままとなります。
逆にPersistentフラグがついていないアクターの場合はプレイヤーがそのアクターの下に行って
初めてアクター情報が生成されメモリに情報がキープされます。
滞在しているセルから離れたりそのセルに入る前のセーブをロードしたりすると監視から外れてメモリ上から情報をアンロードする処理がされます。

一見、Persistentフラグを付けない方がパフォーマンスに優れているように思えますが
このアンロード処理について時折、アクターの存在そのものを一時的に消滅させてしまうという、
かなり悪質な(しかも悪質な割に知名度が低いため対処法が全然載ってない)バグが存在します。
(プレイ途中でのセーブのロード時に発生しやすくアクターが設置された内部セルに入った後に内部セルに入る前のセーブ、特に設置したアクターと初めて遭遇する前のセーブをロードした場合は高確率で発生します)

このアンロードで消滅というのはdisable状態による非表示状態になるというものではなく、
本当にアクターの存在そのものがゲーム上から消滅するため
コンソールからのpridでの指定も不可能となってしまいます。(pridで指定しても存在しないと表示される)
幸いな事にこのバグは一時的なものであるためゲームを再起動するか
該当するアクターが一緒にいる状態でセーブしたデータをロードすれば直りますが
それまでは該当のアクターはゲーム内から消滅したままとなります。

この現象はPersistentフラグを設定しているアクターならば発生しません。
もし、フォロワーMod等でユニークなアクターを設置した場合はPersistentフラグを付ける事をオススメします。
逆にフォロワーでもなくクエストに一切関係無いアクターの場合は
存在が一時的に消滅してもゲームに支障は無いはずですのでPersistentフラグを付けなくても問題ありません。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

目安箱バナー