2015/06/13 Category : CK作業記録 収集系フォロワーに関する考察 ヴィルカスとアシスが「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