忍者ブログ

方向音痴のSkyrim

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

変身魔法を作る03【人間形態Ability】

前回はAI PackageにPapyrus Fragmentをつけて無理矢理人間の姿に戻る方法を作ったのですが、今回はもっと簡単な方法「人間に戻るAbilityを習得させる」をやってみます。
CKいじりもMod作りもわりと孤独な作業になりがちなので、コメントでアドバイスや示唆をいただけるとほんと励みになります。ありがとうございます!


Abilityですが、なにか参考はないかなとまずはお手本を探してみました。
以下、アルドゥインとメインクエストに関する身も蓋もないネタバレになります。



こちらはアルドゥイン専用のAbility「AbAlduinInvulnerability」です。その名のとおり無敵になる能力。
Effectをのぞくと、条件が設定されていました。どうやら飛行を許可されているときのみ、無敵になれるようです。



Abilityに登録されているMagic Effectに、このような短いScriptがついています。
アルドゥインにとってドラゴンレンドがいかに恐ろしいシャウトか、改めて思い知らされるScriptです。

「飛行を許可」されると「OnEffectStart」のイベントが実行され、無敵になります。
そして「飛行を禁止」されると条件設定によってこのMagicEffectの効果がFalseになって終了し、「OnEffectFinish」のイベントが動いて無敵が解除されます。
コンスタントな効果を持つAbilityでも、ちゃんと始まりと終わりがあるのが分かります。



それならば、こんな感じのAbilityをつくってNPCに覚えさせたら、自動的に人間に戻れそうです。
条件設定は、「これから元に戻ろうとする種族でないとき」にします。これであればウェアウルフだろうがウェアベアだろうが何に変身していても、人間に戻るフラグを立てることができます。



実際の作業にはいります。
まず新規のMagicEffectを作成。既存の「WerewolfChangeFXEffect」をベースに、ちょっとだけ設定を変更しています。
ScriptはすべてRemoveし、Addによって新しい自作Scriptを追加。



※デバッグ用メッセージにSKSEの関数を使用しています

OnEffectStart
エフェクト開始イベント。状況としては、戦闘が始まってウェアウルフに変身した直後を想定してます。
"RegisterForSingleUpdate(10.0)"で、10秒後に一回だけアップデートの予約を行います。
OnEffectFinish
エフェクト終了イベント。特に使用しません。Abilityの実行条件がFalseになったとき、デバッグ用メッセージを表示させるのに使用しました。
OnUpdate
アップデートのイベント。
初回はOnEffectStartから呼び出されます。戦闘中かどうかを判断して、人間に変身するタイミングをはかる処理になります。
戦闘中であれば再び5秒後にアップデートの予約をし、戦闘が終わっていれば10秒後にアップデートの予約をします。戦闘が終わった10秒後に再びアップデートで戦闘中かどうかの判断をします。戦闘状態でなければ、"TranceFormRace"で指定された種族への変身処理を開始します。念のために"UnregisterForUpdate()"でアップデート処理もOFF。
もし新しい戦闘が始まっていれば、また5秒後にアップデートの予約が入ります。

戦闘が終わっても最低10秒間は様子を見て、すぐに変身を解かないようにしました。



各Propertyはこのように設定しています。
"bNaked"は元に戻ったとき裸になるかどうか。"True"にすると装備をすべて解除する処理がONになります。こちらの設定はお好みで。



Magic Effectができたら、このようにSpellでAbilityの作成。
条件を設定して、ElderRaceでないときだけこのAbilityが有効になるようにします。



NPCにこのAbilityを覚えさせます。
ウェアウルフに変身する魔法は、「変身しっぱなし」のタイプを登録。
あとはゲーム内で動作確認します。戦闘終了後、10~15秒程度で元に戻ってくれたら成功です。
試したところうまく動いてくれたので、しばらくこれで様子をみようと思います。

ゲーム中、このAbilityが有効になっているかどうかは「Mfg Console」を使わせていただくと、一目瞭然です。
人間のときは"Inactive"、ウェアウルフのときは"Active"になっているはずです。

前へ | 次へ
PR

コメント

1. 祝福と魔法の制御

「変身魔法を作る02・03」を読ませていただきました!!!
ここ数日で次々と難題をクリアしていくUniさんに感心しております(≧0≦)b゛

魔法をCastする方法が…とにかくスゴイ…!!以前伺った時に、Questで管理されているフォロワーもいるという話を教えて頂いたのを思い出しました。あれから私もUseShoutやUseMagicを試したのですが…良い結果は得られませんでした。ブログの記事をちゃんと理解できているのか、まだ自分でも内容についていけているのか不安ですが…(汗)
Uniさんが「変身魔法を作る02」で編み出したQuestのScriptを用いた方法では、単に魔法やシャウトを使えないNPCに魔法を使わせるだけでなく、「装備できるSlotや武器」に登録されていないものでもQuest内のScriptにより使用可能になる、ということですか?
この方法を用いれば、種族変身魔法を使わせるだけに留まらず、刀剣を扱ったり、魔法や弓を使って遠隔攻撃ができる「半人狼」も作れるのかも…と思いました(^0^)
遠隔攻撃ができないことは、かなり痛い弱点になっていましたし…捕食以外の手段で回復することもできそうですね!
また、Questの作り方の記事は今後Modを作る上でとても参考になります!

>ウェアウルフになっているときだけ、レベルに応じて素手の攻撃力をあげるAbilityを作ってみました。
「WerewolfUnarmedDamage」が、ウェアウルフの素手攻撃力を示していたとは!敵キャラクターやNPCの攻撃力がどこで定義されているのか分からなかったのですが、Abilityのところで素手攻撃力は決定されているのですね。これは面白いです!プレイヤーウェアウルフは、DLC導入でかなり強化されたみたいですが、このSpellを使うことでNPCウェアウルフの強さの調節ができそうですね!!

「変身魔法を作る01」のコメントで、Spellの祝福化についてUniさんに相談しましたが、あの時点で自分はギブアップ状態でした…(^ ^;)
別の検証の最中に突然遭遇したことでしたので、詳細な条件設定なども分からず…かなりアバウトなコメントをしてしまい、すみませんでした。Uniさんからいただいたコメントや新しい記事を読ませていただき、どうやら「Type→Ability」にしたことが良い影響を及ぼしていたことが分かりました。

「変身魔法を作る03」の記事は素晴らしかったです!!、永続する効果を見事に制御し、Ability化できたのですね!特にアルドゥインの無敵の祝福からScriptを発展させるなんて…まさにボスの力の一部を吸収するUniさん(凄)

ファル粕「信じられない…!ドラゴンボーンだ…!!!」

しかし、私にはかなり難解な内容でした…(>w<)
何度か繰り返し読ませていただいており、これまでの処理を一つ一つ辿って把握するまでにかなり時間がかかってしまいました。

01→変身・解除も同一Magic内のScriptで行う「一体型」。
02→解除は別のMagicを用意し、Questによって強制Castさせる「分離型(Quest解除)」
03→解除は専用のAbilityを用意し、Conditionsの条件によってScriptのOn/Offを切り替えて発動させる「分離型(Ability解除)」

一応、このように私の頭の中では捉えておりますが…大丈夫でしょうか…まだまだScriptの所とかは難しいです。Uniさんの環境ではAbilityの方も上手くいったと伺い、次の展開へますます期待が高まっております!!Abilityの作り方をもとに、魔法を祝福化することでNPCが使わない新たな魔法を試してみたいです。

最近フォロワーと一緒に世界を人狼化して駆け抜けていましたが、途中で何回か戦闘に巻き込まれることがあり、人狼化フォロワーの観察を進めておりました。そこで思うところがあったのですが…Uniさんの人狼化フォロワーはキルムーブを出すことってありますか?まだプレイが足りないのかもしれませんが、ウェアウルフに特有の引き裂きや噛みつき、投げ飛ばしなどをしている場面に遭遇しておりません。また、普通のフォロワーの時も前から剣を指して抜く、という一つのキルムーブしか出しているところを見たことがなかったので、もしかしたらフォロワーのキルムーブは特定の物だけが指定されているのではないかと思い、ご相談させていただきました。

Re:祝福と魔法の制御

>QuestのScriptを用いた方法では……「装備できるSlotや武器」に登録されていないものでもQuest内のScriptにより使用可能になる
試していないのでなんとも言えませんが、無理かもしれません。人狼Raceそのもののデータを弄って、装備できるようにしてあげる必要もあるかも。
Scriptの"cast"は魔法の効果を強制的に発生させているだけみたいで、NPCに使わせるものではないらしいです。CKwikiの説明を見ると、「アニメーションつきでNPCに魔法を使わせたかったらAI PackageのUseMagicを使ってね」みたいなことが書いてありました。

>01→変身・解除も同一Magic内のScriptで行う「一体型」。
>02→解除は別のMagicを用意し、Questによって強制Castさせる「分離型(Quest解除)」
>03→解除は専用のAbilityを用意し、Conditionsの条件によってScriptのOn/Offを切り替えて発動させる「分離型(Ability解除)」
おお、分かりやすくまとめてくださってありがとうございます!
3つの記事でそれぞれ異なる3つの変身&解除の方法を書いています。汎用性が高いのは01で、自作フォロワーに使いやすいのは03の方法でしょうか。
まだまだ自分の手に負える改造ではなくて、記事もやり方の手順を書いただけで精一杯になってしまってます。かなり読みにくいし分かりにくいかもしれません、すみませんです。

>人狼化フォロワーはキルムーブを出すことってありますか?
そういえばキルムーブはまだ見たことがないです。
フォロワーを変身させてはじめてNPCウェアウルフが身近な存在になったのもありますけど、NPCのキルムーブ自体見ようと思って見られるものではないので、難しいですよね。
人間のフォロワーが繰り出すキルムーブは、片手剣のものをいくつか見た記憶があります。後ろから喉笛を掻っ切るのとか……。プレイヤー自身、山賊長に首を飛ばされたこともあったような。こちらはもしかしたら両手剣のパークを持っていたのかもしれないです。
相手にしている敵によってもモーションが発生するかどうか限られるようです。私もキルムーブの発生条件や仕様についてはさっぱりなので、とりあえず地道に観察してみますね。

コメント

2. 人狼のキルムーブ

返信(そして変身も!)ありがとうございます!
Uniさんの記事はいつもとても丁寧かつユーモラスで洗練されています。かなり頭の固い私にも分かりやすく、大変感謝しております!

あの後…記事を読み込んで、だいぶ変身の仕組みについて頭に入れることができました!!Uniさんのブログを訪問させていただく前は、CKの操作が全く分からないことだらけでしたが、PackageやMagic、Script(少々)などについて理解が深まって来ております。最初はwikiを見て諦めていたのですが、「Bendu oloのQuest」に挑戦してみたくなってきました。
ここ数日、しばし同胞団とはお別れし、CKに合わせてスカイリムのmod環境を一新しようと思い、再構成しております。今度はModOrganizerを導入してみます!ただ、再構成は初めてで…過去の謎modにまみれ、混沌としたデータのバックアップと復旧にものすごい時間と労力がかかるということが身を持って分かりました…。またあの主人公「ファル粕」に無事再会できるのか…二度と会えなくなってしまうのか…複雑な心境です(笑)
もしデータがおしゃかになり、永遠の別れとなってしまっても…今度の私には心強い「{ SPS」がありますから、リバーウッドから向かうところ敵なしですが(^^)

02の「分離型(Quest解除)」は少し特殊な方法なのですね。それゆえに、面白い方法に応用できる可能性を秘めているとも感じました。最近掴んだ情報によると、ウェアウルフに装備を持たせるバグや杖を扱わせるバグなどが存在するようなので、これらと上手く組み合わせることができれば、スコールさんの蒸気の時のように、想像していなかったことに飛躍しそうな技術だと思いました!!

記事の本編とは異なる質問になってしまうのですが、Uniさんがアルドゥイン専用のAbility「AbAlduinInvulnerability」を分析されている図のところで、Scriptの文字に所々色がついていてとても見やすく、各functionなどが分かりやすかったのですが、これはCKとはまた違ったScriptを書くための専用のツールを使用しているのでしょうか?
いつも変なところに着目してしまい、申し訳ありませんm(> <)m

キルムーブに関する情報をありがとうございます。
やっぱりウェアウルフのキルムーブはプレイヤー限定なのかもしれないですよね…。
人狼NPCが派手に「頭つかみ投げ」をする瞬間を、どうしても見たかったのです(残酷)
私が見たことのないものも、Uniさんは見かけたことがあったみたいで…今後、見れるのがちょっと楽しみになってきました!特にプレイヤー自身も首を飛ばされるなんて…驚きでした!
そして、懐かしいデータをロードしていて思い出したのですが…リフテンのラットウェイで「拳のジアン」と戦った時に、ほぼ毎回バックドロップされておりました!!どうやら素手のキルムーブはNPCが得意としているようです。それから、この男は素手NPCの実験に最適の逸材でした(笑)
キルムーブのことを考え始めたのは、プレイヤーとして「サークル人狼NPC4人衆」と敵対して熱戦を繰り広げていたのですが、プレイヤーが一度もキルムーブされることがなく、途中で参加してきた助っ人に対しても発動する様子が見られなかったので、少し気になっておりました。
また、プレイヤーやNPCが人狼化したときには、攻撃に吹き飛ばし効果があるのですが、プレイヤーに対して人狼が攻撃してくる際に吹き飛ばしが発動しないので、そのこともちょっと気になっております(麻痺や氷晶、揺るぎ無き力を受けたときのような状態になるかと思っておりました)。
最初はプレイヤーがウェアウルフになると必ず「3人称視点」になることと、キルムーブが4種類とも「3人称視点」のものであったので、NPCも発動するのではないかと予想しておりました。CKでキルムーブを編集できるような元締めの場所を探してみたのですが、今のところ分からずにおります。もしかしたら、その瞬間だけムービーが読み込まれるような、CKの範ちゅうを越えたところで設定されているのかもしれないですよね…。(もしそうならとても残念です)
でも、オープニングからムービーを使用せず、QuestのSceneで再現されているスカイリムのすごさを思うと…できるんじゃないかなと…希望を持っております。FNISとかを上手く使いこなせば可能なのかもしれませんが…未だに踏み込めていない領域なので、これを機にモーションなども少し学んでみようと思います。

Re:人狼のキルムーブ

このブログがお役に立ったようでうれしいです。
Bendu oloのチュートリアルは簡単なお使いクエストの作成なんですが、シーンの作成など色々な要素が盛りだくさんで、難しいけど楽しかったです。
Mod環境の再構成はたいへんですよね。私はModOrganizer使う前はマニュアル管理だったので、Dataフォルダが大変なことになってました……。

>Scriptを書くための専用のツール
「Sublime Text 2」というテキストエディタです。CKwikiのScriptのページで紹介されていました。
http://www.creationkit.com/Sublime_Text_Setup
あまり使いこなしてはいないのですが、下地が黒いのと色分けしてくれるのが目に優しくて助かってます。コンパイルもできるので、Scriptを弄るだけならCKを立ち上げなくてすむのも便利です。

PCウェアウルフの「頭つかみ投げ」はまだ見たことがない気がします。キルムーブも状況によってどのモーションが発動するかの条件があるみたいなので、自分がまだ見たことのないものもたくさんありそうです。モーション関連はまったく分からないので応援しかできませんが、ぜひ頑張ってくださいませ! いえ、どれだけたいへんなものなのかもよく分かってないのですが……。
私は現在装備のテクスチャ関連で身動き取れなくなってます(^^; どの改造も、なかなか一筋縄ではいきませんね。

コメント

3. 人狼拳法(仮)製作中です。

Uniさん、いつも相談に乗ってくださってありがとうございます!!
仕分けをしながら、Mod再構成を徐々に進めております。再びCKが出来る環境までは整えることができました。ModOrganizerに変えて、ファイルの入れ忘れや上書きなどにあまり気をつかわなくてよくなり、Modの導入がかなり安心して行えるようになりました~(>v<)b
NMMやWryebashなどで管理していたころが嘘のように感じるくらい楽になった気がします。ただ、以前はコピペでMod管理を行っていたのでその癖が抜けず、操作になかなか慣れずにおります…!それから…例えば、顔や手などのtextureやmeshを複数のModの良い部分をまぜて一つにするというようなことをどう行ったらいいのか良く分かりませんでした…。今はとりあえずそれぞれのModをプレーンな状態で出し入れしております。
Uniさんがどのように管理されているのか、もし可能でしたら教えていただければと思います。

また、Scriptのツールを教えていただき、ありがとうございました!!これはとても便利なツールですね!複雑なScriptも読んでみようとやる気を起こさせてくれます(^0^)

Uniさんは今、装備の自作を行われているのですか?装備の自作といえば…二大難解ツール「blender」と「GIMP」ですよね!!
私もCKwikiを見ながらモーションの作成を試みようと思い、最近「blender」を導入いたしました。ところが…CKと同等…もしくはそれ以上の高いハードルが待っておりました…(涙)
まず、操作をする方法が多岐にわたりすぎていることと、実行するためにどこをいじればよいのかを見つけるがものすごく大変だということに気づきました。そこで一旦、モーションの自作は諦め、既存の一癖あるモーション(ウェアウルフなど)を人間に移植できないか試しております。素手の戦闘モーションを人間の「殴る」から人狼の「ひっかく」に変えることができました。これを発展させて、あるConditionsの時のみモーションを変えさせて、武道などの「型」のように「人狼拳法」を個別に持たせることができないか…と実験しております。
現在は、条件の設定ができていないのか、または仕様でそういう設定は無理なのか分かりませんが…新しく設定したものは何故か上手く反映されていないようです。モーション自体は時々でるのですが、攻撃判定が付いていないようでした。上手くいく方法が見つかったら、お知らせいたします!

blenderに慣れるための第一歩として、オブジェクトの作成にも挑戦しております。何に使うのか自分でも定かではないのですが…スカイリムの世界に自分の作った物体を入れてみたいという願望から、「メリディアの灯」のような不思議な多面体をデザインして、表面にツルツルな光沢を持たせる処理をやってみました。それを「UV展開」という操作で展開図に書き起こして、「GIMP」で読み込んで色を塗る…ということまではwikiや詳しい方のHPを見て分かったのですが、私には3Dのセンスが致命的にかけているのか…スカイリムのddsファイルのように無駄のないきれいな展開図ができておりませんでした。
一つの新しいオブジェクトをスカイリムの世界に入れるのに、こんな単純な図形でもここまでの手間がかかるとは――――ファ゛ッ!!!!と途中でソブンガルデヘ逝きかけました。装備作りのことを考えると、「一体どうやってあんなに精巧な形や模様を作れるんだろう?」と…職人の方々の苦労を想像するだけですごいことだと感じます。

いつか自分も享受するだけでなく、UniさんやModderの方々のようにドヴァキン達を活性化する創作ができるようになりたいです。新たな製作が上手くいくことを祈っております!!

Re:人狼拳法(仮)製作中です。

>顔や手などのtextureやmeshを複数のModの良い部分をまぜて一つにする
私はMOを使いこなしてないので手作業での地道な方法をとってるんですが、一例として(^^;

複数のModからそれぞれtextureとmeshをいいとこ取りして使いたい場合は、まず使いたいものだけそれぞれのModから取り出します。そして取り出したファイル群を「BodyTexture」など適当に名づけたフォルダに、各Modフォルダの階層構造を維持した状態でまとめて突っ込み、「BodyTexture」フォルダをMOの「mods」フォルダに入れて1個のModとして認識させています。
自分にとっては分かりやすく管理しやすいのですが、あまりいい方法ではないかもしれないです。マニュアル管理していたころの癖が抜けていない気がします。

あるいはMOの画面内で、インストールしたModを右クリックして「Infometion...」を表示。Filetreeタブ内にそのModが持っているファイルの一覧が表示されるので、使わないtextureやmeshを右クリックから"Hide"するとゲームに反映させないようにできます。Hideしたファイルは他Modのファイルを上書きすることもありません。各Modのファイルを欠けさせることなく維持でき、上書きについても自在に操れます。どちらが管理しやすいかは人によりますが、こちらの方法が正攻法かもしれません。

>装備の自作
いえいえ、Meshは一切扱えないのでtextureの編集だけですよ~。鉱山労働者の服の形が好きなので、リテクスチャでバリエーションを増やしたくて。服っぽいけど軽装にも見えるものを作ってました。PhotoShopで描いてます。以前は別PCゲームで可もなく不可もないテクスチャModばかりを作っていたので、作成ツールだけは揃えていました。Skyrimでも活用できて、ほっとしてます。
モーションについては私はさっぱり分からないので、教えていただいても恐らく活用できなさそうに思います。すみませんです。Blender、慣れないと本当に操作しづらいですよね。
しかしウェアウルフの大きく引っかく攻撃モーションは、カジートにも最適そうな気がします。自前の立派な爪を持ってますものね。

コメント

4. 無題

はじめましてtktkです。
大変わかりやすく読みやすい解説ですね。
私はmod作成wikiの管理人やってまして、このブログのCreationkitのページのリンクをwikiの外部チュートリアルのところに貼ってもよろしいでしょうか。AI PackageやNavMeshの解説が少なくて助かります。

この記事についての内容ですが、実はAbilityは毎秒Conditionをチェックしてて、地味に負荷がかかるのでフォロワーやプレイヤーの場合は多用はあまり推奨されません。アルドゥインはイベントで一時的な登場なのでああいうパターンではさほど問題にはなりません。CK(papyrus)は常時稼働ではなくイベントが起きた時だけ動く、イベント駆動型が負荷が少なく基本なので、IsInCombatではなくてOnCombatStateChangeなどの戦闘状態の遷移を取得するイベント等で行うと安定したバグの少ないスクリプトが組めると思いますよ。AbilityやOnSingleUpdateループは一つの方法として間違いではなくてそれが良い場合もあります。

Re:無題

tktkさん、はじめまして。mod作成wikiにはとてもお世話になっています。ありがとうございます。
このブログの記事がお役に立てるようでしたらとても嬉しいです。リンクの件につきまして、どうぞよろしくお願いします。
AI Packageについてはまだ纏まった記事を書いていなかったのですが、これを機会に近々用意してみようと思います。今のままだと書き散らしの記事しかないものでして……。

この記事についてのアドバイスもありがとうございました。
まだまだ知らないことが多くて、気にはなりながらも負荷について十分理解できずにいました。Abilityだと実行条件を常時監視するようになってしまうんですね。イベントによる稼動を中心に考えて、それぞれの使い分けを意識してやってみようと思います。

Author

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

ブログ内検索

最新コメント

[07/16 chomechome-X]
[07/16 ブレトン魔術師]
[07/15 amo]
[07/10 初心者シセロ]
[07/10 ソウルケルンのエレンウェン]