忍者ブログ

ファルログ

Home > ブログ > > [PR] Home > ブログ > CK作業記録 > 収集系フォロワーに関する考察

[PR]

×

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

Activateの可能性

魚介類を見るとついつい手が出ちゃうフォロワー……、かわいいです! カジートとかアルゴニアンだとますます、こいつ仕方ないなぁって気になります。なぜか(^^;
普通だと盗みはプレイヤーが指示しなければやらないので、こういうちょっと素行の悪いフォロワーはすごく新鮮です。

AcquireとActivateの動作を把握するのは大変ですね。以前私も取り組みましたが、今でもうまく使いこなせずに何度もProcedure Treeを組みなおしたりして苦労しています。少しでも複雑なTreeを組もうとすると、アイテムの取得効率ががくんと落ちてしまうんですよね。本当に手ごわいです。
掃除人の収集AIもかなり初期に作ったものなので、そろそろ作り直したいと思いつつ、下手に弄って収集効率が落ちたらどうしようと二の足を踏んでます;
記事を拝見して、Activateは問答無用の強力なProcedureだというのを改めて感じました。生きた相手の持ち物欄から直接アイテムをActivateできるとは……。生きた相手から物をとろうと思いついてしまったファル粕さんもすごいです。Procedure:Activateの新たな可能性をこじ開けてしまいましたね? 不壊のピックを持っていたのはメルセル氏だけではなかったようで。

ファル粕さんに教えてもらったスリAI、本当に面白いです。AIのテストをするつもりでも、ブレナインに脱がされた衛兵を見ただけでしてやったりとニヤニヤが止まらなくなり、何一つテストが進んでいないのですが。盗みが見つかるとプレイヤーにも敵意が向いてしまうのが残念ですね。CKでは手を出せないもっと深いところで、そういう仕様になってしまってる気もします。

リアの援護AIもそうですが、シーンやセリフでの演出だけでなくそれぞれのAIでキャラクターの個性が出せるっていいですよね。次期導き手になってしまいそうな勢いのアシスも楽しみですが、この魚介類に目がないアルゴニアンの活躍も楽しみにしています! (ちょっと手のかかる同胞団新メンバーというところでしょうか。暗い鱗の色と鮮やかな喉元の対比がかっこいいです)
Re:Activateの可能性
  • Name: ファル粕
  • (2015/06/14 10:20)
アルゴニアンのフォロワーを初めて作成しました。ジャングルに居そうな「警告色」をイメージし、同胞団員がよく着ている「皮の鎧」と合うようにキャラメイクしてみました。SLFの“ナクマ”さんとテストプレイで訪れていた宿屋で会い、そのまま雇用してしばらく一緒に旅をしていたのですが、彼女の“拳闘”があまりにカッコ良かったので、同胞団の“新メンバー”にアルゴニアンを加入させたい!というきっかけになりました(^^) 規範に厳しいギルドなので、その印象を和らげてくれる、少しやんちゃな存在として活躍してくれるといいんですが…。
獣系種族だと、スクゥーマを飲んでいるとか…物を盗んでしまうとか…悪いことをしても、何故か憎めないところがありますよね!エルフ系も然り…。(そう考えると人間種族が一番損してますね…汗)

>少しでも複雑なTreeを組もうとすると、アイテムの取得効率ががくんと落ちてしまう
Acquire/Activateは、本当に難しかったです…。中でも一番良く分からないのが「ObjectListの更新」でした。Floraの固定タイプのObjectを、どんどん情報を入れ替えて次の場所の収集に移ってもらいたかったのですが…上手くいきませんでした。
また「収集List」を使用した最大の弊害として、Findの検索結果に含まれているList対象外のObjectが収集できなくなるため、検索範囲に一つでも同タイプのObjectが残存している限りは、別タイプ「Ingredient」→「Flora」などに移行できず、次の収集が中断されてしまう問題が、どうしても解決できませんでした。
本来ならば、「全てのアイテムを集められる」ようにした上で、「取ってはいけないものList」を作った方が、精度が高かったのかもしれません。しかし、それを実現できるほどの知識と腕前が無かったため、「もっと良い方法があるのかもなぁ~」と思いつつ…自分の限界を感じて妥協してしまいました(汗)
UNIさんが製作された「掃除人」は、そうした収集の際のつまづきがほとんど見られず、範囲内にある必要なアイテムをほぼ全て回収してくれるので、個人的には今のままで充分に完成度の高いAIだと感じています!…でも、進化した新たな「掃除人」も追加されたら嬉しいなぁ、とファンとしては思います。

>不壊のピックを持っていたのはメルセル氏だけではなかったようで。
こっ…こんなお言葉を頂けるとは…!!!(感涙)実は…同胞団に入り浸るようになる以前は、『盗賊ギルド』にハマっていました。特に『ギルドの仕事』が大好きで、ギルドが繁栄していく様であったり、ギルド棚にコレクションが埋まっていくのを楽しみに、スカイリム各地で罪を重ねておりました…。
一方、今になって思えば…バニラの作りこみに関して、「盗賊ギルド」>>>「同胞団」のギルド間格差をものすごく感じます…。

Activateの汎用性の高さはすさまじいですよね。UNIさんが製作された「製材所の裁断Package」にも、確かActivateが活用されていましたね!!最近ですが…「たいまつの燭台の点灯/消灯」や「ドアの開閉」にも使用できることを知り、驚きました!

Activateに関連した『労働のAI』について、UNIさんに少しご相談させていただきたいのですが…Packageで旅先のウィンドヘルム港で、アルゴニアン達が行っている仕事をさせたいと思っていたところ…あの一帯は何故かSandBoxの領域を広くしても、「皮なめし」や「砥石」を使用せず、「船に乗って休んでいる」だけになってしまいます。また、時々「浅瀬にたたずむ」さんが行っている『薪運び』などをフォロワーにさせたいのですが、CKで彼らの既存のPackageを搭載しても何も行いませんでした…。UNIさんが何かご存知の事がありましたら、是非教えていただきたいです。m(><)m

>スリAI、本当に面白いです。
製作の合間に、UNIさんのテストModのブレナインの様子を見に行くことが増えました!!(笑) 特に、移動しないActorからは鬼のような速度で盗んでます!市場を監視している衛兵が、「DJのスクラッチ」のように盗まれた時の台詞を言いながらフンドシになっていく様子は、いつ見ても最高です!もしこの状態で戦ったら…日頃は幅を利かせている衛兵に対して、臆病なブレナインでも勝機が見出せるかもしれないですね!
私はいつも“作成や活用”の方ばかりに捉われがちで、“不具合やバグの処理”の解決策が思い浮かばない質なので…「スリPackage」のModへの搭載に至るまでには、もう少し検証の時間と考察が必要になりそうですよね。特に目撃されると“プレイヤー”が敵対されてしまう問題の解決が、かなり難しいです。

>それぞれのAIでキャラクターの個性が出せるっていいですよね
本当にそう思います!自作したフォロワーはどうしても口数が少なくなってしまうので、AIや見た目で個性を補ってあげたくなります。最近面白いと思っているのは、『Book』です。作成したフォロワーのキャラクター像に合わせた本を持たせてやると、普段どんなことに興味を持っている人なのか?また、本人が語らずともその人が歩んできた道を想像してしまいます。持たせていてもあまり害にならないので、色々な本を楽しみながら選んでやり、雰囲気アイテムとして搭載しています。持ち物がAIのスイッチとしても機能するので…特殊な技を使わせる時のスイッチにも活用できるかもしれません!

無題

>「皮なめし」や「砥石」を使用せず、「船に乗って休んでいる」だけになってしまいます。
あの一体のオブジェクトはアルゴニアン達の所有物になっているので、他のNPCは使えないと思います。見てみたら、「皮なめしの棚」はシャーヴィー専用になっていました。それぞれ使用する仕事道具が決められているようですね。
薪運びはちゃんと運ばせようとするとScriptをつけなければいけないようですが、時々手に薪がくっついたままになっても構わない程度のゆるさであれば、Scriptなしでも運ばせることができるようです。
薪運びは「CarryAndDropItem」のテンプレートで、専用のFurniture Object「WoodPile」を、薪を拾うWoodPile、薪をおろすWoodPileをそれぞれ直接指定してやるだけで運んでくれます。アニメーションはオブジェクト側についているScriptで制御してくれているようです。念のため、新しく設置したWoodPileでAIがうまく動くかどうか試してみたほうがいいかもしれません。
一般に薪運びのNPC達は、この二つのWoodPileとKeyword「LinkCarryStart」「LinkCarryEnd」で直接リンクが作られているようです。でも多分リンクしなくても、上記のようにAI Package側で直接指定してやれば動きます。遊び半分でダークウォーター・クロッシングに追加した幻のダスターン氏は、ちゃんと薪運びしてくれてました。薪を運んでいる途中でスケジュールが切り替わると、手に薪をくっつけたまま焚き火に当たりに行ってしまいますが; 薪はそのうち消えてくれるので、見た目をあまり気にしなければ問題ないと思います。

盗賊ギルドと同胞団のクエストの差はかなり大きいですよね。メルセルは本当にいい悪役をしてくれましたし、最後の演出も大掛かりだったし。同胞団は……個人的にはいつの間にか蘇ったスコールに頭を抱えた記憶しかない気がします。彼が生き返ると、双子達の人狼病を治すクエストに支障をきたすと聞いていたので。バグのほうが印象深いかもしれません……(-_-;
Re:労働Package
  • Name: ファル粕
  • (2015/06/18 12:25)
UNIさん、いつもアドバイスありがとうございます!!先日は久しぶりにブログを更新しましたが、早速コメントを頂くことができ、とても嬉しかったです!

独自の労働Packageを持つSLFの「アラス」さんや「ヤガシュ」さんは、他のNPCよりかなり多彩な働き方をすることを思い出し、「彼らは薪を割った後にどうやって運んでいたかな…?どうすればいいのだろう?」と、色々と考えていました。当初はSandBoxで自然に使用しているのだと思っていたのですが、「薪運び」の行動は自分が思っていた以上に複雑で驚きました…!UNIさんに教えていただいた方法を試したところ…フォロワーが「薪運び」の動作を開始してくれました!!(感動) 時々、動作が中断されると薪(3)がインベントリに蓄積していくという問題もありましたが…必ず一回目の「CarryStart」のActivateで拾い、二回目の「CarryEnd」のActivateで置く、という行動をWaitなどで中断させないようにすることで、なんとか成立しました。

誰か他の人に先に薪をActivateされてしまうと、拾わなくなってしまったので…誰もその場所を使っていないタイミングに運ばせるか、使われていない薪の所を指定してあげないといけないようでした。夜間になら安全に働かせることができそうです。「ネートレナザ」さんは、自分専用の薪があるにもかかわらず、薪運びをしている様子が見られなかったので、彼の場所を借りることにしました。あの一帯の仕事用具の殆どが本当に…アルゴニアン達の私物として設定されていました!道理で全くFurnitureを使用しない訳です。彼らの縄張りだったのですね…(汗) 船上での仕事器具も「船の所有者」しか使用できないため、ウィンドヘルム港ではDLCでソルスセイムに渡る船の横に着けてある小舟に座ることしかできなかったようです。

UNIさんが最近ブログに書いてくださった、『Sandbox』の記事を改めて読ませていただき、「NPCが専用のObjectを持っている場合もあるのだなぁ、気づかなかった~!汗」とより納得できました。

今回もまた、UNIさんに助けていただきました…。いつも本当に感謝しております!!

追伸
日常Packageの製作がかなり順調です!UNIさんの『SLPackage』のLocationに旅で見つけた好みのロケーションを追加しています。

SLPackageのTravel→Sandoxで移動先で行う「最初の行動」を指定し、そこからさらに「ロケーションに合った行動」をするようにSequenceで「修飾枝」を作ると、各地点ごとにさらに「行動範囲を拡大」することができるので、とても楽しいです!例えば、最初の地点はSLPのSandboxが生かせる「仕事用具やたき火の傍」にし、最後の地点を「ベットのある宿舎」などに設定しておくと、「労働と休憩を両立した一日の行動」が私でも簡単に作成できました!また、「最初に到着した場所が景色が良いのだけれど、Furnitureが無くてフォロワーが佇んだままになってしまうなぁ…」という時も、絶景を堪能した後で、アクティブになれる場所へ移動してもらうと自然に「行動率」がアップして、フォロワーがイキイキする感じです!Locationが30まであったので、一日ごとの行動を作り、ひと月分の行動を「たったひとつのPackage」で設定できてしまえるという、素晴らしい骨格を持ったPackageTempleteですね!!

同胞団の新人、「スレン=ドラ」(彼の名前)は、「自然を愛するアルゴニアン」というコンセプトで製作しています。船や水辺、滝に行くことが多いので、Furnitureがありそうな場所を探すのが大変です…(汗) 余談になりますが、彼は“人狼”に憧れているので、『ファルクリース監獄』や『ブローデッドトマンの洞窟』にも旅をしに行きます!

UNIさんの『進化したシンディング』にも超気になっています…!!(久しぶりに更新キター!!!)以前と同様、一度読んだだけでは私には理解できない“深み”のある記事でした…!これまでの『人狼化』とは違って、さらに「独自性」の高い方法に生まれ変わっていますね~!近いうちに…またじっくりと読みに伺わせていただきますね!!

初めまして!

初めまして、見習いMODDREで錬金術師の鮫島です。
UNIさんのブログの方でちょこちょこお名前を拝見しているので、気になってこちらのブログもちょっとずつ拝見させて頂いております!
そうしたら、以前「フォロワーにパワーを持たせたいなぁ」と思って調べていた時に拝見したブログの方でした。
あの時はお世話になりました…コメントも残さずすみません。
収集系フォロワーは私も作っているので、こちらの記事も大変参考しています!
スリAI、自分は戦闘中にこそこそしつつ敵の装備を剥ぎ取ってくれる追剥AIを作ろうと画策していますがこれが中々上手く行かない…
UNIさんのブログ共々、こちらの方でお勉強しつつ、完成させていきたいです。
同胞団にここまで愛を持ってRPしてる方は見たことがなかったので(というか私は同胞団やってないので)色んなNPCがいるのを見られて面白いです。

自分は意見交換するほどの知識もないので見る専門になってしまいますが、ブログの更新楽しみにしております。

まずはずっと言ってなかったお礼を。

失礼しましたm(__)m

(一応、私のブログの方のURL貼っておきましたが特にRPに特化している訳でもない雑多なお絵かきブログです。もしよかったら程度に…)
Re:初めまして!
  • Name: ファル粕
  • (2015/08/27 18:52)
はじめまして、鮫島さん。同胞団のファル粕と申します!ブログに来てくださってありがとうございます。UNIさんのブログ「方向音痴のSkyrim」で、鮫島さんとUNIさんのコメントでのやり取りを密かに拝見し、私も参考にさせていただいておりました。

少し、自己紹介をさせていただきます(^0^)y

私自身、デジタル社会に疎く…今からちょうど一年前くらいに当ブログを開設するまでは、「HPやブログ」は、「作るものではなく、読むもの」だと思っていました。自信が無いため、消極的であり、ひっそりと…スカイリムをプレイしている方のブログを拝見しつつ、コメントも特にしていませんでした。

CreationKitを開始してから半年くらいは、知識が無さ過ぎてほとんど何もできずに、歯痒い日々を過ごしていたのですが…ある日突然、「浮かんだアイディアを具現化したい」という衝動に駆られ、勇気を出して色々な方のブログにコメントするようになりました。その後、先輩Modderの方々やUNIさんのアドバイスに助けていただきつつ、今こうして楽しい製作ができる日々を送れています。

元々は、個人的な記録のために作成していたブログでしたが、徐々に読みに来てくださる方が増えてきて、心境に変化が。そして最近では…「どんな些細な事でも、何かリアクションがあると気分上々↑↑になる」という喜びを知りました。

>同胞団にここまで愛を持ってRPしてる方は見たことがなかった
同胞団が完璧な集団であったら、きっとここまでのめり込むことは無かったと思います。あくまで個人的な見解ですが…バニラの状態のままだと、『人狼化』を得る目的以外で、同胞団というギルドに積極的に絡んで行こうとするプレイヤーは、かなり少ないような気がしています…(汗) 別のQuestに誘導されて、仕方なしに入団するケース…などなど。ブログ開設当初は、Modを作って『同胞団を変えるんだ!!』という、強い(?)動機があったにもかかわらず、魔法の製作にのめり込んでしまい…そこから3か月くらいはずっと同胞団とは、あんまり関係ない『魔法耐性の検証』のようなことをやっておりました。今年に入ってから、以前よりもCKに慣れてきたこともあり…本格的に『同胞団拡張Mod』に取り掛かり始めた感じです。

>(というか私は同胞団やってないので)色んなNPCがいるのを見られて面白いです。
そうなんです~。意外に色々なキャラの濃い面々がいるのです!!(必死) でも、戦闘や能力の設定に個性が乏しいため…わざわざ雇う必要性も感じなかったり。そして、入団しなければ…何の関わりも無い、敵でも味方でもない、“中途半端な存在”になってしまっているんですよね…。鮫島さんをはじめとする『同胞団やってない派』の方々にも、「あれ?同胞団がこんな所に放浪している!」とか、「戦闘の相性、意外にイイね!!」と興味を持っていただけるような、「自作Mod」を完成させるのが…私の目標です!

>敵の装備を剥ぎ取ってくれる追剥AIを作ろうと画策
ワクワクするアイディアですね!敵を翻弄できる、頼もしいフォロワーが誕生しそうです。戦闘中となると、スリの動作時にフォロワーが無防備になりやすい(防御不能&よろめきに弱い)ので、相手が“隙を見せた瞬間だけを狙うAI”にするのが…かなり難しそうな予感がします。

鮫島さんの『タバスコ精米所』に訪問させて頂きました!「tumblr」の文化は初めてだったので、読み方にまだ慣れていないのですが、自分でイラストを描けてしまうなんて…すごい!!(美的感覚に欠ける私には、羨ましい才能です。) 楽しいデザインの数々とオリジナルフォロワー達のショートストーリー。美しいSSの撮り方や構図は、拝見していてすごく勉強になります! 「錬金術師のレニィ」さんと「アルゴニアンのウラジミィール」さんが、メインキャラでしょうか? 2人ともロアフレンドリーで渋カッコ良いですね!!

実は…鮫島さんと私には“共通点”があります。私もスカイリムの「錬金術」に興味があるので、頼りになる「錬金術師のフォロワー」を一人作ってみたい願望があります。自作Modが一段落したら…また「ポーションの実験」を再開しようかな~?と計画しています。その時は、是非…議論の相手になっていただけたらと思います!!

はじめまして

はじめまして、こんばんわ。セリと申します。
収集フォロワーを作成して煮詰まっていたところこちらの記事に辿りつきました。
IsInList、素晴らしいです・・・!
自作のフォロワーの試験運用中に、アイテム扱いではないドラウグルの兜を
奪ってしまう瞬間を目撃してしまい、なんとかFindするアイテムを絞れないか
悩んでいました。
取得の方で制限をかける・・・出てこなかった発想です。
そしてスリ! まさかNPCにスリさせちゃうなんて、すごいです。
無理だろうと頭から諦めていたんですが、盗賊プレイをしているので
うちの子にもスリさせたいなぁと欲が出てしまいました。

他の記事も拝見している途中なのですが、私が諦めた弓で回復するヒーラーさんも
こちらではしっかり働いていらっしゃるようで・・・。
ファル粕さんの記事を読んでいて、私は諦めるのが早いと猛省しました。
自分の力不足を嘆きつつ、色々お勉強させていただきます!
友人もファル粕さんのブログをコッソリ読んでいるらしく(教えて欲しかった)
2人合わせて今後も楽しみに読ませていただきます。
Re:はじめまして
  • Name: ファル粕
  • (2015/10/31 03:22)
はじめまして、Seriさん。同胞団で活動してるファル粕と申します!

折角ですので、勝手に自己紹介させていただきます。
ロアフレンドリーなModを好み、主人公の成長よりもNPCやフォロワーのAIへの興味を持っている者です。低スペック環境のため、ブログのSSが大変お見苦しい物となっている事も、当ブログの特色の一つになっております(汗) 戦士としての活動意欲に欠けるバニラの状態を改善し、「同胞団たちが躍動するMod」を作ることを目標にしています。

>アイテム扱いではないドラウグルの兜を奪ってしまう
収集するアイテムのTypeによっては、そういったことも起こり得るのですね!Seriさんのフォロワーの方々は、拾った“ドラウグルの兜”をちゃんと被ってくれるのでしょうか?それとも、何らかの不具合が…? 私は…収集AIに関して、ほぼ“食べ物関係”のTypeしか試した経験が無いので、装備や防具の方にはまだ理解が不十分だと感じております。『IsInList』を用いた方法は、目的のアイテムを絞り込んで収集できる分、他のTypeのアイテム収集率が落ちてしまうという弊害もあるようです。しかし、敵専用の装備はフォロワーなどの人型NPCが収集した場合に、一部の表示が不自然になるバグがあるようなので、「余計な物を収集するよりは、種類を限定したり効率が落ちた方がまだマシ」と判断できる状況においては、活用できそうな方法だと思われます。
Seriさんの問題が解決に向かわれると良いですね~!吉報をお待ちしております(^^)

>NPCにスリさせちゃう
フォロワーがスリをした所を初めて見た時は…「目を開き影とともに歩まん事をーーー!!」と画面に向かって叫びました(笑) 私も長らく無理だと思っていましたが…これはまさか……です!
当初は、フォロワー同士でのアイテムの“奪い合い”を試した所から始まった取り組みだったので、全く気付かなかったのですが…コメントをしてくださった方々の意見から、自分には想像もつかなかったような斬新な事にも使えるのだと知り、私自身がコメントを頂くたびに皆様から製作上の色々なアプローチの仕方を、そして新たなアイディアのヒントを学ばせていただいております。
こちらの方法も完全ではなく、「被害者の敵意や罪の責任が無関係なプレイヤーに向いてしまう」という、仕様上の問題を抱えています。おそらく…ですが、「プレイヤーとスリNPCが(目のマークで)誰にも発見されていない時」に使用すれば、上述した問題は起こらないようです。でも、スリの醍醐味である“スリル”は失われてしまう(確実に盗めてしまう)ので…そのあたりに課題が残されています。

>私が諦めた弓で回復するヒーラーさんもこちらではしっかり働いていらっしゃるようで
ブログの記事では、「サクッ!」と矢で小気味よく、ポーションを仲間の体内に注入してくれている様子に見えますが…やはり従来の方法では、まだ未完成な感じが心残りです…。記事を書いた頃は、掲載するのもお恥ずかしいくらい、AIPackageの事を理解せずに製作していたので…ヒーラーの挙動としては、かなり安定性を欠いています。弓をUseWeaponで使って敵以外の対象を狙うのは、途中で「硬直」してしまう問題が大変悩ましいです。あの方法だと、割合的には半分くらい動作中に硬直してしまいます。Seriさんのフォロワー(Azhさん)の硬直率は、どうなのかも気になります。(Projectileの試行錯誤がすごく興味深いです…!)
実は…記事としてはまとめておりませんが、製作の熱が冷めた訳では無く…弓ヒーラーの取り組みは、その後もずっと解決策を練っていて、今ちょうどもう少しの段階まで来ています。他の製作の途中で、『硬直の原因』と『硬直を外す方法』の手掛かりを得られました。―――“よろめき”と“装備品の着脱”が鍵です。
遅筆なため、いつになってしまうかは分かりませんが、(できれば)今年中には…硬直率を削減した“改良バージョン”の記事を書く予定なので、その際は是非、こちらのテーマにも共通の目的があるSeriさんと意見を交換したいです!!

追伸
SeriさんとLilyさんのブログへのURLを教えてくださって、ありがとうございます。早速、訪問させて頂きました。個性的な役割を持つフォロワーの方々と、各々の持つ能力が魅力的に感じました。中でも“Azhさん”と同胞団のリアは、気が合いそうです。弓術を用いて仲間をヒーリングできるよう、互いに腕を磨いていきましょう!
フォロワー専用のお部屋まで製作されているなんて…素敵ですね。フォロワーへの愛とこだわりをかなり感じます♪ 私もブログを参考にさせていただきながら、一から部屋を作る技術に挑戦してみたいです。それから、プレイ担当とMOD担当を分業なさって、お二人で一緒にスカイリムを楽しむスタイルは…とても新鮮でした!プレイする立場から常に客観的な意見を得られて、Modの製作へ即座に改善案や要望が反映できそうですね。私はいつも“一人の世界”にハマりがちなので、思わぬ落とし穴や間抜けなハプニングに、だいぶ後になって気付くことも……よくあります。ですので、こうして時々ブログにコメントを頂けることは…大変嬉しいです(^^)/

収集系フォロワーに関する考察

ヴィルカスとアシスが「SLFollowers」のメンバーたちと『赤鷲伝説』を探る冒険を開始してから早いもので約5ヶ月…当初は「アシスの成長を描き、彼をパワーアップさせるModを一つ作る」だけの簡単な予定であり、まさかこのような長旅になるとは予想していませんでした。Mod製作を進めているうちに「こんな機能があったのか!」、「こっちも追加しよう…」と要望が増えていくにつれ、ずるずると製作ペースが長引きつつあります。結果として製作は複雑化。頭はますます鈍くなり、息抜きプレイに逃避するという始末…。そんな最中、何の気兼ねもなくプレイをしている時は、日頃バグの解決法に悩まされている時よりも発想が柔軟になるためか、今まで気づかなかったようなことや新たなアイディアがパッと閃いたりするもので…「さらにこの能力も追加しよう!」などという事態に…。まさに、負の連鎖!!

ファ「おいおい…待ってくれ。鎧が重くて溺れそうだ……バグにもな(汗)」



旅している途中で…ふと思ってしまいました。荘厳な滝、流れる水のせせらぎ…「嗚呼、こんな場所でフォロワーと水辺で“魚獲り”でもできたらなぁ…」と。最近は安らぎと癒しを求めて、戦闘から離れてグラインダーで小麦を挽いたり、畑を耕すフォロワーの姿をただただ眺めたりしています。

フォロワーに「収集行動」をさせるためには、AIPackageのProcedure「Acquire」「Activate」を使えば可能らしいのですが、このProcedureの扱いはかなり難しく、以前に挑戦した時には近くにアイテムがあるのにその場に佇んでいるだけで拾ってくれなかったり、収集の効率がやたら低かったりという問題が発生し、すっかり心が折れてしまいました。

Nexusにアップされている「The Skyrim Sweepers and The Sweep Follower System」というModを導入すれば、素晴らしいAIで収集行動をしてくれる『スカイリムの掃除人』たちが追加されるため、今まで収集に関しては掃除人達に全てをお任せしていました。

アシスのMod製作の過程で、AIPackageの製作に取り組み始めてから、少しづつアドバイスをいただきながら、AI製作のノウハウを覚えました。若干の自信も取り戻しつつあるので…『収集Package』の製作に再びチャレンジしてみることにしました。

【漁業AIPackageの自作】

Packageの構想ですが…先に述べたように「フォロワーと“魚獲り”できるPackage」を目指します。収集に関して以下の3つの制約”を設けてみたいと思います。

・主に『水辺のロケーション』で使用できる。
『海産物』以外のアイテムは拾わない。
・プレイヤーが何らかの『命令やサインを出した時』だけ、漁業AIがONになる。

【Targetとなるアイテムの種類】

複数の種類のアイテムを収集させるためには、「Acquire」や「Activate」のTargetに単一の対象を一つ一つ指定するよりも、Procedure:「Find」を用いて周囲のアイテムを幅広く検索し、取得した検索結果であるObjectListを指定するのが便利みたいです。

Findする際にObjectListに集めるものの種類をTargetSelectorで指定するらしいのですが、『海産物』というのはどんなタイプに属しているのかが不明でした。そこで、CKのFilterで地道にどのアイテムが何に分類されているのを確認していきました。

タイプ別の『海産物』的なアイテム(Object)としては、

<Ingredient>シルバーサイド・パーチやヒストカープなどの小魚、マッドクラブの殻、ノルド・フジツボ、パール、スローターフィッシュの卵・鱗

<Food>貝の肉、サケの切り身、サケのステーキ、スローターフィッシュの焼き身

<Flora>貝、サケ(DeadSalmon)、サケ(FXAmbWaterSalmon)、ノルド・フジツボの群生、スローターフィッシュの巣

<Activator>サケ(CritterSalmon)、シルバーサイド・パーチやヒストカープなどの小魚

色々なタイプの『サケ』が居ました…。どれを指定すれば良いかが分かりにくいと思ったのですが、後々重要な違いがあることが判明しました。

※特に『サケ』と『小魚』は同じような見た目をしていても何種類もタイプがあり、出現するロケーションにいるタイプが異なる場合、思い通りに収集できないことがあるので、その時にはこちらのケースを疑った方が良いかもしれません。



左上がActivator(Critter)。右がFlora。左下がFoodです。Mfgconsoleで確認しなければ、パッと見ただけでは識別は難しい…CritterとFloraの見た目の違いは、正直分かりません(笑) 陸に引き揚げられていて“活け締め”になっているのは確実にFloraですが、リフテン水産の水槽を泳いでいるのもFloraなので…。Ingredientは水に浮く性質があるようです。小魚などは見た目は同じですが、「水に浮かんでいるな~。あれは死んでる方(錬金素材)か…」とすぐに見分けられる良い指標です。

【収集できない時の原因】

集めたい種類別にTagetSelectorを指定して、FindをSimultaneousで並べ、全て一気に検索し、ObjectListに挙がった物をActivateで無作為に収集させるテストをしたところ、特定のタイプのみを収集してしまい、指定したはずのアイテムを網羅することができませんでした。例えば、Ingredient(錬金素材)は拾えても、Food(食べ物)は拾わなくなったりするという状態です。一つずつProcedureを追加しながら確認していくことで、原因が見えてきました。

収集に関する各Procedureの違いは、AIの巨匠・UNI様のブログ「方向音痴のSkyrim」の記事「スカイリムの掃除人04」で大変詳しく考察されており、読みながら製作と疑問点の検証を行いました。

まず、基本中の基本であるIngredient(錬金素材)ですが、これはAcquireでもActivateでも集めることが可能でした。Food(食べ物)やFlora(自然の恵み)なども同様に、収集できるタイプのようでした。Activatorに属する「サケ」や「小魚」も可能です。以上の結果から、「Acquire」と「Activate」はどちらを使っても、目的のアイテムをすべて網羅することが可能だということが分かりました。収集が上手くいかない時はProcedureの選択を間違えたわけでなく、ProcedureTreeの構造に問題がある可能性が濃厚になりました。

【Procedureの並び順と収集効率】

現在のPackageです。4つのFindでObjectのタイプ別に検索させます。Sequenceによって、見つけたアイテムを上からタイプ順にAcquireしていく仕組みです。



Findを一回して、Acquire/Activateで収集する。このような単純なケースには該当しない問題ですが、今回のように収集させたいアイテムが数種あり、様々なObjectのタイプにまたがっている場合には、Findを複数組み合わせて検索しなければならない場合もあります。その際に、非常に重要になってくるのが「並び順」です。こちらも、UNI様のブログの「スカイリムの掃除人07」を参考に設計しました。

「Ingredient」、「Food」、「Flora」、「Activator」をどのような順番に並べるかによって、収集の効率が大きく変化しました。FindのTargetSelectorでこれらのObjectを検索するように指定した場合、Acquire/Activateで収集した際に「Objectが完全に消失する場合」と、「Objectの土台が残る場合」の二通りのパターンが影響してきます。「Ingredient」と「Food」は前者に該当します。一方、「Flora」は後者に該当します。そして、「Activator」はいずれに該当する場合も存在し、決まっていません。具体例を挙げてみます。

ロケーションは、“淑女の石碑”です。…湖底の沈没船で漁を行います。



例えば、上から順に①「Food」、②「Flora」、③「Ingredient」、④「Activator」とした場合に、どのように収集していくか観察しました。プレイヤーはファルカス、アルゴニアンの方がフォロワーです(ややこしいですが…)。Procedureの上にあるものほど優先度が高くなるので、まず周囲にある「食べ物」を全て拾います。この場所には食べ物が落ちていないので、仮に“リンゴ”を浮かべてやると、それを何より優先して拾いに行きます。



①は消失するタイプなので、拾われればすぐに消えます。すると次に「自然の恵み」を採りはじめます。画像では、ノルド・フジツボの群生、貝、スローターフィッシュの巣などが該当します。②は土台があるタイプなので、Findで対象を見つけ、Acquire/Activateで収集し終えた後も、フォロワーはその場所に気を取られて動かなくなります。この場合には、TravelやFlee、Followなどの移動系のProcedure」を使用してその場から立ち去るようにしなければ、次の収集を開始してくれなくなります。Findで選ばれた検索結果である一つの「Flora」を採っただけで、収集がストップしてしまうことを意味します。上述の「移動系Procedure」を駆使して、プレイヤーが一生懸命フォロワーを誘導したり、偶然①や②が近くに無い状況の時だけしか、③や④は拾えません。収集効率の悪いProcedureTreeの構造です。

今度は、上から順に①「Ingredient」、②「Food」、③「Activator」、④「Flora」に変更してみます。陸上と異なり、水の中というのは意外に①や②が少ないです。魚も植物もまだ“生きて”います(錬金素材ではない状態)。最初に③のサケやヒストカープなどの小魚を獲りに向かいます。



この周辺に「Activator」に属する“トンボ”や“鉱脈”などが存在している場合には、そちらに気を取られる可能性もあります。しかし、小魚やトンボは収集の際に「Objectが消失するタイプ」なので、一匹収集するごとに別のTargetの元へ向かってくれます。そして周囲の獲物を全て獲り終えると、④に移行しフジツボなどを集め始めます。並び順を変えるだけで、収集効率が格段にアップしました。

上述のようなProcedureTreeは、『水中』のロケーションに適した並び順です。「陸上」の場合には、「Ingredient」や「Food」や「Activator」が多く存在しているので、「Flora」を先頭に持って来るのが最適な場合もあります。これに加えて、樽の中「Container」に入っている食べ物なども検索の対象に含まれていました。収集させるロケーションと、アイテムの種類によって、Procedureの並び順には気を配る必要がありそうです。

【特定のアイテムだけを収集する方法】

なかなか色々なものを収集できるPackageに仕上がってきました。漁業Pakcageの骨格が作成できたので、Findしたものを実際に収集させるテストに移りました。…すると、やはりProcedureの並び順の工夫だけでは収集効率は十分とは言えませんでした。Findで検索した結果の括りが大きすぎるため、水辺にいるトンボや花など余計なものに気を取られてしまい、目当ての魚介類は眼中に無いケースも、結構目立ちます。(これでは“魚獲り”じゃなくて、“山菜採り”です…汗)

フォロワーの観点からだと…『水辺』というロケーションの分類や『水中』という条件判定があれば、位置条件で収集するアイテムをある程度絞り込めたり、ConditionsでAcquireのタイミングを計ったりできそうですが、いずれも見当たりませんでした。別の方法を考えなければならないようです…。

アイテムの観点からだと…IngredientやFloraなどといった分類は、登録されているObject数が多いため、“海産物だけ”限定して集める場合には範囲が広すぎます。また、特定のアイテムだけを収集させるために、一つ一つのObjectをPackageDataに登録していくのも、種類によっては気が遠くなる作業になってしまいます。…収集効率を高め、作業量も減らせる良い解決法はないだろうか?と悩みました。そこで、『収集してほしいアイテムのList』を新規作成してみました。



このListに上述した<Ingredient>、<Food>、<Flora>、<Activator>から『海産物』に属するObjectだけをもれなく追加していきます。後は、ProcedureのConditionsで『Isinlist』を用いて、「FindしたObjectListのアイテムが、“収集List”に入っている時だけAcquire/Activateする」というのを試してみます。

確認してみると…!お~っ?!色々な誘惑(Object)がある中で、ちゃんとリストにある物だけを拾っています。奇跡的に成功している…!!余計な物の方へAcquire/Activateしに移動してしまうことを回避でき、収集効率が少しアップしました!…「水中」だけでなく「陸上」での動き方も、試しに観察してみます。

リフテン・宿屋「ビーアンド・バルブ」にて。

 

副次的な効果として…陸上で起動した場合には、「周囲にある“食べ物”を積極的に集める」という“おまけ機能”も誕生しました!



AcquireのAllowStealingを「True」にし、Actorのモラル設定で「窃盗」を許可してある場合は、宿屋などに置かれている“食べ物”に反応し、積極的に盗みます。この場合にはフォロワーではなく、プレイヤーが見つかっているかどうかが犯罪判定に影響してくるようです。プレイヤーが姿を隠して持ち主に発見されていない限りは、罪に問われずフォロワーに食料を調達(窃盗)させることが可能です。



ファ「はしたない…!!!(後で新入りには“同胞団の方針”を教えてやらないと…汗)」

気になる点として…所有権の無いコンテナに入っている食べ物は、Acquireでは通常は収集することが可能なはずですが、リストを使って限定した場合には、手を出さなくなりました(度を超えた窃盗を回避できる一方、収集量が減るのが残念です)。水辺では“生魚”を集め、陸上では“魚料理”を集めるという、新鮮な魚に対するこだわりや主義を感じるAIに…(笑)

このようにして、『海産物のみを選択的に収集するAI』にすることができました。一方、いくつかの問題点もあるようです…。

あくまで見つけた物を『収集するかどうか』の条件判定なので、Floraタイプに多く見られる、収集した際にその場に土台が残る物の場合(例:スローターフィッシュの巣など)、一度収集した場所に気を取られてしまう問題の方は避けられません。Floraが多い場所(例:リフテン水産など)ほど、収集効率が下がります。

最大のデメリットとして、集める物をリスト化した分、リストに登録されていないものは集めらなくなります。「Modで追加される海産物は“収集対象外”」になってしまうという心残りもあります…。

【AIのスイッチを作る】

最後に『漁業AI』を起動させるためのスイッチの仕組みを設定します。
どんなスイッチがいいだろう?と考えたのですが…スカイリムのバニラで使用頻度の低い、そしてあまり脚光を浴びていないような、このAIにとってピッタリな魔法を発見しました。―――『水中呼吸』です。



Conditionsに「HasMagicEffect」で「Spell」、「Ench」、「Alch」のEffectを設定。プレイヤーが「水中呼吸の呪文を使用した時」、「水中呼吸の付呪装備を身に着けている時」、「海探の薬を飲んでいる時」に、フォロワーが“漁業AI”を起動します。



水中で呪文の効果が切れてしまった場合には…「水中呼吸の付呪品を装着する」か、「海探の薬を飲む」ことで、収集を再起動してくれます。フォロワーはたまに息継ぎをしに水面に浮上し、溺れたりしないようなので…これで長時間、潜りながら一緒に漁をすることができます!!また、水中ダンジョンなどの敵も多い危険な場所では、プレイヤーが水中呼吸の効果を得るたびに、フォロワーが悠長に魚獲りをはじめてしまわないように、フォロワーに『呪文の書:水中呼吸』を持たせた時のみ発動するように設定しておきました。書を預かっておけば、魚獲りをしなくなります。

【漁業AI完成!(仮):総括】

テストプレイでは、ロケーションにもよりますが…なかなか良い効率で“魚獲り”を行ってくれています。水中は陸上ほどはアイテムが混在していないので、他のものに収集を阻害されることが少ないように感じます。製作の設計で掲げた“3つの目標”はクリアできたかな…と思います。以前はフォロワーとして連れて歩いていても、水中ではSandboxが作動できないし、指示も会話も出せないため、フォロワーは必然的にただ後ろを追従するだけの行動に限られてしまい、プレイヤーのみで捜索活動してるむなしい感じがしていました…。『漁業AI』を搭載したことで、そうした寂しさが少し軽減されました。湖や海底の沈没船など暗く冷たい雰囲気の場所でも、フォロワーと素潜りできると…自然に探索意欲が沸いてきます!マップの端っこにある、“沈没船”などを冒険しに行ってみようと思います。今回は“海女さん”のようなPackageですが、色々とアレンジを加えて、“海賊”や“海底探索”の行動に応用するのもおススメです。


【考察:AcquireとActivateの違い】

Package製作を通して、改めて「AcquireとActivateってどう違うのか?」という疑問が生じると共に、テストプレイをしている時に、「網羅したはずなのに、収集できない場合がまだある?!」という、思わぬ盲点を発見したため、収集系Procedureの機能の違いについても考察してみることにしました。

Acquire「対象のObjectを自分のインベントリに入れるという機能」があるようです。しかし、Acquireではレバーの操作、鎖などをアクチベートして引いたりできないことから、Acquireには「Activateのように対象そのものに働きかける機能は無い」ということが予想されます。また、Acquireでインベントリ内に入れることのできるアイテムの種類も決まっていて、おそらくUIに表示される分類(私の場合はSkyUIを使用しています)のオブジェクトしか入れられない仕様になっているのだと思います。

一方、Activate「対象そのものに働きかける機能」があるようです。プレイヤーの場合、クロスヘアで対象を選択し、Eキーを押した時と同じような機能です。また、フォロワー自身にクロスヘアを合わせた状態でEキーを長押しした場合、間接的にフォロワーのActivateの動作をプレイヤーが操作できるので、これとも同様の機能と言えます。Activateは「対象のObjectを自分のインベントリに入れる機能」があるわけでないのですが、一部のObjectはターゲティングした状態でEキーを押すだけで取得できる仕組みになっているため、本来は「収集」のためのProcedureではなかったとしても、自然の恵み(Flora)や食べ物(Food)なども一種のアクチベート動作によって収集できるのだと考えられます。

もしこの考察が正しいとすれば、Findで周囲を検索し、Acquire/Activateで「他人のインベントリから物を盗むことも可能」なはずです。―――しかし、それは不可能でした。一体、何故なのか?…ある仮説を立ててみました。

仮説:「ActorタイプのObjectからはAcquire/Activateするだけでは、簡単にアイテムを収集することができない⇒“何らかの防壁”が存在している(プロテクト説)」

この仮説を裏付ける根拠について考えてみます。例えば人型NPCやマッドクラブやスローターフィッシュは、「生きているObject(Actor)」です。彼らをAcquire/Activateするとどうなるか?NPCの所持品、マッドクラブの殻やスローターフィッシュの鱗が、盗める/手に入るのでしょうか?―――答えはNOでした。これまではフォロワーの視点で考えてきましたが、一旦プレイヤーに置き換えてみます。

まずは「Activate」です。
「フォロワーやNPCのActivate」=「プレイヤーがターゲティングしてEキーを押す動作」なので、おそらく「相手に話しかける」という行動にしかなりません。しかし、彼らが絶命した場合は、生きたActorとしての機能が解除され、死亡したActorの扱いとなり、「対象のインベントリを開く」という機能に変化します。しかし、この場合のように、単にインベントリを開くだけの「Activate」では、アイテムを取り出すのは不可能であることが示唆されます。FloraやFoodを思い出してみると、いずれも「ObjectがActivateされる→Activateした人のインベントリに1つアイテムが入る」という一対一の関係である必要があったためです。―――最初はそのように推測していたのですが、実際は予想と違っていました。Actorの死体の場合は、一種の「Container」として扱われ、Eキー操作と同様に「Procedure:Activate」でアイテムを収集することができるようです。(Acquireでも可能でした)

そうした背景には、「フォロワーが死体に触れられない現象」も影響している可能性があります。フォロワーを間接的にEキーで操作し、死体をアクチベートさせようとすると「嫌だ、ありえない」などと拒否します。マッドクラブやスローターフィッシュの死骸でさえも…気味悪がります(汗)



宝箱などのコンテナの場合、中に入っているもの全てを素直に収集してくれますが、死体コンテナにはフォロワーが嫌う“特殊なプロテクト”がかかっているようです(死体に限らず生きているActorも含めて、プロテクトされている可能性があります)。そう考える理由は、一部のObjectにフォロワーが決して手を出せないようにプロテクトされているものを発見したからです。

具体例として、ロケーション「反逆者の積み石」にある中央の祭壇には、“赤鷲の剣”を差し込むスロットが付いています。このスロットは「dunRebelsCairnSwordActivator」という特殊なActivatorが搭載されており、剣を差し込むと洞窟の隠された通路が開く鍵になっています。また、剣自身もQuestの終了と共にパワーアップするという凄く凝った仕組みです。



…話が脱線してしまいましたが、このActivatorには、「defaultBlockFollowerActivation」というScriptによって、フォロワーがActivateできないように“保護”されています。剣を持たせたフォロワーに祭壇をActivateさせる専用のPackageを設計して、プレイヤーが決して手を下さずに、隠し通路の奥に控える“赤鷲”を「フォロワー達だけの力で始末させよう」と企んだこともあったのですが…失敗に終わりました。この経験から、実はActorにはActivateに対するプロテクトがどこかで設定されているのでは?という考えに至りました。(現在特定はできていません…泣)

上述したことを踏まえると、Actor(Object)の死体からアイテムを収集する時には、Actor自体をActivateしているのではなく、「中に入っているアイテム自体を直接参照し、Activateして抜き取っている」ことになります。Actorのプロテクトをかいくぐって、目的のアイテムに接触する…という感じでしょうか。

次に「Acquire」です。
プレイヤーはフォロワーやNPCと異なり、周囲に存在するアイテムを一気にまとめて収集することができません。必ず一個一個です。しかし、「Acquire」に非常に良く似たキー操作が用意されています。類似の動作として、「Rキー」で対象のインベントリ内にあるものを全部一気にとることができます。その場合には最初にEキーによるActivateが必須になります。

Acquire的な機能が無い理由としては、「プレイヤーがターゲティングできるクロスヘアが一カ所しかない」からだと思います。フォロワーはある意味超人であり、見えないクロスヘアを無数に複数の対象に同時に合わせられるのでしょう…(汗)先程の「Activate」での考察も加味すると、プレイヤーが行っている動作をNPCの動作で表した場合、「ContainerをActivate→Object(Item)をAcquire」に置き換えることができそうです。

【生きているNPCから物を盗む方法】

AcquireとActivateの考察をしている最中に、「絶命した対象からしかアイテムを収集できないのだろうか?」、「生きているNPCからフォロワーが物を盗めたら面白いのにな~…」と思っていました。「死骸から集めるのも困難なのだから、生きた対象から集めるのはもっと難しいのだろう…」という予想はしていました。諦めの悪い筆者ファル粕は、盗みを働く時の条件について可能な限りの考えを巡らせていたところ、ある点に気が付きました。―――プレイヤーが盗みを働く時には、「隠密体勢」になる必要があるということです。

普通にEキーでアクチベートするだけだと、人型NPCには「話す」という行動にしかなりませんが、隠密体勢になってEキーを押すと、赤い字で「盗む」と表示されます。このことから、もしやフォロワーにとっても同じ条件が必要で、「隠密状態で対象をアクチベートすればスリが可能になるのでは?」と考え、試してみました。

しかしながら、その考えを反映して最初に作ったPackageでは、フォロワーはスリを行ってくれませんでした。当然と言えば、当然の結果です。“生きているActor”は特殊な状態にあるObjectであり、Findで盗む相手を検索してその対象をアクチベートしただけでは、前述のようにFloraやFoodと違っていて、収集行動とは等しくないからです。フォロワーの動き方を観察していて、直感的にですが…「対象にはActivateで働きかけられている」けれども「盗るべきアイテムが指定されていない」ことが原因になっているような感じがしました。

そこで、「Actorを検索して接触する行動」「目的のアイテムを探して収集する行動を合体させてみることにしました。

スリPackageの試作。



第一段階は、「Actorを検索して接触する行動」です。Findで「ActorType:Any」を検索し、ObjectListに入れます。PackageのFlagsの「AlwaysSneak」に☑を入れておき、Findで取得したObjectListをTargetにして隠密状態でActivateさせます。例えると、「ターゲットのポケットに手を入れる(コンテナを開放する)」ようなイメージを想定していました。

第二段階は、接触したActorから「目的のアイテムを探して収集する行動」です。Findで探したいアイテムを指定します。後から誰の持ち物かを追跡できるよう、テストプレイでは「Key」を選択していました。「個人のNPCの鍵」というのは一種のレアアイテムなので、テストには便利です。FindのSearchLocationは、第一段階で取得したObjectListを指定しておきました。

あまり期待せずに、「漁業Package」と一緒に「スリPackage」としてフォロワーに持たせて“リフテン水産”でテストプレイをしていたところ……

(…タタタタタッ……)



―――「ファッ!!?」 (…ササッ)



フォロワーが水槽の様子を見に来た「好青年・ヴァリンドル」の背後に近づいて行きます。その瞬間……(スッ!!)

 

ヴァリンドル「…卑しいスリめ!!!」

…狭い空間に怒号が響き渡り、敵対しました。一体何が起きているんだ?と思いましたが…時すでに遅し―――

(…ブクブク×2)

ファ「ぎょっ…ギョ×3~っ…漁民がッ…魚の餌にィ……ああ゛っ…!!」



恐る恐るヴァリンドルの懐を調べてみると、彼のインベントリから自宅の鍵が消えていました。

ファ「そんな!?まさか!!?…ある……(汗)」



…フォロワーのインベントリに、入っているではありませんか!

『スリPackage』誕生の瞬間でした!生きているActorからもアイテムを盗むことが可能だったのです!!

まだ粗の多い方法ではありますが…新たな手法として、様々な製作に応用できる可能性を秘めています。現在の“スリ成功率”は五分五分といったところです。筆者自身にも仕組みと概要が未だ良く掴めずにおります。もし、このブログに訪れてくださった方の中で、AIの謎に関して興味を持って下さった方や新たな発見・情報等がありましたら、是非コメントを戴けると嬉しいです。 byファル粕

拍手[6回]

PR

Comment4 Comment

Activateの可能性

魚介類を見るとついつい手が出ちゃうフォロワー……、かわいいです! カジートとかアルゴニアンだとますます、こいつ仕方ないなぁって気になります。なぜか(^^;
普通だと盗みはプレイヤーが指示しなければやらないので、こういうちょっと素行の悪いフォロワーはすごく新鮮です。

AcquireとActivateの動作を把握するのは大変ですね。以前私も取り組みましたが、今でもうまく使いこなせずに何度もProcedure Treeを組みなおしたりして苦労しています。少しでも複雑なTreeを組もうとすると、アイテムの取得効率ががくんと落ちてしまうんですよね。本当に手ごわいです。
掃除人の収集AIもかなり初期に作ったものなので、そろそろ作り直したいと思いつつ、下手に弄って収集効率が落ちたらどうしようと二の足を踏んでます;
記事を拝見して、Activateは問答無用の強力なProcedureだというのを改めて感じました。生きた相手の持ち物欄から直接アイテムをActivateできるとは……。生きた相手から物をとろうと思いついてしまったファル粕さんもすごいです。Procedure:Activateの新たな可能性をこじ開けてしまいましたね? 不壊のピックを持っていたのはメルセル氏だけではなかったようで。

ファル粕さんに教えてもらったスリAI、本当に面白いです。AIのテストをするつもりでも、ブレナインに脱がされた衛兵を見ただけでしてやったりとニヤニヤが止まらなくなり、何一つテストが進んでいないのですが。盗みが見つかるとプレイヤーにも敵意が向いてしまうのが残念ですね。CKでは手を出せないもっと深いところで、そういう仕様になってしまってる気もします。

リアの援護AIもそうですが、シーンやセリフでの演出だけでなくそれぞれのAIでキャラクターの個性が出せるっていいですよね。次期導き手になってしまいそうな勢いのアシスも楽しみですが、この魚介類に目がないアルゴニアンの活躍も楽しみにしています! (ちょっと手のかかる同胞団新メンバーというところでしょうか。暗い鱗の色と鮮やかな喉元の対比がかっこいいです)
Re:Activateの可能性
  • Name: ファル粕
  • (2015/06/14 10:20)
アルゴニアンのフォロワーを初めて作成しました。ジャングルに居そうな「警告色」をイメージし、同胞団員がよく着ている「皮の鎧」と合うようにキャラメイクしてみました。SLFの“ナクマ”さんとテストプレイで訪れていた宿屋で会い、そのまま雇用してしばらく一緒に旅をしていたのですが、彼女の“拳闘”があまりにカッコ良かったので、同胞団の“新メンバー”にアルゴニアンを加入させたい!というきっかけになりました(^^) 規範に厳しいギルドなので、その印象を和らげてくれる、少しやんちゃな存在として活躍してくれるといいんですが…。
獣系種族だと、スクゥーマを飲んでいるとか…物を盗んでしまうとか…悪いことをしても、何故か憎めないところがありますよね!エルフ系も然り…。(そう考えると人間種族が一番損してますね…汗)

>少しでも複雑なTreeを組もうとすると、アイテムの取得効率ががくんと落ちてしまう
Acquire/Activateは、本当に難しかったです…。中でも一番良く分からないのが「ObjectListの更新」でした。Floraの固定タイプのObjectを、どんどん情報を入れ替えて次の場所の収集に移ってもらいたかったのですが…上手くいきませんでした。
また「収集List」を使用した最大の弊害として、Findの検索結果に含まれているList対象外のObjectが収集できなくなるため、検索範囲に一つでも同タイプのObjectが残存している限りは、別タイプ「Ingredient」→「Flora」などに移行できず、次の収集が中断されてしまう問題が、どうしても解決できませんでした。
本来ならば、「全てのアイテムを集められる」ようにした上で、「取ってはいけないものList」を作った方が、精度が高かったのかもしれません。しかし、それを実現できるほどの知識と腕前が無かったため、「もっと良い方法があるのかもなぁ~」と思いつつ…自分の限界を感じて妥協してしまいました(汗)
UNIさんが製作された「掃除人」は、そうした収集の際のつまづきがほとんど見られず、範囲内にある必要なアイテムをほぼ全て回収してくれるので、個人的には今のままで充分に完成度の高いAIだと感じています!…でも、進化した新たな「掃除人」も追加されたら嬉しいなぁ、とファンとしては思います。

>不壊のピックを持っていたのはメルセル氏だけではなかったようで。
こっ…こんなお言葉を頂けるとは…!!!(感涙)実は…同胞団に入り浸るようになる以前は、『盗賊ギルド』にハマっていました。特に『ギルドの仕事』が大好きで、ギルドが繁栄していく様であったり、ギルド棚にコレクションが埋まっていくのを楽しみに、スカイリム各地で罪を重ねておりました…。
一方、今になって思えば…バニラの作りこみに関して、「盗賊ギルド」>>>「同胞団」のギルド間格差をものすごく感じます…。

Activateの汎用性の高さはすさまじいですよね。UNIさんが製作された「製材所の裁断Package」にも、確かActivateが活用されていましたね!!最近ですが…「たいまつの燭台の点灯/消灯」や「ドアの開閉」にも使用できることを知り、驚きました!

Activateに関連した『労働のAI』について、UNIさんに少しご相談させていただきたいのですが…Packageで旅先のウィンドヘルム港で、アルゴニアン達が行っている仕事をさせたいと思っていたところ…あの一帯は何故かSandBoxの領域を広くしても、「皮なめし」や「砥石」を使用せず、「船に乗って休んでいる」だけになってしまいます。また、時々「浅瀬にたたずむ」さんが行っている『薪運び』などをフォロワーにさせたいのですが、CKで彼らの既存のPackageを搭載しても何も行いませんでした…。UNIさんが何かご存知の事がありましたら、是非教えていただきたいです。m(><)m

>スリAI、本当に面白いです。
製作の合間に、UNIさんのテストModのブレナインの様子を見に行くことが増えました!!(笑) 特に、移動しないActorからは鬼のような速度で盗んでます!市場を監視している衛兵が、「DJのスクラッチ」のように盗まれた時の台詞を言いながらフンドシになっていく様子は、いつ見ても最高です!もしこの状態で戦ったら…日頃は幅を利かせている衛兵に対して、臆病なブレナインでも勝機が見出せるかもしれないですね!
私はいつも“作成や活用”の方ばかりに捉われがちで、“不具合やバグの処理”の解決策が思い浮かばない質なので…「スリPackage」のModへの搭載に至るまでには、もう少し検証の時間と考察が必要になりそうですよね。特に目撃されると“プレイヤー”が敵対されてしまう問題の解決が、かなり難しいです。

>それぞれのAIでキャラクターの個性が出せるっていいですよね
本当にそう思います!自作したフォロワーはどうしても口数が少なくなってしまうので、AIや見た目で個性を補ってあげたくなります。最近面白いと思っているのは、『Book』です。作成したフォロワーのキャラクター像に合わせた本を持たせてやると、普段どんなことに興味を持っている人なのか?また、本人が語らずともその人が歩んできた道を想像してしまいます。持たせていてもあまり害にならないので、色々な本を楽しみながら選んでやり、雰囲気アイテムとして搭載しています。持ち物がAIのスイッチとしても機能するので…特殊な技を使わせる時のスイッチにも活用できるかもしれません!

無題

>「皮なめし」や「砥石」を使用せず、「船に乗って休んでいる」だけになってしまいます。
あの一体のオブジェクトはアルゴニアン達の所有物になっているので、他のNPCは使えないと思います。見てみたら、「皮なめしの棚」はシャーヴィー専用になっていました。それぞれ使用する仕事道具が決められているようですね。
薪運びはちゃんと運ばせようとするとScriptをつけなければいけないようですが、時々手に薪がくっついたままになっても構わない程度のゆるさであれば、Scriptなしでも運ばせることができるようです。
薪運びは「CarryAndDropItem」のテンプレートで、専用のFurniture Object「WoodPile」を、薪を拾うWoodPile、薪をおろすWoodPileをそれぞれ直接指定してやるだけで運んでくれます。アニメーションはオブジェクト側についているScriptで制御してくれているようです。念のため、新しく設置したWoodPileでAIがうまく動くかどうか試してみたほうがいいかもしれません。
一般に薪運びのNPC達は、この二つのWoodPileとKeyword「LinkCarryStart」「LinkCarryEnd」で直接リンクが作られているようです。でも多分リンクしなくても、上記のようにAI Package側で直接指定してやれば動きます。遊び半分でダークウォーター・クロッシングに追加した幻のダスターン氏は、ちゃんと薪運びしてくれてました。薪を運んでいる途中でスケジュールが切り替わると、手に薪をくっつけたまま焚き火に当たりに行ってしまいますが; 薪はそのうち消えてくれるので、見た目をあまり気にしなければ問題ないと思います。

盗賊ギルドと同胞団のクエストの差はかなり大きいですよね。メルセルは本当にいい悪役をしてくれましたし、最後の演出も大掛かりだったし。同胞団は……個人的にはいつの間にか蘇ったスコールに頭を抱えた記憶しかない気がします。彼が生き返ると、双子達の人狼病を治すクエストに支障をきたすと聞いていたので。バグのほうが印象深いかもしれません……(-_-;
Re:労働Package
  • Name: ファル粕
  • (2015/06/18 12:25)
UNIさん、いつもアドバイスありがとうございます!!先日は久しぶりにブログを更新しましたが、早速コメントを頂くことができ、とても嬉しかったです!

独自の労働Packageを持つSLFの「アラス」さんや「ヤガシュ」さんは、他のNPCよりかなり多彩な働き方をすることを思い出し、「彼らは薪を割った後にどうやって運んでいたかな…?どうすればいいのだろう?」と、色々と考えていました。当初はSandBoxで自然に使用しているのだと思っていたのですが、「薪運び」の行動は自分が思っていた以上に複雑で驚きました…!UNIさんに教えていただいた方法を試したところ…フォロワーが「薪運び」の動作を開始してくれました!!(感動) 時々、動作が中断されると薪(3)がインベントリに蓄積していくという問題もありましたが…必ず一回目の「CarryStart」のActivateで拾い、二回目の「CarryEnd」のActivateで置く、という行動をWaitなどで中断させないようにすることで、なんとか成立しました。

誰か他の人に先に薪をActivateされてしまうと、拾わなくなってしまったので…誰もその場所を使っていないタイミングに運ばせるか、使われていない薪の所を指定してあげないといけないようでした。夜間になら安全に働かせることができそうです。「ネートレナザ」さんは、自分専用の薪があるにもかかわらず、薪運びをしている様子が見られなかったので、彼の場所を借りることにしました。あの一帯の仕事用具の殆どが本当に…アルゴニアン達の私物として設定されていました!道理で全くFurnitureを使用しない訳です。彼らの縄張りだったのですね…(汗) 船上での仕事器具も「船の所有者」しか使用できないため、ウィンドヘルム港ではDLCでソルスセイムに渡る船の横に着けてある小舟に座ることしかできなかったようです。

UNIさんが最近ブログに書いてくださった、『Sandbox』の記事を改めて読ませていただき、「NPCが専用のObjectを持っている場合もあるのだなぁ、気づかなかった~!汗」とより納得できました。

今回もまた、UNIさんに助けていただきました…。いつも本当に感謝しております!!

追伸
日常Packageの製作がかなり順調です!UNIさんの『SLPackage』のLocationに旅で見つけた好みのロケーションを追加しています。

SLPackageのTravel→Sandoxで移動先で行う「最初の行動」を指定し、そこからさらに「ロケーションに合った行動」をするようにSequenceで「修飾枝」を作ると、各地点ごとにさらに「行動範囲を拡大」することができるので、とても楽しいです!例えば、最初の地点はSLPのSandboxが生かせる「仕事用具やたき火の傍」にし、最後の地点を「ベットのある宿舎」などに設定しておくと、「労働と休憩を両立した一日の行動」が私でも簡単に作成できました!また、「最初に到着した場所が景色が良いのだけれど、Furnitureが無くてフォロワーが佇んだままになってしまうなぁ…」という時も、絶景を堪能した後で、アクティブになれる場所へ移動してもらうと自然に「行動率」がアップして、フォロワーがイキイキする感じです!Locationが30まであったので、一日ごとの行動を作り、ひと月分の行動を「たったひとつのPackage」で設定できてしまえるという、素晴らしい骨格を持ったPackageTempleteですね!!

同胞団の新人、「スレン=ドラ」(彼の名前)は、「自然を愛するアルゴニアン」というコンセプトで製作しています。船や水辺、滝に行くことが多いので、Furnitureがありそうな場所を探すのが大変です…(汗) 余談になりますが、彼は“人狼”に憧れているので、『ファルクリース監獄』や『ブローデッドトマンの洞窟』にも旅をしに行きます!

UNIさんの『進化したシンディング』にも超気になっています…!!(久しぶりに更新キター!!!)以前と同様、一度読んだだけでは私には理解できない“深み”のある記事でした…!これまでの『人狼化』とは違って、さらに「独自性」の高い方法に生まれ変わっていますね~!近いうちに…またじっくりと読みに伺わせていただきますね!!

初めまして!

初めまして、見習いMODDREで錬金術師の鮫島です。
UNIさんのブログの方でちょこちょこお名前を拝見しているので、気になってこちらのブログもちょっとずつ拝見させて頂いております!
そうしたら、以前「フォロワーにパワーを持たせたいなぁ」と思って調べていた時に拝見したブログの方でした。
あの時はお世話になりました…コメントも残さずすみません。
収集系フォロワーは私も作っているので、こちらの記事も大変参考しています!
スリAI、自分は戦闘中にこそこそしつつ敵の装備を剥ぎ取ってくれる追剥AIを作ろうと画策していますがこれが中々上手く行かない…
UNIさんのブログ共々、こちらの方でお勉強しつつ、完成させていきたいです。
同胞団にここまで愛を持ってRPしてる方は見たことがなかったので(というか私は同胞団やってないので)色んなNPCがいるのを見られて面白いです。

自分は意見交換するほどの知識もないので見る専門になってしまいますが、ブログの更新楽しみにしております。

まずはずっと言ってなかったお礼を。

失礼しましたm(__)m

(一応、私のブログの方のURL貼っておきましたが特にRPに特化している訳でもない雑多なお絵かきブログです。もしよかったら程度に…)
Re:初めまして!
  • Name: ファル粕
  • (2015/08/27 18:52)
はじめまして、鮫島さん。同胞団のファル粕と申します!ブログに来てくださってありがとうございます。UNIさんのブログ「方向音痴のSkyrim」で、鮫島さんとUNIさんのコメントでのやり取りを密かに拝見し、私も参考にさせていただいておりました。

少し、自己紹介をさせていただきます(^0^)y

私自身、デジタル社会に疎く…今からちょうど一年前くらいに当ブログを開設するまでは、「HPやブログ」は、「作るものではなく、読むもの」だと思っていました。自信が無いため、消極的であり、ひっそりと…スカイリムをプレイしている方のブログを拝見しつつ、コメントも特にしていませんでした。

CreationKitを開始してから半年くらいは、知識が無さ過ぎてほとんど何もできずに、歯痒い日々を過ごしていたのですが…ある日突然、「浮かんだアイディアを具現化したい」という衝動に駆られ、勇気を出して色々な方のブログにコメントするようになりました。その後、先輩Modderの方々やUNIさんのアドバイスに助けていただきつつ、今こうして楽しい製作ができる日々を送れています。

元々は、個人的な記録のために作成していたブログでしたが、徐々に読みに来てくださる方が増えてきて、心境に変化が。そして最近では…「どんな些細な事でも、何かリアクションがあると気分上々↑↑になる」という喜びを知りました。

>同胞団にここまで愛を持ってRPしてる方は見たことがなかった
同胞団が完璧な集団であったら、きっとここまでのめり込むことは無かったと思います。あくまで個人的な見解ですが…バニラの状態のままだと、『人狼化』を得る目的以外で、同胞団というギルドに積極的に絡んで行こうとするプレイヤーは、かなり少ないような気がしています…(汗) 別のQuestに誘導されて、仕方なしに入団するケース…などなど。ブログ開設当初は、Modを作って『同胞団を変えるんだ!!』という、強い(?)動機があったにもかかわらず、魔法の製作にのめり込んでしまい…そこから3か月くらいはずっと同胞団とは、あんまり関係ない『魔法耐性の検証』のようなことをやっておりました。今年に入ってから、以前よりもCKに慣れてきたこともあり…本格的に『同胞団拡張Mod』に取り掛かり始めた感じです。

>(というか私は同胞団やってないので)色んなNPCがいるのを見られて面白いです。
そうなんです~。意外に色々なキャラの濃い面々がいるのです!!(必死) でも、戦闘や能力の設定に個性が乏しいため…わざわざ雇う必要性も感じなかったり。そして、入団しなければ…何の関わりも無い、敵でも味方でもない、“中途半端な存在”になってしまっているんですよね…。鮫島さんをはじめとする『同胞団やってない派』の方々にも、「あれ?同胞団がこんな所に放浪している!」とか、「戦闘の相性、意外にイイね!!」と興味を持っていただけるような、「自作Mod」を完成させるのが…私の目標です!

>敵の装備を剥ぎ取ってくれる追剥AIを作ろうと画策
ワクワクするアイディアですね!敵を翻弄できる、頼もしいフォロワーが誕生しそうです。戦闘中となると、スリの動作時にフォロワーが無防備になりやすい(防御不能&よろめきに弱い)ので、相手が“隙を見せた瞬間だけを狙うAI”にするのが…かなり難しそうな予感がします。

鮫島さんの『タバスコ精米所』に訪問させて頂きました!「tumblr」の文化は初めてだったので、読み方にまだ慣れていないのですが、自分でイラストを描けてしまうなんて…すごい!!(美的感覚に欠ける私には、羨ましい才能です。) 楽しいデザインの数々とオリジナルフォロワー達のショートストーリー。美しいSSの撮り方や構図は、拝見していてすごく勉強になります! 「錬金術師のレニィ」さんと「アルゴニアンのウラジミィール」さんが、メインキャラでしょうか? 2人ともロアフレンドリーで渋カッコ良いですね!!

実は…鮫島さんと私には“共通点”があります。私もスカイリムの「錬金術」に興味があるので、頼りになる「錬金術師のフォロワー」を一人作ってみたい願望があります。自作Modが一段落したら…また「ポーションの実験」を再開しようかな~?と計画しています。その時は、是非…議論の相手になっていただけたらと思います!!

はじめまして

はじめまして、こんばんわ。セリと申します。
収集フォロワーを作成して煮詰まっていたところこちらの記事に辿りつきました。
IsInList、素晴らしいです・・・!
自作のフォロワーの試験運用中に、アイテム扱いではないドラウグルの兜を
奪ってしまう瞬間を目撃してしまい、なんとかFindするアイテムを絞れないか
悩んでいました。
取得の方で制限をかける・・・出てこなかった発想です。
そしてスリ! まさかNPCにスリさせちゃうなんて、すごいです。
無理だろうと頭から諦めていたんですが、盗賊プレイをしているので
うちの子にもスリさせたいなぁと欲が出てしまいました。

他の記事も拝見している途中なのですが、私が諦めた弓で回復するヒーラーさんも
こちらではしっかり働いていらっしゃるようで・・・。
ファル粕さんの記事を読んでいて、私は諦めるのが早いと猛省しました。
自分の力不足を嘆きつつ、色々お勉強させていただきます!
友人もファル粕さんのブログをコッソリ読んでいるらしく(教えて欲しかった)
2人合わせて今後も楽しみに読ませていただきます。
Re:はじめまして
  • Name: ファル粕
  • (2015/10/31 03:22)
はじめまして、Seriさん。同胞団で活動してるファル粕と申します!

折角ですので、勝手に自己紹介させていただきます。
ロアフレンドリーなModを好み、主人公の成長よりもNPCやフォロワーのAIへの興味を持っている者です。低スペック環境のため、ブログのSSが大変お見苦しい物となっている事も、当ブログの特色の一つになっております(汗) 戦士としての活動意欲に欠けるバニラの状態を改善し、「同胞団たちが躍動するMod」を作ることを目標にしています。

>アイテム扱いではないドラウグルの兜を奪ってしまう
収集するアイテムのTypeによっては、そういったことも起こり得るのですね!Seriさんのフォロワーの方々は、拾った“ドラウグルの兜”をちゃんと被ってくれるのでしょうか?それとも、何らかの不具合が…? 私は…収集AIに関して、ほぼ“食べ物関係”のTypeしか試した経験が無いので、装備や防具の方にはまだ理解が不十分だと感じております。『IsInList』を用いた方法は、目的のアイテムを絞り込んで収集できる分、他のTypeのアイテム収集率が落ちてしまうという弊害もあるようです。しかし、敵専用の装備はフォロワーなどの人型NPCが収集した場合に、一部の表示が不自然になるバグがあるようなので、「余計な物を収集するよりは、種類を限定したり効率が落ちた方がまだマシ」と判断できる状況においては、活用できそうな方法だと思われます。
Seriさんの問題が解決に向かわれると良いですね~!吉報をお待ちしております(^^)

>NPCにスリさせちゃう
フォロワーがスリをした所を初めて見た時は…「目を開き影とともに歩まん事をーーー!!」と画面に向かって叫びました(笑) 私も長らく無理だと思っていましたが…これはまさか……です!
当初は、フォロワー同士でのアイテムの“奪い合い”を試した所から始まった取り組みだったので、全く気付かなかったのですが…コメントをしてくださった方々の意見から、自分には想像もつかなかったような斬新な事にも使えるのだと知り、私自身がコメントを頂くたびに皆様から製作上の色々なアプローチの仕方を、そして新たなアイディアのヒントを学ばせていただいております。
こちらの方法も完全ではなく、「被害者の敵意や罪の責任が無関係なプレイヤーに向いてしまう」という、仕様上の問題を抱えています。おそらく…ですが、「プレイヤーとスリNPCが(目のマークで)誰にも発見されていない時」に使用すれば、上述した問題は起こらないようです。でも、スリの醍醐味である“スリル”は失われてしまう(確実に盗めてしまう)ので…そのあたりに課題が残されています。

>私が諦めた弓で回復するヒーラーさんもこちらではしっかり働いていらっしゃるようで
ブログの記事では、「サクッ!」と矢で小気味よく、ポーションを仲間の体内に注入してくれている様子に見えますが…やはり従来の方法では、まだ未完成な感じが心残りです…。記事を書いた頃は、掲載するのもお恥ずかしいくらい、AIPackageの事を理解せずに製作していたので…ヒーラーの挙動としては、かなり安定性を欠いています。弓をUseWeaponで使って敵以外の対象を狙うのは、途中で「硬直」してしまう問題が大変悩ましいです。あの方法だと、割合的には半分くらい動作中に硬直してしまいます。Seriさんのフォロワー(Azhさん)の硬直率は、どうなのかも気になります。(Projectileの試行錯誤がすごく興味深いです…!)
実は…記事としてはまとめておりませんが、製作の熱が冷めた訳では無く…弓ヒーラーの取り組みは、その後もずっと解決策を練っていて、今ちょうどもう少しの段階まで来ています。他の製作の途中で、『硬直の原因』と『硬直を外す方法』の手掛かりを得られました。―――“よろめき”と“装備品の着脱”が鍵です。
遅筆なため、いつになってしまうかは分かりませんが、(できれば)今年中には…硬直率を削減した“改良バージョン”の記事を書く予定なので、その際は是非、こちらのテーマにも共通の目的があるSeriさんと意見を交換したいです!!

追伸
SeriさんとLilyさんのブログへのURLを教えてくださって、ありがとうございます。早速、訪問させて頂きました。個性的な役割を持つフォロワーの方々と、各々の持つ能力が魅力的に感じました。中でも“Azhさん”と同胞団のリアは、気が合いそうです。弓術を用いて仲間をヒーリングできるよう、互いに腕を磨いていきましょう!
フォロワー専用のお部屋まで製作されているなんて…素敵ですね。フォロワーへの愛とこだわりをかなり感じます♪ 私もブログを参考にさせていただきながら、一から部屋を作る技術に挑戦してみたいです。それから、プレイ担当とMOD担当を分業なさって、お二人で一緒にスカイリムを楽しむスタイルは…とても新鮮でした!プレイする立場から常に客観的な意見を得られて、Modの製作へ即座に改善案や要望が反映できそうですね。私はいつも“一人の世界”にハマりがちなので、思わぬ落とし穴や間抜けなハプニングに、だいぶ後になって気付くことも……よくあります。ですので、こうして時々ブログにコメントを頂けることは…大変嬉しいです(^^)/

Comment Form

  • お名前name
  • タイトルtitle
  • メールアドレスmail address
  • URLurl
  • コメントcomment
  • パスワードpassword

PAGE TOP