忍者ブログ

方向音痴のSkyrim

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

4E201降霜の月22日(水) ヌチュアンド・ゼル制御室

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

4E201降霜の月22日(水) ヌチュアンド・ゼル制御室



研究者一行探索もいよいよ大詰めだ。この制御室で生存者を見つけられなければ、全滅と認識してよかろう。探していないのは、もうここしか残っていないのだ。



制御室にもファルメルが入り込んでいる。だが、彼らは誰かを追ってここに入り込んだような雰囲気だ。この辺りは、他の場所に比べて機械の音が多い。ドゥーマーの罠もびっしり張り巡らされている。



そして制御室へ入って間もなく、最後の研究者の死体を見つけた。彼がリーダーのストウビンだったようだ。
彼の日誌には、これまでの探検隊の足跡がすべて残されていた。



やはり彼は、ファルメル達から命からがらここへ逃げきたらしい。しかしただ逃げ込んだのではなく、目的をもってここに逃げるのを選んだ。
「この地を生き返らせる」とはどういうことだろう。そして彼はメリディア信者だったようだ。



制御室の奥には、ドゥーマーの戦闘タイプのオートマトンであふれていた。侵入者の撃退機能がまだ機能しているのだとすると、遺跡の他の場所で彼らを見なかったのには理由がありそうだ。



理由というのは、もしかしてこれか。
制御室最奥の装置に、意味ありげなレバーが据えられている。ストウビンはこれのスイッチを入れたかったのかもしれない。代わりに入れてやるか。



レバーを倒すと、周囲の機械があわただしく動作を開始しはじめた。そして、部屋の外が微妙に騒がしい。
マーキュリオ曰く、自動防衛装置が起動したかもしれないという。嫌な予感がする。遺跡にはびこるファルメルが一掃されるのは喜ばしい。しかし、地表に住んでいるマルカルスの人間達まで防衛装置で一掃されてしまうのではないか。……一瞬それも喜ばしいかと思ったが、あの愛すべき宿屋の夫婦やコスナッチまでいなくなるのは少々気の毒だ。



制御室を出ると、すでに防衛装置とファルメルの戦いが始まっていた。
巻き込まれたくないので、速やかに遺跡から脱出しよう。



あのキャンプ地近くにいたセンチュリオンも起動してた。ファルメル達が容赦なくなぎ倒されていく。
あのオートマトン達、遺跡内部の警備でおさまってくれるだろうか。マルカルスの町まで出てきたりはしないよな。



ドキドキしながら機械とファルメル達の喧騒を後にする。
背後からスフィアが追いかけてくる音が聞こえる気もするが、構わず駆け抜けた。



ニムヒと戦った洞窟まで逃げ出したが、やはりスフィアが一体、私の背後にくっついていたようだ。
ここから先は断じて通さんぞ。



追ってきたスフィアをスクラップにし、ようやくヌチュアンド・ゼル前のカルセルモの研究スペースへ戻ってきた。安心したことに、ここは前と変わらずひんやりと静かだ。
カルセルモにはまず、ニムヒの死を伝えた。これについては彼は喜んだ。



そして、ストウビン達を追ってヌチュアンド・ゼル内部を探索したことも伝えた。
これについては、彼はストウビン達の末路について悲しんだ。



彼は私達が勝手に遺跡内部に侵入したことを叱るどころか、ストウビン達の遺品を回収した礼として報酬も出してくれた。
どうしようか。自動防衛装置を起動してしまったことも話したほうがいいのだろうか。とりあえず、あそこはドゥーマーのオートマトンがいっぱいいるから、二度とうかつに立ち入らないようにとだけ伝えておくか。



カルセルモから博物館を見学するカギまでもらい、この日はマルカルスの宿へと戻った。町は静かだ。遺跡探索前にはあれほど気になっていた蒸気機関の動作音さえ、星の輝き程度にしか聞こえない。自動防衛装置を起動した後の、スフィアやセンチュリオンが遺跡を爆走する騒音が、耳に残っていたせいだろうか。
今でもこの足の下、はるか地下で、やつらはファルメル排除にいそしんでいるのだろう。そしてもしファルメルの排除が終われば、彼らは地上に出てきて「異物」の排除を続けるのだろうか。
……頑張れファルメル。負けるなファルメル。



あまり落ち着かない気分でハチミツ酒をあおっていると、ディゲインとコスナッチの雑談が聞こえてきた。



ディゲインが物乞いになった理由の話だろうか。
スリの罪人として炭鉱で強制労働させられていた時に体を壊した……と。



ディゲイン、ディベラの女性司祭と酒盛りしたことあるのか……?



あの物乞いめ、ホラ話ばかりだな。
さて、今日は夕食もそこそこにしてさっさと寝るか。明日は手早く博物館見学をして、早々に立ち去ろう。この街に長居するのは危険だ。そんな気がする。そしてできるなら、もう二度と立ち寄らないぞ。地下からあふれ出てきたオートマトンとマルカルスとの大戦争なんかには、巻き込まれたくないからな。


前へ | 次へ
PR

コメント

1. CKについて

すみません。記事の内容とは関係ないことなんですが、CKの使い方について少しお伺いしたいことがありまして…
スカイリムではなくFALLOUT4なので、本来FALLOUT4のブログの方に聞くべきことなんですが、CKについて書かれている記事が殆どなく、頼る宛がなかったので今回こちらに質問させていただきましたm(__)m

こちらの動画のように複数のNPCをある拠点まで集団で移動させたいと思っております。
動画(1分51秒~2分11秒の部分です)
https://www.youtube.com/watch?v=yVmL1LaD6_M


NPCを自分の指定した場所まで移動させる際は、Creation Kitで『Actor→Al Package→patrol追加』の操作をし、パトロール機能を有したNPCを作成すると思うのですが、
その作成したNPCをコンソールで複数体呼び出し、集団で移動させようとするとNPC同士がお互いに干渉するといいますか、変則的な動きをしてしまいます。

このような動きです。
https://www.youtube.com/watch?v=2n0IvczGzyQ&feature=youtu.be

ちなみにCreation Kit側でpatrol設定する時はいつもこのような感じでしています。
https://www.youtube.com/watch?v=CfM7zMuIBng&feature=youtu.be

他にも自分でCK側の設定を色々弄るなりして四苦八苦しているのですが、どうしても分からずのままで(__) 
どの項目を弄れば動画のような動きをしてくれるのか分かる範囲で結構ですので、教えて頂けませんでしょうか?

Re:CKについて

こんにちは。私はSkyrimのCKしかいじったことがないので、ちょっと自信がないです。
でも、YoutubeでFallout4のCreationKitの操作の様子を確認させていただいたかぎり、Skyrimとほとんど同じやり方に見えますね。少なくともAI Packageについては、Fallout4でも大きな違いはないのかな? ということで分かる範囲でお答えさせていただきますね。

まず最初の参考動画を見た印象としては、「AI Packageで動かしているようには見えない」です。全NPCの動きがきれいにそろいすぎているのと、NPC同士の距離が近すぎる(衝突しあいそうな距離)のが理由です。またゲームセッティングとして、一度に動かせるNPCのAIの数(iAINumberActorsComplexScene)が決まっているようなので、棒立ちのままになるNPCも出てきます。そのためAI Packageだけで移動させようとすると、棒立ちNPCが障害物になる&NPCは周囲のNPCと衝突しないように避けて動こうとするので、テスト用のYoutubeのように変則的な動きになってしまいます。

AI Packageを使わずに歩かせるとなると、考えられるのはScriptでしょうか。NPCを移動させる関数についてはほとんど知らないので具体的に説明することはできませんが、例えば「KeepOffsetFromActor」という関数があります。これは指定したNPCから一定の距離と方向をキープさせて、NPCを追従させることができるようです。Skyrimだと、フォロワーにこのScriptを付けてプレイヤーの真横を並んで歩かせる、複数のフォロワーに陣形を組ませて歩かせる機能に使われていたかと思います。
NPC一人だけに目的地へ歩かせるAI Packageを付け、残りのNPCすべてにそのNPCを中心とした立ち位置を一人ずつScriptで設定してやれば、一斉に動けそうな気はします。

目的地へ移動させるAI Packageについては、SkyrimではPatrolよりTravelの方が一般的かもしれません。以下のページにPatrolとTravelのAIの違いについてまとめています。Fallout4では違うかもしれないので、参考程度に。(Fallout4でNPCの移動によく使われている方のAIを選ぶのが無難だと思います)
「Template【Travel・Patrol・Escoat】」
http://skyrimeasy.blog-rpg.com/ck/packagetemplate07


追記:
「iAINumberActorsComplexScene」の値を増やして(More Active AIというModがそれっぽいです)棒立ちNPCが出ないようにするだけでも、参考動画に近い動きは出せるかもしれないです。その際、NPCごとに目的地を設定して互いの進行ルートが重ならないようにしてやれば、互いによけようとする動作は少なくなります。

2. 無題

ご返答くださり有難うございます。
具体的な説明でとても助かります。
なるほど、AIPackageではなくScriptの設定ですか。

「KeepOffsetFromActor」について少し調べてみたのですが、「隊列の形成」をする際に使われるものとのことなので、
おっしゃる通りこれなのではないかと思いました。

参考にしたサイト
https://w.atwiki.jp/skyrim_mod/pages/10.html

ただKeepOffsetFromActorについての情報があまりにも少ないので、どこにあるのか今手当たり次第探しているのですが未だ見つからず…。
恐れ入りますが、このKeepOffsetFromActorという項目がどこにあるのか(CeationKit内やゲームのファイル名等)、分かるようでしたら教えて頂けませんでしょうか?
無知なばかりに申し訳ありません(__)


ちなみに追記していただいた内容『「iAINumberActorsComplexScene」の値を増やしてActiveなNPCを増やす』についても試してみました。

More Active AIというModを落としてActiveNPCを20→100に変更。CreationKitにてNPC毎に目的地を設定し、配置。
動画だとNPC設定の部分が早くて少し分かりにくいと思うのですが、NPCを6体作ってそれぞれを列の先頭に配置。後続NPCは先頭のNPCと同様のものを配置し、同じ目的地に設定させている感じです。

https://www.youtube.com/watch?v=DgzgIL1v-lM&feature=youtu.be
上記の設定で試してみましたが、変則的な移動は変わらないようでしたm(__)m


別件ですが、AI Packageの記事読ませてもらいました。詳しくまとめられていたので、AlPackageの使い方をだいぶ理解できたような気がします。
ありがとうございます(人´∀`)

Re:無題

Creation Kit wikiでFallout4のScripting Referenceのページを見たのですが、「KeepOffsetFromActor」という関数はないようです。かわりに「PathToReference(https://www.creationkit.com/fallout4/index.php?title=PathToReference_-_Actor)」はありました。目的地に向かって直進してくれればいいので、「PathToReference」で十分そうです。

動画を拝見しましたが、棒立ちのNPCはいなくなっても歩き始めにばらつきが出てますね。見た感じ、前列のNPCが出発したらすぐに後列のNPCを生成して数秒遅れで出発させるなど、頑張って工夫&調整すれば参考動画の動きに近づけそうな気はします。
ちなみにSkyrimで「PathToReference」の動作を確認してみたところ、Active AIの数関係なくNPC50人がScriptの開始と同時に移動を始めてくれました。
結果を見ると、AI Package任せよりScriptで歩かせる方が確実に同時スタートできるので、大量のNPCの足並みを揃えるのはやりやすいかもしれませんね。

※「PathToReference」の説明ページにもあるように、NPCのAI Packageに移動を行うものが設定されていると、経路選択が競合してまったく動作しませんでした。AI PackageにTravelを設定し、Place to Travel(目的地)にNearSelfを設定すると動こうとしなくなるので、「PathToReference」が動作します(SkyrimではAIPackageの設定なしだと、付近を徘徊するAIが勝手に動作するのでなんらかのAIPackageを設定する必要がありました)。もしくはScriptでNPCのAIをオフにする処理が必要みたいです。「PathToReference」で歩かせる場合は、ご注意ください。

3. 無題

>Uni様

ご返答くださり有難うございます。
上記のやり方で試させていただきました。
スクリプト設定が初めてなので、操作がおぼつかないのですが、こちらの動画のやり方で合っていますでしょうか?
https://www.youtube.com/watch?v=DlY-cCHUGYU&feature=youtu.be

目標地点とNPCは初めから配置をした状態からの操作なんですが、
①目標地点(Xマーカー)のID?をメモする。( 0:07~0:10)※青線部分です。
②配置しているNPCをダブルクリックしてScript項目を選んで編集。(0:20~1:41)
③NPCにAl Package Listを追加(Package Templateで"Travel"を選択→Place to Travelで"Near Self"を選択(1:51~2:37)

上記の操作で試した所NPCが動作しなかったので、どこかしらで操作方法を間違えていると思うのですが、どの部分で操作を誤っているかご指摘いただけないでしょうか?

また目標地点(Xマーカー)のID?をメモしようと思った理由ですが、CreationKit wikiのPathToReference - Actorの構文を参照したんですが、()内の"ObjectReference aTarget"というのが目標地点のセルのことを指していると思ったからです。Xマーカーをダブルクリックし、セルらしきものを探してみましたが、場所を特定するものがこれしかなかったので、こちらを選択しました。

Re:無題

AIPackageの設定は大丈夫ですが、Scriptを書き込むところが違いますです(汗) Documentation StringはScriptの説明などを書き込むところで動作には関係しないです。

https://youtu.be/4APWgLXOh1c
昨日Skyrimでテストした時の動画を撮っていたので、こちらを参考にしてみてください。撮影設定ミスってカーソルが出ていないので分かりにくいと思いますが……。以下のような流れになっています。

・最初に、目的地となるXMarkerをワールドマップに配置。
・テストNPCのActor画面を開く。ウィンドウ左側のScripts欄で「Add」ボタン押す。(このNPCにはすでに、その場から動かないAIPackageを登録済みです。)
・Scriptを選ぶ小さなウィンドウが開くので[New Script]を選択。
・Add New Scriptという小さなウィンドウが開く。Name欄にScripeの名前を入力(英字から始まる半角英数字であればどんな名前でもいいです。newscriptのままでも構いません)。Extends欄で最初から入っているObjectReferenceの文字を消し、Actorと入力(これから書くScriptに必須の設定です)。Fallout4では「Namespace」という項目がありますが、空欄のままにしておいてください。
・NameとExtendsの欄を入力したら、OKボタンを押して「Add New Script」ウィンドウを閉じます。さらにScript一覧のウィンドウもOKボタンを押して閉じます。
・ActorウィンドウのScripts欄に、自分の作ったScriptが表示されます。そのScriptをクリックして選択。その状態で右クリックしてメニューから「Edit Source」を選択します。
・「Editing script 自分のScript名」というウィンドウが開きます。ここでScriptの内容を入力していきます(Windowsのメモ帳みたいな超シンプルなエディタです)。一番最初の行にすでに「Scriptname 自分のScript名 extends Actor」が入力されていますが、これは絶対に手を付けないようにして、以降の行に書き込んでいきます。動画ではすでに動作確認済みの内容をコピペで張り付けてます。
・入力が終わったら、エディタウィンドウのFileメニューから「Save」を選択。少し待つと、ウィンドウの下に「Compiler Output:」という欄が出て、コンパイルの結果を表示します。※ここでScriptの入力内容に不備があればエラーが出てSaveできません。問題なければSave Succeededというメッセージがウィンドウ一番下に出ます。
・ウィンドウ右上の×を押してエディタを閉じます。
・Scripts欄で自分のScriptが選択されているのを確認して、右側の「Properties」ボタンを押します。
・「Properties for script なんとか」というウィンドウが開きます。一覧に「MyDest」という項目があるのでそれをクリックして選択します。ウィンドウ右側の「Edit Value」ボタンを押します。
・見慣れた設定項目が出てくるはずです。ここで目的地となるオブジェクトを設定してください。ScriptではIDを直接入力しても認識しないので、このようなpropertiesというものを通して設定してあげる必要があります。
・OKボタンを押してPropertiesのウィンドウを閉じます。これでScriptの設定終了。ActorウィンドウをOKボタンでとじ、セーブします。動画ではこのままCreationKitを終了していますが、このActorをフィールド上に大量配置しても構いません。元となるActorデータにScriptを付けたので、フィールド上に配置されたNPC達もこのScriptを継承しています。配置したNPCをダブルクリックしてScriptsタブ内を確認してみてください。ちゃんとついていると思います。

・ゲームを起動して、コンソールで目的地のXMarkerの位置に移動。適当に離れて、作成したNPCをコンソールから大量生成。
・生成されたNPC達は、1秒後にマーカーの位置へ移動を開始します。時折画面左上に現れる「Failed: PathToReference」のメッセージは、NPCの誰かがオブジェクトに引っかかったり他NPCに進路を邪魔されて「PathToReference」が失敗判定を出し、動作終了してしまった合図です。Scriptでは、「PathToReference」が失敗して動作終了しても1秒後にまた再実行できるようにしているので移動をし続けます。


恐らくですが、動画のようにやればFallout4でも動いてくれるのではと思います。Scriptの内容についてですが、「Scriptname なんとか extends Actor」の行の下に以下の内容を入力してみてください(ResisterForSingleUpdateなどはFallout4では使えない関数なので)。私の環境では動作確認のしようがないのでうまくセーブできるかも分からないのですが、うまくいけばNPC達がちゃんと歩いてくれると思います。

ObjectReference Property MyDest Auto

int myCoolTimerID = 10

Event onInit()
StartTimer(1, myCoolTimerID)
EndEvent

Event onTimer(int aiTimerID)
if (aiTimerID == myCoolTimerID)
bool note = PathToReference(MyDest, 1.0)
if(note == false)
StartTimer(1, myCoolTimerID)
endif
endif
EndEvent


CreationKit wikiの以下のページを参考に書いています。
https://www.creationkit.com/fallout4/index.php?title=StartTimer_-_ScriptObject
https://www.creationkit.com/fallout4/index.php?title=OnTimer_-_ScriptObject

その他、Scriptを書くときは基本的にこのページを随時参考にすることになると思います。
https://www.creationkit.com/fallout4/index.php?title=Category:Papyrus


それにしてもFallout4のMod作成に関する情報って、Skyrimと比べると少ないですね……。Creation KitでのMod編集についてはSkyrimのブログなどで説明されていることがそのまま参考になるとは思います。操作やScriptの扱いはほとんど同じなので。
またYoutubeでは、「Fallout4 Creation Kit Tutorial」などの名前で動画を作ってくれている外国の方が結構いらっしゃいます。何言ってるか聞き取れなくても、Creation Kitの操作やScriptの付け方など、操作画面を見ているだけで何をどうしたらいいのかなんとなく分かるかなと思います。

※修正(2019/09/19)
Script本文最終行を "EndEventt" とミスしてたので "EndEvent"に修正しました。

4. 無題

すみません。コメントを書き込もうとするとアクセス拒否されるのでテストです。

5. 無題

>Uni様

動画まで撮影してくださり、感謝いたしますm(__)m

お陰様でスクリプトの編集操作について理解することができました。

作成した頂いたScriptの関数をコピー&ペーストしてみたのですが、Scriptエラー
が表示されましたので、表示されたエラー文字を翻訳して内容を確認。どこの関数でエラーが
起きているかFallout4wikiのPapyrusを見ながら調べておりました。

Scriptに表示されたエラー画面は以下の通りです。


Papyrus Compiler Version 2.8.0.4 for Fallout 4
Copyright (C) ZeniMax Media. All rights reserved.
Starting 1 compile threads for 1 files...
Compiling "PathToRef"...
C:\Users\ユーザー名\AppData\Local\Temp\PapyrusTemp\PathToRef.psc(3,25): const scripts may only contain const auto properties. Property MyDest cannot be defined
C:\Users\ユーザー名\AppData\Local\Temp\PapyrusTemp\PathToRef.psc(3,25): const scripts may not contain data, script variable ::MyDest_var cannot be defined
C:\Users\ユーザー名\AppData\Local\Temp\PapyrusTemp\PathToRef.psc(5,0): const scripts may not contain data, script variable myCoolTimerID cannot be defined
C:\Users\ユーザー名\AppData\Local\Temp\PapyrusTemp\PathToRef.psc(19,0): mismatched input '<EOF>' expecting ENDEVENT
No output generated for PathToRef, compilation failed.

Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on PathToRef


6. 無題

この表示をみた限り、const scriptsが問題みたいなことが書かれているように感じられたので、2つほど方法を試してみました。

①ScriptnameにConstを入れる
imgurURL

②最初からConstにチェックが入っていたのでチェックを外してみる
imgurURL

上記の方法をとってみたところ、①は変化がありませんでしたが、②で変化がありました。
上記のエラー画面から下記のエラー画面に変わった感じです。


Papyrus Compiler Version 2.8.0.4 for Fallout 4
Copyright (C) ZeniMax Media. All rights reserved.
Starting 1 compile threads for 1 files...
Compiling "PathToRef3"...
C:\Users\ユーザー名\AppData\Local\Temp\PapyrusTemp\PathToRef3.psc(19,0): mismatched input '<EOF>' expecting ENDEVENT
No output generated for PathToRef3, compilation failed.

Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on PathToRef3



とりあえずconst scriptsのエラーは消えたのですが、ENDEVENT関数の部分でまだエラーが発生しているみたいです。
EOFの不一致について調べてみたのですが出てこなくて…これはどこに問題があるということなのでしょうか?

後すみません。もう1つお聞きしたいことがあるのですが、Scriptをテストしていて新規Scriptが増えてきたので削除したいのですが、どうやって削除すればいいのか分かりますでしょうか?
Deleteでは削除できなかったもので…。
imgurURL

長文になってしまい、申し訳ございません;

7. 無題

失礼いたしました。

どうやらimgurのリンクを張っていたのが原因だったようです。
長文が原因だと思い、先に文章を分割して投稿してしまいました。 
申し訳ありません(;'∀')

8. 無題

画像が張れなかったので追記です。
ちなみにConstですが、先日私が投稿しました
https://www.youtube.com/watch?v=DlY-cCHUGYU&feature=youtu.be

こちらの動画の37秒あたりから表示されるAdd new Script内のExtends下に表示されているチェックマークが入っているもののことを指しております。
撮影してくださった動画を拝見させていただいたところスカイリムの画面にはこれがなかったので、念のため追記させていただきました(__)

Re:無題

おっ、すみません(滝汗) 前回コメントのScriptの最終行で、タイプミスしてました。
「EndEvent」とすべきところが「EndEventt」となってました。(前回返信の本文も修正しておきます)
Constのチェックも外していただいて正解です。

> C:\Users\ユーザー名\AppData\Local\Temp\PapyrusTemp\PathToRef3.psc(19,0): mismatched input '' expecting ENDEVENT
のエラーについてですが、はファイル末尾のことですし、「EndEvent」の入力が想定されているのに見つからなかったと言っているので、私と同様のタイプミスをしていたら修正してください。もしくは、入力文字列末尾に変な改行や全角スペース等があるかもしれないです。ブログのテキストをそのままコピーペーストしてたら、余分な空白が混じってくるかもしれないので。
これを修正したら、セーブできるかな……と思います。

作成したScriptのファイルですが、Mod OrganaizerなどからCreation Kitを起動していない限りは、(Fallout4がインストールされているフォルダ)/Data/scriptsフォルダ内に拡張子がpexとなっているファイル、同じくDataフォルダ内のSource/Scriptsフォルダ内に拡張子がpscとなっているファイルが生成されています。いらなくなった分はそのままゴミ箱に捨てて大丈夫です。

※コメント投稿でimgurのURLが張れなかった件ですが、「https://imgur.com/」以降のURLだけなら張り付け可能ですか? NGワードが設定されているのかもしれないのですが、サービス提供元の共通設定っぽくてimgurのURLだけ許可するのは無理そうです(imgurだけピンポイントで拒否られてるのかも)。

9. 無題

>Uni様

設定出来ました!有難うございます。

どうやら貼り付けの際、一部誤った文字を私自身で記述していたことが問題だったようです。
確認不足でコメントしてしまい、申し訳ございませんm(__)m

テスト時の動画になります。
マーカーとNPCは前回同様配置済み
・スクリプト設定(0:00~3:23)
・NPCのAIPackageの設定確認(3:24~3:48)
・テスト1(3:49~4:58)※余裕をもって配置させたときの動き
・テスト2(4:59~5:56)※密集させて配置させたときの動き
・テスト3(5:57~)※コンソールで呼び出したときの動き

https://www.youtube.com/watch?v=y0slzqyuiEk&feature=youtu.be


CKで初期配置しているとActive AIの数に関係なく動けている感じがします。
1つ気になるのがスカイリムの動画のようにコンソールでNPCを呼び出すと、前回同様棒立ち状態のNPCがどうしてもでてくるってことですかね(動画の6:10~)
なので、移動の際NPC同士の間隔が開いてしまった部分を(コンソールで呼び出して)穴埋めして補えないのが少し気になる所ではあります。
まぁNPCをもっと密集させて初期配置してやれば問題ない感じはするのですが^^;

ちなみにスクリプトでNPCを移動させる場合、コンソールで制御することはできなくなるのでしょうか?
動画にもあるようにAI停止(tai)や戦闘停止(tcai)を適用した状態でゲームを起動してみましたが、そのまま動き続けていましたので(;'∀')

あともう一点だけすみません。

スクリプトでNPCを移動させる時に、歩調速度を変更(WALK/FASTWALK/JOG/RUNに変更する)させることは可能なんでしょうか?

質問ばかりしてしまって申し訳ありません(__)
お時間のある時で構いませんので、ご回答いただけますと助かります。


別件ですが、スクリプト消去の仕方の件有難うございました。無事削除することができました!

imgur用のテスト
eJLg9Cw.png

Re:無題

YoutubeでNPC達の動きを見せていただきましたけど、立ち止まる原因として、「Scriptの処理内容に問題があった」か「ゲーム内で一度に動くScriptの上限数が決まっているかも」の二つがあるかもしれません。ゲーム内で動作するScriptの上限数については完全に推測なので、実際のところどうなのかは分からないのですが、Scriptの処理内容についてはある程度対処できます。
前回ご紹介したScriptの内容ですが、目的地に着くまでは「PathToReference」を繰り返し実行、着いたらScriptの動作終了という処理になっています。しかしこの「PathToReference」が何らかの理由(NPCをたくさん出しすぎて処理が重くなっていた?)でうまく動かないと「目的地に着いた」と誤判定してしまうようになっています。

Scriptの処理に問題があるのであれば、以下の内容に変えることでScriptの処理ミスによる棒立ちNPCは出てこなくなります。
前のScriptを以下のようにすると、目的地に着こうが着くまいが永遠に「PathToReference」を繰り返すようになります(下手するとゲームシステム側が無限ループと判断してScriptを止めてしまうかもしれないのですが、動作テストしてNPC何人までならゲームが動作を許容してくれるか様子を見ていくしかないです)。


ObjectReference Property MyDest Auto

int myCoolTimerID = 10

Event onInit()
StartTimer(1, myCoolTimerID)
EndEvent

Event onTimer(int aiTimerID)
if (aiTimerID == myCoolTimerID)
PathToReference(MyDest, 1.0)
StartTimer(1, myCoolTimerID)
endif
EndEvent


さらに以下ふたつの数値を調整することで、NPCをより密集して動かせるかもしれないです。

・Scriptの「PathToReference(MyDest, 1.0)」の部分
「1.0」は移動速度を指定しています。0~1の範囲でしか設定できないのですが、これを0.5に変えて、NPCの動きを確認してみてください。Skyrimで様子を見たところ、ゆっくり歩く分、NPC間の距離が小さくなりやすい感じがありました。速度0.5だとゆったり歩いてる雰囲気になって、さほど違和感はありません。

・「StartTimer(1, myCoolTimerID)」の部分(2か所)
この1は、1秒のことです。0.1など小さな数値に変えることで、1秒おきに「PathToReference」を繰り返すところをさらに短い間隔で繰り返させることができます。経路計算に失敗して立ち止まる時間が短縮されるので、さらにNPC間の距離が縮まりやすいです。
ただあまりに短すぎる時間を設定すると、それなりの負荷がゲームにかかると思うのでほどほどがいいかと思います。

ScriptのPathToReferenceは、AIで動いているわけではないので、コンソールからAIをオフにしても、NPCは歩きだしてしまいます。制御しようと思ったらScriptを様々に書き換えて対処するしかありません。移動速度も「歩く」に限定されてしまいます。遅くすることはできても、早くすることはできません。

Scriptで動かす方法については、(私が説明できる限りでは)以上のようになります。
こういったScriptならではの不便さや、移動速度を自由に決めたい時を含めると、やはりAI Packageで動かすということになってしまうでしょうか。
SkyrimでActive AIの数を増やし、AI Packageで移動するようにしたNPCをコンソールで大量生成したところ、かなりの数のNPC達が棒立ちになることなく動き始めてくれました。
CKで最初に配置したNPCと、ゲーム中でコンソールなどを通して生成したNPCで動作に違いがでることもあるので、ScriptにしろAI Packageにしろ、歩かせる地形などの周辺環境を含め、ひたすら実験&調整するしかないのかもしれませんね。

※imgur、後半のURLだけなら投稿可能なようですね。また何かあったら、この形式でURL張ってくださいませ~。

10. 無題

>Uni様

PCの調子が悪く、返信が遅くなってしまい申し訳ございません。

なるほど、スクリプトだとNPCの制御はできなくなってしまうのですね^^;

そうなるとやはりAIpakageを主軸に考えた方がよさそうな気もします…。
歩調が疎らになったり、NPC同士の距離調整にやや問題点は残りますが、以前紹介してくださったActiveAI数を増やすMODを導入したおかげで前回に比べるとかなり改善された感じがしますので。

スクリプトの操作についてPapyrusを見ているのですが、カテゴリーが多すぎてどれが自分のやりたい操作なのか分からなくなりますねw
記述してくださったスクリプトについてもなぜその構文を使うのか(例えば上記のint myCoolTimerID = 10やStartTimer(1, myCoolTimerID)の記述だとStartTimer-ScriptObjectの構文を参考にしているのは分かるのですが、PapyrusのStartTimer-ScriptObjectの構文内にmyCoolTimerIDという関数はないのに、なぜそれが入るのか等)やスクリプト作成時の関数の順序がなぜそうなるのか等。

記述してくださったスクリプトの操作についてはPCの調子が治り次第、試させていただきたいと思います(#^^#)
ありがとうございます!

Re:無題

大量のNPCを歩かせるのにはScriptの方がActiveAIの数を気にしなくて済む分確実なのかもしれませんが、歩行速度や複数の地点を経由させて歩かせるなどの細かい設定が出来なかったり手間になったりすることはあります。そういった点ではAI Packageを使った方が簡単なのかもしれません。
Papyrus Scriptは基本的なプログラミングの知識が多少必要になってきますが、扱いなれてくると様々なことができるようになります。Creation Kit wikiのPapyrusのページを見ているだけでも、できることがいろいろあるので何かのヒントになるかもしれません。

それにしても、参考動画のロボット達は本当にきれいに密集して歩いてましたね。あのワンシーンを撮るためだけに複雑な方法は使っていないと思うのですが、人間のNPCとそれより一回り大きいNPCでは歩く時の距離のあけ方が違うとかもあるのかもしれないですね。
※スパム対策のため、コメント内やその他の項目に「http://」や「https://」があると投稿できません。全角で入れていただくか、URLであることを明記して以降のアドレスのみ入れていただくかでお願いします。 For stopping spam comments, this form doesn't accept the following words, "http://" and "https://".

Author

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

ブログ内検索