忍者ブログ

方向音痴のSkyrim

PCゲーム「Skyrim」の雑多なCKいじり日記

Procedure【Shout】

Shout

NPCにシャウトを使わせます。該当のシャウトをNPCが覚えていなくても構いません。クールタイムも関係ありません。シャウトを使い終わるとProcedure終了です。

パラメータ
  • Location: シャウトを使う場所。ここまで移動してから使います。
  • Shout: 使うシャウト
  • Target: シャウトのターゲット。シャウトの内容に応じて自分自身(Self)を指定することもよくあります。
  • HoldWhenBlocked: 射線上に他NPCがいる間は、シャウトを使わない。
  • JustHeadtrack: Trueだと、頭だけをターゲットに向ける。Falseだと体ごとターゲットに向く。




シャウトを使わせる専用のProcedureです。シャウトを放ち終わったら終了します。
Procedure開始直後から、"JustHeadtrack"の設定にしたがってターゲットに体を向けたまま、頭を向けたまま、Locationに指定された場所へ移動を始めます。場合によっては不自然な動きにもなるので、目的地までは「Procedure:Travel」などの移動系Procedureを使用するのがお勧めです。
DeliveryがSelfのシャウトを使わせるときは、Terget:Self、すなわち自分に向けて顔なり体をむけようとします。JustHeadtrackがFalseだと体を向ける方向が定まらず、その場でくるくる回ることがあります。このときJustHeadtrackをTrueにすると、くるくる回りが改善されることが多いです。

・シャウトの最適化
Procedure:UseMagic同様に、シャウトも用途に応じたDeliveryやTargetの設定など、最適化が必要になる場合があります。

NPCはシャウトを第3段階のフル充填でしか放つことができないようです。第1段階、第2段階を使わせたい場合は、第3段階に第1段階の効果、もしくは第2段階の効果を持ったシャウトを作るなど、NPC専用に編集したシャウトを用意する必要があります。
なお、このようにして用意するシャウトのWordは、ダミーとして使われているWord「WordDragonfire01~03」などを使用し、プレイヤー用シャウトに用意されているWordは使用しないでください(もしくはWord設定無しでもいけるかも)。ゲームでプレイヤーが言葉の壁から言葉を習得する際、不具合が起きます(プレイヤーが習得するシャウトの各段階とWordは1対1関係の必要があるためです)。

定かではありませんが、第1段階までしか登録されていないシャウトでも、システム上は第3段階で放っているとみなされているようです。シャウト自体は第1段階のものが発動します。
(未実装シャウト「皇帝の声」第1段階しかないものを、第1段階のみ使用可能な状態にして確認。シャウト音声は特定のボイスタイプで第1段階で放った場合のみ再生されますが、NPCに使わせたところ再生されませんでした。プレイヤーだと「Peace!」と叫びます。ざざっと調べただけのことなので、間違っているかもしれません)


前へ | 次へ
PR

コメント

1. シャウトと弓の謎の関係性

Procedureの詳細な解説、大変参考になりました!
まだまだ自分も扱いが分からない部分が多いので、ブログの貴重な情報にいつも助けられております。

ShoutやUseWeaponに関して、UNIさんにいくつかご質問させていただきたい事があるのですが…

最近、テストプレイの最中にある問題に直面してしまいました。シャウトをActorのSpell欄にAddして自然に使わせるのではなく、AIPackageのProcedure:Shoutを用いてCombatTargetに対し、任意の条件の時にシャウトを使わせようと思い、試してみたところ…特定の「発射体の種類」のシャウトは、何故か思うように上手く対象に当てられないようでした。今まで自作シャウトなどを作り、直接フォロワーにAddしていて全く気付かなかったのですが、カスタムAIを製作するようになってから、使用しているはずなのに対象に当たっていないぞ?!という問題点が浮上しました。こういったことは、UNIさんの環境でも今までに起こったことはありますでしょうか?(単に私のミスかもしれません…)

問題の詳細ですが、Projectile(射弾)が「Missile」の場合は、Procedure:Shoutで指定した対象に正確に当てられるのですが、Projectileが「Cone」や「Flame」になっていると、ほとんど当たり判定が出ませんでした…(汗) 製作当初は自分のProcedureTreeや自作のシャウトの設定の方に問題があると思ったのですが、確認のためにCone型の「揺るぎ無き力」を製作したPackageでCombatTargetへ撃たせてみたところ、何もない空中の方角へと放たれている無情な光景が繰り返されていました。これでは当たらないわけだ…と確信しました(^^;)

ハイフロスガーの中庭でグレイビアード達がPackageを使って練習していたので、てっきり狙って当てることが可能だと思っていたのですが…。何が原因かは全く分からないのですが、シャウトの種類によってはProcedure:Shoutでも使えないものがあるのだろうか?と思い、ご相談させていただきました。「Missile」でも妥協できるのですが、それだと敵一体にしか当てられず、任意のタイミングで複数の対象にシャウトを当てたい場合に、不可能になってしまうため、現在、解決策を探しているところです。

それからもう一つ、不思議な現象が起こりました。
NPCが弓を装備している時には、何故かProcedure:Shoutが出しにくくなってしまうようです。弓を使用するフォロワーに、こちらもまた任意のタイミングでシャウトも行わせたかったのですが…上述のようなProjectileが「Missile」型のシャウトであれば、本来ならば当てられるはずなのに、ターゲットとの距離間によってはシャウトを出すことができず、カクカクと苦しそうな動き方をしていました。

根拠は無いのですが、NPCのAIの攻撃射程というのは装備している武器によって変わってくるのかもしれません。そして、シャウトは装備している武器の攻撃射程に巻き込まれてしまう可能性があります。今回の場合だと、シャウトまでもが弓の射程になってしまい、「シャウトを放つための最小距離」と「弓を放つための最小距離」の2つの条件を満たしている時にしか、キャストできなくなったのでは?と推測しています。リアの弓による攻撃的回復のヒーラー動作を行わせた時の不具合や、ヒーラーの硬直とも関連がありそうな問題です。

最近、シャウトヒーラーを作ってみたのですが、硬直率が低く、中々安定していました。
硬直率では、「弓ヒーラー>>>呪文ヒーラー>シャウトヒーラー>UNIさんのTempleteヒーラー」という感じです。おそらくはモーションと相関関係があり、割り込まれる危険性が低いものほど安定していそうです。

弓:①装備する→②矢をつがえる→③弓を引き絞る→④射程になる→⑤放つ
呪文:①装備する→②ためる→③射程になる→④放つ
シャウト:①装備する→②射程になる→③放つ

先になるかもしれませんが、またリアの製作を再開した際には、考察を記事にまとめようと思います。ネクサスには「グランドヒーリングヒーラー」、「スクリプトヒーラー」に加え、「隠し杖ヒーラー」なども出てきて、新技術の発展が目覚ましいですよね!「VanillaFollowersAI」のセラーナさんの「アンデットヒーラー」のアイディアも超斬新でした!!(死者を酷使するセラーナさんのイメージが大確変!)

すみません、質問というより…話が脱線してしまい、情報共有のような文面になってしまいました…(^o^;)
UNIさんのこれまでの経験や今後の製作を進めていく中で、同様の問題に直面した時に教えていただけたなら、嬉しいです。


追伸
余談になりますが、「Aqcuire」に再びチャレンジしております!私の作成したPackageは詰めが甘いのか、生きているNPCからは物を盗む動作ができず、その辺に転がっている物、コンテナや亡き骸からしか収集できないようです…(涙) ヒーラーに問題のある「同胞団」の製作では、ポーションを大量に持ち運ぶ「補給兵」を一人用意して、その人からAcquire(盗む!)でポーション切れを防ぐ仕組みにしたり、フォロワー同士で盗ませ合い、酒などを物々交換させたいと思っていたのですが、やはり難しいですね…!!

Re:シャウトと弓の謎の関係性

いえいえ、こちらも色々教えていただいたり気づかせていただけたり、情報共有とても嬉しいです。自分で思いつかないことは試しようもないので、別視点からのアプローチは本当にありがたいです。

シャウトのProjectileですが、これはあまり意識したことがありませんでした。調べてみたところ、ちょうど氷晶シャウトがDelivery:Aimed、ConeのProjectileを持っているようですね。
以前TempleteのShoutを使い、氷晶をプレイヤーに向けて使う設定にして遊んでました。その時のデータがSLFollowersのファイルに残ってます。「SL00SLFQTestPackage01」というのがそれです。
このPackageを使って再実験したところ、射線上のNPCをすべて巻き込めました。射程圏内であればプレイヤーの背後にいるNPCも巻き込まれます。障害物の後ろに隠れれば当たりません。
下の画像は、NPCドヴァキンがプレイヤーに向けて2回氷晶を使った直後の様子です。一回目に、プレイヤーの手前にいたジェナッサ、エリク、ハスキー犬が氷晶の巻き添えに。プレイヤーは柱に隠れて回避。中央のベンチと左側の椅子でくつろいでいたファルカスとアシスはぎりぎり効果範囲には入っていない様子でしたが、2回目、プレイヤーが二人を巻き込めそうな位置に移動したためともども氷晶で固められ、先に固められていた3名は新しい氷晶が当たって氷が割れている状態(体の霜が消えている)になっています。
http://file.skyrimeasy.blog-rpg.com/ScreenShot2923.jpg

ということで、シャウトのProjectileが直接なにかProcedure:Shoutに悪さをしていることはないかもしれません。
ただ、他のNPCを巻き込みつつターゲットにシャウトや魔法を放つ場合は、Delivery: Aimedでないとうまくいかないようです。Delivery:Aimedの魔法は、ProcedureのTargetに指定した対象の方向へ単に魔法を放つ、実際何に当たるかはProjectileまかせ、Delivery:TargetActorだとTargetに指定されたNPCに魔法の効果を直接適用する、Projectileの当たり判定は恐らく使われず(少なくともImpactDataは描画されない)、ゆえに間に障害物があっても関係なし、という違いがあるようです。

そして指定するTargetをCombatTargetにした場合ですが、ファイアボルトをUseMagicで使うよう設定していた時、時々術者が向いている方向と別の、明後日の方向に火の玉が飛んでいく現象が見られました。敵が遠くにいるときだったので、こちらが予想していたのとはまったく別の敵をCombatTargetにとっていたのかもしれませんが、結局理由は分かりません。

弓持ちのNPCにProcedure:Shoutでプレイヤー用の「揺ぎ無き力」とファイアボルトをシャウトに改造しただけのもの、2つをCombatTargetに使わせてみました。両方ともDeliveryがAimedということもあるのですが、敵が遠くにいても目と鼻の先にいても、特に問題なくシャウトできるようです。シャウトがうまく出せないとき、でそうででないクシャミみたいな動きになりますよね(^-^; あの動きは少なくともしなかったです。でも使わせるシャウトの設定によっては、もしかしたら結果が変わるかもしれません。

また同じ魔法やシャウトでも、プレイヤーが使用するのとNPCが使用するのとでは挙動が異なるものがあります。具体例は挙げにくいのですが、複数のMagicEffectを持つSPELLの場合、NPCが魔法を使うと、2番目以降の効果がMagicEffectの設定から期待されるようには得られないことがあります。一例として、2番目以降のMgicEffectがエリアを設定したDelivery:Selfの範囲魔法だと、本来なら術者の周りにいる対象に魔法の効果が出るはずですが、なぜか術者本人にだけ効果が出る、とかです。
魔法も魔法でなかなか一筋縄ではいかないところがあります。

うまくいかない時、Procedureの設定自体に問題があるのか、ProcedureTreeがいけないのか、Conditionの設定が間違ってるのか、使わせようとしていた魔法のDeliveryとProcedureのTargetの設定に齟齬があるのか、地形が急斜面過ぎるとよくないのか、CombatOverrideを使ったときに見られるAIやモーションの混乱やスタックが起きているだけなのか、様々な原因が考えられる上にそれらが複雑に絡み合っている場合もあるので、原因を見つけるのも焦点を絞った修正をするというのも、なかなか難しいです。
いったん諦めて代替案を試しているときに、ふっと解決法などが見えてくることもたま~にあるのですが、本当にたまにです;


Acquire、生きているNPC相手には取れないみたいですね。これを使ったら、NPCにスリをさせられるかと期待していたのですが残念。
例外的に、膝をついている状態のNPC相手であれば、モノをとることができます。しかも取られたほうはちゃんと気づいて、取ったNPCに敵対します。バグだとは思いますが、ちょっと面白い現象です。
Game Settingsに"fAiAcquire..."で始まる設定値がいくつかあるので、それをいじったらスったり、殺して奪い取ろうとしたりできるのかも。少し値を変えてみたのですがそもそも基準値が分からず、行動が変化した様子も見られなくて、設定値自体が生きてるのか死んでるのかすらよく分かりませんでした。でもスリができたら、すごく楽しそうですよね!

コメント

2. 製作時の様々な注意点と情報共有

ご返信、ありがとうございます!!多岐にわたる製作のアドバイスに誠に感謝しております!
自分でブログを始めて以来、最初は単なる製作記録を目的としていましたが…徐々にスカイリムのAIに興味を持っている方々とも、少し情報のやり取りがしてみたいという密かな期待が出てきました。しかし、テーマが「同胞団」というマニア向けであるためか、内容がイマイチなのか…大分閑散としています(^u^;) ですので、こうしてAIについてのお話ができてとても嬉しいです。

>TempleteのShoutを使い、氷晶をプレイヤーに向けて使う
スクリーンショットでお馴染みのメンバーが固められている光景が!!こちらでも、たまにドヴァキンさんのを喰らっています(氷晶)UNIさんはダークエルフの中では、ジェナッサさんが相棒ですか?…気付けば私はアシスとは、もう5ヶ月くらい解雇せずに旅を続けています。
「SL00SLFQTestPackage01」を試してみました。UNIさんの考察と再確認から、やはりProjectileより別の可能性が大きいと感じました。グレイビアードもドヴァキンさんも、よく見るとTargetが「SingleRef」という単一の対象を狙っていることが共通しているみたいですね。自分のPackageではFindで対象を探したり、CombatTargetにしていることが、狙いが定まらなかった原因とも考えましたが、SLFのファリック君がFindで探した対象にも正確に火炎を当てていたので、それも違うのだなと…。
では、何が違いを生み出したのか?と、さらに考えを巡らせていると、以前にアシスの「二刀流化シャウト」の製作に失敗した時のことを思い出しました。大きな違いは、ファリック君が弓→呪文に切り替える時は、弓が「両手持ち枠」なので装備から完全に外れるのに対し、シャウトは「声枠」として現在装備している武器と同時に装備できてしまう違いがあることに、気がつきました。シャウトはActorに直接持たせた場合は、呪文と異なり、武器の装備を変える隙が無くキャストできるメリットがありましたが…弓を装備している時にOverridePackageでCombatTargetに向けて使わせるのは、どうもダメなようです。(UNIさんは成功していることから、おそらく私のProcedureの構成とShoutのConditionsの問題かと、汗)
UseMagicとShoutの大きな違いは、「WeaponsUnequiped」と「WeaponDrawn」で、硬直を調整することができない点だと感じています。

SLFのドヴァキン男さんは、弓を使いながらシャウトもでき、硬直もしないという…素晴らしい戦い方ができる数少ない戦士ですよね。でも弓だけを持っている時には、いつもよりはシャウトを使う率が低くなる印象があります。なので、「弓を使う一連の動作(モーション)が完全に終わるまでは、シャウトを使うことができない」のが主な原因ではないかとみています。シャウトもキャストする時に特有の構え(モーション)になる必要があるようなので、「弓を片手に持っている状態が、一連の動作に含まれるのかどうか」が微妙に分からないのですが、重要な疑問点です。

>TargetをCombatTargetにした場合―――明後日の方向に火の玉が飛んでいく現象が見られました。
まさに、この現象が起きていました!(笑)CombatTargetもFindのようにListに敵のみの情報を集めたものの一種だと軽く考えていたのですが…敵対して目の前にいる相手でも、弱って膝を着いたときに近くに別の敵がいた場合は、すぐにトドメを刺さずに別の敵の元へ行きますし…。実際は、Findの中でもかなり複雑な条件設定があり、フォロワーが方向を定めて魔法をキャストする速度よりも、はるかに早い処理速度で最適な対象が更新されていることが、狙いがブレてしまう原因なのかな?などと、勝手に予想しています。

少し強引な方法ですが、複数の敵にシャウトが当てるという目的のために…キャストとほぼ同時に起爆するExplosionのEnchantmentにMagicEffectを搭載することで、範囲シャウトを模し、任意の条件の時にCombatTargetに当てることができました。シャウトの場合は、キャラの口元で見えないExplosionが起爆するイメージです。良くない点は、正面だけでなくCasterの背面の対象にもあたってしまう点です。

>2番目以降のMagicEffectがエリアを設定した―――なぜか術者本人にだけ効果が出る
対プレイヤー用のNPC専用魔法「警戒(スリ防止効果)」を作った時に、プレイヤーが隠密したまま対象NPCに近づくと、SelfAreaの対象にスリの確率を下げる効果とVisualEffectが出るように設定したはずが、何故かNPC自身のスリスキルが低下していました…。この問題は、術者自身にAreaではない何らかの効果をもたらす別のSelf系のEffectを、Areaで与えたい効果と同梱することで、術者には非Areaの効果が発揮され、Areaの方が他者に影響が届くようになりました。この時は、作った自分自身も「何が起きているんだ??」という感じでしたが、アドバイスのおかげで納得できました!

>例外的に、膝をついている状態のNPC相手であれば、モノをとることができます。
以前に読んだUNIさんの過去のプレイ日記の中に、セラーナさんの服を掃除人が奪って着ていたという事があったので、高度なAcquireのProcedureTreeを構築できれば盗みが可能なのだと思っていたのですが、あれはかなり“例外”な事例だったのですね…!!試してみると…本当に盗みました!!(感動)
私の環境では、フォロワーが膝を着いてから、立ち上がる瞬間を狙って盗みを働いていました。膝を着いている時には、プレイヤーがActorをアクチベートできない状況になっていて、NPCも同様にその対象に対して盗めず、ウロウロと機会をうかがっていました。Actorが膝を着くことで、“仮死状態”になると「コンテナとしての存在と、Actorとしての存在の中間」に一瞬だけなるバグなのでしょうか?…とても不思議です。“麻痺”や“気絶”も試したのですが、“仮死”の時しか盗みませんでした。
同胞団の場合はCompanionsFactionのおかげで、全員がAllyな関係なので、NPC同士が盗み合っても皮肉を言うだけで、敵対はしませんでした。すなわち、アイテムのやり取りは可能ということに!!(嬉)でももう少し手荒な方法ではなく、相手から盗むことができたら…ベストですよね(汗)
UNIさんとの議論で「NPCのスリ能力」についても少し理解を深められました!(“仮死”と“アクチベート”、それから“GameSetting”が鍵ですね!)

Re:製作時の様々な注意点と情報共有

ダークエルフの相棒と言えば、ずいぶん長い間セロさんを連れまわしてました。強いしセリフ多いし、歴戦の戦士っぽいところがいいですよね。ジェナッサさんはもしろ、スカイリムではじめて会ったダンマー(初見の感想:ファンタジーなのに宇宙人がいる…)であり、はじめて雇った仲間であり、死の芸術家発言を聞いてこの世界の住人すべてこれ系の人だったらどうしようと戸惑い、暗がりで後ろを振り向いてドラウグルより顔怖いと震え上がった相手でもありと、思い出に事欠かない相手です(^^;

ドヴァキン男が戦闘中かたまらないのは、多分CombatOverrideを使用してないからだと思います。CombatOverrideの最大の欠点はやはりProcedureによってNPCの動きが止まってしまうことなので、SLFollwersの何人かはあえてカスタムの戦闘AIを設定せずこの問題が発生しないようにしています。
ちなみにドヴァキン男はCombatStyleで弓の優先度を結構下げてるんですが、弓を持っているときは確かにシャウトをする確率が下がっている気がします。両手武器を持っているときも魔法を使いにくくなりますし、確かに持っている武器に何がしかの影響を受けているのかもしれませんね。弓もシャウトも同じ遠距離攻撃手段なので、その辺りの判断要素も関係していそうな気がします。む、難しいです(´Д`;)

>術者自身にAreaではない何らかの効果をもたらす別のSelf系のEffectを、Areaで与えたい効果と同梱することで...
ありがとうございます! 魔法の作り方に関係していたみたいですね。NPCにArea系魔法は難しいのかと諦めかけてました。もうちょっと調べてみます。

それにしてもAIを自作して思い通りに動かそうとするのは難しいですね。Scriptで実現したほうが楽なんじゃ……、と思うこともしばしばです。それでもAI作りは楽しいので試行錯誤はやめられないのですが。

Author

UNI
Skyrimで遊ぶのも、CKで改造するのも好きなファンタジー好きです。
戦闘苦手で難易度は基本EASY、慣れてもNORMAL程度。 アンデッド恐怖症なので、ノルド遺跡探索が辛い……。

ブログ内検索

最新コメント

[05/16 NONAME]
[05/14 感染者の巡回者]
[05/08 NONAME]
[05/06 らいじゅ]
[04/30 NONAME]