「CK Tips」の編集履歴(バックアップ)一覧に戻る

CK Tips - (2015/03/08 (日) 22:00:14) の編集履歴(バックアップ)


CK Tips



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

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

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

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

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

.espファイルで編集された項目一覧の表示


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

マスター指定の解除

File -> Data...で該当のespファイルを選択して右上ParentMastersの欄で解除したい.esp/.esmをCtrl+Deleteで削除します。
あとは該当の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でのORとAND


条件判定であるConditionでのORとANDの特殊な仕様について解説します。
condition設定時(一番右端にある)のAND又はORは常に次の行に対しての設定です。

そして、次がややこしいのですが、CK上のConditionのみORが優先されます。
例えば、A & B OR C & D と設定すると

一般的には→(A&B)OR(C&D) と認識しがちですが
CK上では →A&(B OR C)&D と認識されてしまいます。

つまり CKのConditionの場合、OR を使った部分が()でくくられてしまうと考えるといいと思います。
では、(A&B)OR(C&D)、としたい場合どうするかというとcondition上では()でくくるという事が出来ないので、

((A OR C) & (B OR C) & (A OR D) & (B OR D))

と設定すれば、(A&B)OR(C&D)と同等の意味になります。
わかりやすく説明すると、A&A → A これを利用して
ORの中に逃げ道を作ってあげるイメージで条件を作ると、自分で条件を作りやすいと思います。

これさえわかっていればかなり複雑な条件文も作れますので、是非頑張ってみてください。

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


メニューバーの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






目安箱バナー