【AI Package】
AI Packageの新規作成法は以下の2通りあります。
- ActorデータのAI Package List内で右クリックして「New」
- Object Windowより、Character > Packagesを選択。右欄にずらっと出たPakcageの一覧の上で右クリックして「New」
AI Packageのデータ自体はActorデータから独立して存在しています。Object WindowのCharacter > Packages以下に全てのAI Packageがあります。新規作成したPackageはここに加わえられた上で、ActorデータのAI Package Listから参照されることになります。
【Packageタブ】
新規作成で上図のようなAI Packageウィンドウが開きます。最初は「Package」タブが選択されています。
- ID:AI Packageの名前であるEditor IDを決めます。自分にとって分かりやすく、他データのEditor IDと被らないような名前がいいでしょう。例えば「RiverwoodFaendalSandboxHome20x4」など。
- Package Template:AIのテンプレートを選びます。例えば食事をしてほしければ「Eat」、リラックスして過ごしてほしければ「Sandbox」など。各種テンプレートの説明は後述。ここが選べない場合は、ウィンドウ右上、Package Typeの項目に"Package"が選択されているか確認してください。
- Public Package Data:Package Templateを設定するとテンプレートが読み込まれ、AIの動作に必要な各種データが並びます。どこで行動するか、誰を監視するかなどテンプレートによって設定内容は様々です。こちらも各テンプレートの説明で詳しく見ていきます。
- Selected Package Data:左のPublic Package Dataの項目を選択し、ここで設定値を入力します。データのTypeによって設定方法が異なるので、こちらも詳しくは後述。
【Flags】タブ CKwiki:
Package Flags
次に「Flags」タブ。このAI Packageが実行中の時の各種設定。
初期設定は上のようになっています。特に必要なければ、初期設定のままでもさほど問題ありません。
・Misc Flags
Must Complete:「Travel」のような、行動終了が存在するAI Packageのみに有効と思われます。一度このAI Packageが動き出したら、行動終了するまで他のAI Packageに切り替わることはありません。スケジュールの時間が切り替わっても無視します。確実に行って欲しい行動の場合のみチェックを入れます。クエストがらみではよく使うかも。
Once Per Day:チェックを入れると1日1回だけPackageが動くらしいです。
Always Sneak:Package稼働中常に隠密します。ずっと中腰状態。
Allow Swimming:水泳を許可します。チェックを入れなかった場合、水場に足を踏み入れなくなるので、橋のない川を挟んでの移動に支障が出ることも。
Allow Idle Chatter:独り言を言うかどうか。店主の客引きの声や、あくびなどが主に該当します。
Ignore Combat:戦闘を無視してPackageを実行し続けます。特殊な設定なので、通常はまずチェックしません。
No Combat Alert:戦闘に入る前、「それ以上近づくと危ないぞ」などの脅し行動をとらなくなります。脅し行動をとれるNPCのみで有効と思われます。
Weapon Drawn:ずっと抜刀状態になります。
Weapons Unequiped:Packageを実行している間は、装備している武器を外します。
Wear Sleep Outfit:Actorデータで設定されたSleep Outfitを着ます。しかしスカイリムでは機能していません。
Maintain Speed at Goal:通常NPCは指定された目的地が近くなると、少し歩調を緩めます。このフラグにチェックを入れると、テンプレートや下のPreferred Speedで設定された歩調を目的地まで維持します。走っていたなら、目的地へ速度を緩めず突っ込む動作になるでしょう。
Preferred Speed:移動速度を固定します。最高速度は「Run」。プレイヤーの全速力に対応する速度(スプリント)までは設定できません。
Hellos to player:プレイヤーが一定距離まで近づくと、「なにか用か」「こんにちは」などのHello Topicを話すのを許可するかどうか。
Random Conversations:NPC同士のランダム会話を許可するかどうか。
Observe combat behavior:他人同士の戦闘を目撃すると、Packageを中断して観戦するのを許可するかどうか。
Greet corpse behavior:死体を見つけると、Packageを中断して死体を観察するのを許可するかどうか。
Reaction to player actions:プレイヤーの行動に対してのリアクションを許可するかどうか。走って行ってぶつかると「危ない!」とか。
Friendly fire comments:味方から誤爆を受けた時のセリフを言うかどうか。
Aggro Radius Behavior:ActorデータのAI DataタブにあるAggro Radiusの設定を使うかどうかのフラグらしいです。
World interactions:「AllowWorldInteractions」というCondition Functionの判定で使用。チェックを入れていると、「AllowWorldInteractions」が"True"になります。いまいちよく分かりませんが、他から一切の干渉を受けたくない時だけチェックをはずすといいでしょう。
・Door Flags
AI Package がスタートした時や、次のPackageへ切り替わる時(?)に、NPCが目的地としているセルへ通じる扉を開錠するフラグのようです。場合によっては、NPCが帰宅する前に家の鍵が自動的に開く不思議な事態が発生します。
AI Package側に開錠、施錠設定があればそちらを優先的に使ったほうがいいようです。この場合、扉の所有権を持つNPCのみが開錠・施錠の権限を持ちます。一般的に、扉にはそのセルに住むNPC達のFactionが所有者として設定されています。
【Conditions】タブ CKwiki:
Condition Functions
欄の中で右クリックしてConditionを追加していきます。
AI Packageを実行する条件を、曜日や時間帯以外でも細かく決めたいときはこちらも利用します。
【Schedule】タブ CKwiki:
Schedule Tab
AI Packageを実行する日時を指定できます。ゲームシステムは、ここの設定とConditionsのタブの条件から、AI Packageを実行するかどうか判定しています。
Day of week:曜日を決定。平日や週末も指定できます。
Month:実行する月、あるいは季節を指定できます。
Date:日にちを指定できます。
Hour:何時にPackageを開始するか。
Mins:何分にPackageを開始するか。
Duration:何時間Packageを実行するか。使える最小値、最大値が決まっているらしく、それ以外の値を入力しても無効になります。15分以上24時間以内に抑えるのが無難そうです(
48時間までは大丈夫でしたが、72時間はだめでした)。
すべて「Any」、Durationをゼロにすると、常時実行可能なスケジュールになります。
【Begin/End/Change】 CKwiki:
Begin/End/Change Tab
On Begin:AI Packageがはじまった時
On End:AI Packageが終了した時(行動終了が存在するAI Packageのみで有効)
On Change:AI Packageが別のAIに切り替わる直前(……だと思います)
それぞれのタイミングで、指定したIdle Animation、Topic、Scriptなどを実行することができます。
【Idles】
AI Packageを実行中、暇なときにやってほしいIdle Animationを登録します。この項目を使う時はまず「Use Specific Idels」にチェックを入れます。暗転していた下の欄が明るくなるので、右クリック>Newで一覧から好きなアニメーションを選んでダブルクリックで登録してください。
一覧に出てくる候補は、人間用のもクリーチャー用のもごっちゃに出てきます。全てがまともに使えるアニメーションとは限りません。
どのアニメーションがどんな動作をするのかはこちらも把握しきれていないので、各自でご確認ください。椅子に座っている時にだけ再生できるなど、アニメーションの実行条件が密かに設定されているものもあります。
【Public Package Data】
Public Package Dataで設定する各データの紹介です。
Type:Bool
見ての通り、Valueの所にチェックを入れると"True"、チェックなしだと"False"になります。
Type: Float、Int
小数点(Float)や整数(Int)を指定。負の値は使いません。
Type:Location
行動する範囲を決めます。
中心となるオブジェクトや人を指定し、「Radius」という長さの単位で中心から同心円状に範囲指定します。1 Radius = 1.428 cm らしいです。
目安として、128 ~ 512Radiusが一般的な行動範囲、1500~2000程度なら、宿屋規模の家全てを範囲に収めることができます。
また、セル全体を範囲に指定する際はRadiusは設定しません。
設定は、Typeの項目のすぐ下にあるボタンを押します。
このような小さいウィンドウが開きます。その時点で設定できない項目は暗転しています。
- At Package Location: 実例を見たことがないのでよく分かりません。
- Linked Reference: 自分のReferenceから別Referenceへのリンクが存在する時のみ有効。リンクにKeywordが設定されている場合は、それもあわせて設定してください。
- Near Editor Location: 自分の初期配置場所。
- Near Self: 現時点での自分自身の位置。
- Near Package StartLocation: そのAI Packageがスタートした時自分がいた位置。
- In Cell: 特定のセル全体を指定。Radiusは指定できません。
- Near Reference: 特定のオブジェクトやマーカーを指定。
- Packagedata Target: 同Package内で設定されているSingleRefを指定。基本は使わない。
- Loc Alias: クエストに関連付けられている時のみ指定可能。特殊な設定。
- Ref Alias: クエストに関連付けられている時のみ指定可能。特殊な設定。
- Interrupt Data: Override Packageのみで指定可能。特殊な設定。
Type: SingleRef
Locationと似ていますが、こちらは特定の対象を名指しします。
ボタンを押すと、こちらのウィンドウが開きます。
- Self: 自分自身
- Linked Reference: 自分のReferenceからリンクされている相手や物。
- Specific Reference: 配置されているオブジェクトやマーカーなどを直接指定。
Type: TargetSelector
SingleRefとほとんど同じ。ただしこちらは使う機会がかなり限られています。
SingleRefと同じウィンドウが開きます。説明していない項目だけ追記。
- Any Object:ObjectIDの項目で、BaseIDからオブジェクトやファクションなどを選択。もしくはObject Typeから「Food:食べ物全般」「Weapons: Melee: 近接武器全般」などオブジェクトを種別で指定可能。文字通りオブジェクトの型で見分けているらしく、Modで追加されたものも認識できます。
Type: Topic
候補から選ぶだけです。クエストがらみのAI Packageでしか使わない項目かも。
以上です。
次は汎用AI Packageについて。
前へ |
次へ