Simultaneous って難しいです。
パトロールしながらオブジェクトを探してほしいと上図のようなProcedure Treeを作ったんですが……。
Simultaneous の中身の並べ順で、行動に違いがでました。右側の並べ方だと、なぜかパトロールせず、その場に棒立ちになってしまいます。一応どちらの場合でも「Acquire」は行ってくれたので、途中で処理が止まっているわけではなさそう。
Procedure同士の相性があるのか、偶然そういう結果になっていただけなのか、なにか設定ミスしていたのか、さっぱり分かりません。
Simultaneousの中身を作るときは、各Procedure の並べ方にも注意を払うのがよさそうです。
今回は収穫する系のアイテムについて。このゲームでは、「E」キーを押して対象に働きかけるのを「アクティベートする」というんですね。
これらのアイテムを取得する場合、「Procedure:Acquire」と「Procedure:Activate」のどちらを使えばいいのか調べてみました。最後に、様々なアイテムを取得するProcedure Treeを組み上げます。
アクティベートして「取る」アイテムは、作物や植物、魚、虫などがあります。ObjectTypeとしては、"Food"や"Ingradient(錬金素材)"に分類されていそうです。しかし実際に「Procedure:Find」でこれらのアイテムを探させても、畑の作物や地面に生えている花を取得してはくれません。
ObjectTypeに”Flora”というものがあったので、これを試してみます。
自前のテスト区画に収穫するタイプのオブジェクトを配置してみました。
「Procedure:Find」で、"Flora"というObjectTypeをサーチするように設定。これだけで、畑の作物、植物やキノコ、丸焼き中のスキーヴァ、鳥の巣、シャウラスの卵、マンモスチーズ、吊り下げられたフロストミリアムやサーモン等、眠りの木の樹液、ゴールド袋(⁉︎)をAcquireしてくれました。ほぼ全ての植物(自然の恵み?)が、”Flora”というObjectTypeに分類されているようです。ニルンルート、水場の魚、虫だけが残りました。植物だと思うんですが、ニルンルートは特殊っぽいですね。
お金の袋まで取るのは意外でした。ObjectWindowでFloraの項目にあったから配置しただけだったんですが、本当に「Flora」だったとは。
今度は「Acquire」の代わりに、「Find(Flora)」&「Activate」の行動を試してみました。
「Activate」でも同じように取得してくれるようです。
どちらでも取得できるのなら、今度は「Acquire」と「Activate」の使い分けが気になるところ。
「Activate」はアクティベート済みのオブジェクトでも、近づいていってアクティベートしようとするみたいです。眠りの木の樹液を採取する蛇口にアクションを繰り返していたのか、アクティベート済を知らせるメッセージが繰り返し画面に表示されていました。
未アクティベートとアクティベート済が見分けられないということは、物が密集した場所では取得効率が落ちてしまうことになりそう。
似たようなことは「Acquire」にも言えて、こちらも取得済みの植物に反応していました。植物採集は拾えば消えるアイテムとは異なり、アクティベーター自体はそのまま残りますから、仕方ないことなのかもしれません。
「Activate」することで新たに取れるようになったアイテムがあります。それはサーモン。
テスト区画に放流しているサーモンには見向きもしなかったのに、屋外のサーモンは嬉々として手づかみしはじめました。……テスト区画の存在意義が。
後日、別の掃除人が川の中でサーモンをワイルドに「Acquire」しているのを見かけました……。
結局「Acquire」と「Activate」はどっちを使っても結果は同じなのかと思いきや、取得するための立ち位置と距離がまったく違うようです。
「Acquire」は取得するために対象の中心へ行こうとします。なのでモラ・タピネラを取ろうとして、木の洞の中へワープなんてことも。
「Acquire」だと立ち位置が悪い場合なかなか取得できなかったりしたのですが、「Activate」は対象の近くに寄るだけでいいようです。それどころか、自分の周り半径300くらいの植物全部を一度に摘み取ったりしてました。早く確実に取得するなら「Activate」ですね。
問題は、吊るしてあるニンニクやハーブなど。「Activate」は所有権をチェックできないので、盗んでしまう可能性があります。これは「Acquire」と決定的に違うところかもしれません。どちらも一長一短ですねぇ。
次は魚と虫。
こちらはふさわしいObjectTypeが一覧に見当たらなかったので、Object IDから直接指定してFindすることにしました。幸い種類はそんなに多くありません。
魚と虫も、「Acquire」と「Activate」どちらでも取得可能でした。
見た感じでは「Activate」の方が取りやすそう。「Acquire」だと取得可能範囲が狭くなって蝶々がなかなか捕まえられず、必死に追いかけ回していました。これはこれでかわいい。
川で泳いでいる魚や、その辺の虫が誰かの所有になっているのを見たことはないので、これを捕まえるのは「Activate」一択でも問題なさそうです。
さて、「Acquire」と「Activate」の使い分けも分かったところで、掃除人専用のProcedure Treeを組み立てます。
まずは基本系。FindしてAcquire、もしくはActivateの流れです。検索範囲はプレイヤーを中心とした距離500。
「Simultaneous」の中身ですが、やはり並べる順番が影響するようで。
このProcedure Treeだと、最初にゴールド(15G程度)だけ取得してしばらく棒立ち。ややあってようやく鎧や武器を取得する行動を取りました。
「Find」はターゲットを見つけたらそこで終了するのですが、上に並べた「Procedure:Find」から順に実行しているみたいです。棒立ちを解消してFindとAcquireを素早くリピートさせられたら、思うような挙動になってくれそう。
以上を踏まえて、様々な種類のアイテムを採集する欲張りなProcedure Treeを作ってみました。
「Find(ガラクタ)」「Find(虫類)」「Find(Flora)」してから「Acruire」「Activate」「Activate」を順に行わせると、植物採集した後棒立ちになってしまうことが多かったため、色々なProcedureの順序を試した結果、この形に落ち着きました。見つけたらこまめに取りにいったほうがいいみたい。
またサーチ結果を入れるリストを3つ用意しましたが、探した後にすぐ取得させているので、1つのリストを使い回してもよさそうです。
改良の余地はありまくりですが、ひとまずこれでしばらく様子をみよう。
テストプレイ中。
ホワイト川の監視所で「Flora」と「Ingredient」を探させていたら、いつのまにかとんでもないものを拾ってました。それ、収穫するものなんですかね。
前へ |
次へ