見出し画像

スポナーによる隣り村の開発(minetest)

生活圏が整ってきて、一番近いとなり村までの鉄道が開通し交通の便が良くなったので、この村の開発に着手しました。
産業の柱は観光です。

村のマップジェネレータとしては「mg_villages」が良さげだったので、なんとか使えないものかと、いろいろやってみたのですが、どうしても途中で落ちる現象を解決できませんでした。

生成された村を確認するため飛行機で飛んでいたら、上空でエラー発生、サーバダウンしてなぜか死亡。骨探すのにえらい骨折りました。

その後、奇跡的に墜落地点を発見。
発見した瞬間にモンスターに襲われまた死亡。

これに懲りて「mg_villages」は諦め、「Experimental Villages Mapgen」(mg)が生成した村をベースに開発を進めることにしました。

まずは人間型mobをなるべく自然な形でスポーンさせて、無人の村に活気をトリモロしたい。

現状では、待っていても一向に村人などのmobは自然発生してくれないので、最小限「神の手」によって人口形成の仕組みをつくらなくてはなりません。

①スポーンエッグやコマンドでゴニョゴニョする
最初に試したのは卵をズルして入手し、mobを強制的に出現させるというやりかたです。

まず、クリエイティブモードを一時的にtrueにして、npcの卵を不正に入手(笑)します。

卵から各mobをスポーンさせるわけですが、npcは卵をおいた時点でTamedなので、なんとなくおもしろみがない。
しかも、オーダーは「立って待つ」と「ついてくる」の2通りしかないので、置いたところにずっといるか、やたらべったりとまとわりついてくるかの2択なのもつらい(その後のアプデで「will wander」というのを選べるようになったのは良かった)。

そもそもひとりずつ手動で出現させるのはめんどうだし、ロマンが足りない。

mobf_traderという商人mobもまったくみたことがないが、mg_villagesと同じ人がつくったmodなので、これがちゃんと機能してれば、村にでもスポーンされるのであろう。

こいつは、クリエイティブモードでピックアップ状態のアイテムを追加しても、スポーンさせることができなかったので、とりあえずコマンドを使って以下の手順で出してみた。

adminを取得:サーバのmintest.confで「name=<自分>」になっていればおっけー。

mob_basics_spawn特権を取得。/grantme mob_basics_spawn

トレーダーをスポーン。 /trader default(他)

こうやって彼らの生殺与奪を掌握すれば、思いのままに好きなmobを出したり消したりできるけど、私がしたいのはそれじゃない。

そんなあるとき、なんとなくcraft guideを眺めていると、mob_animalアイテムのあたりにすばらしいものを発見した。
一見地味なブロックふうのそれはなんとスポナーでした。

スポナーを使えば、「神の手」の使用を最小限にとどめつつ、一定のmod出現をコントロールできるのではないか。

②mob spawnerでmobの出現をコントロール

しかし使い方がまったくわからん…。

唯一みつけたこの動画だけをヒントにいろいろやってみた。
https://youtu.be/30pRoOCC6s8

設置したmob spawnerを右クリックし、コマンドを指定する。

左から順番に「modの名前」「最小の明るさ」「最大の明るさ」「そのエリアに存在する数」「プレイヤーとの距離」「出現する高さ」をそれぞれスペースでくぎって設定。

名前はふつうのnpcにんげんmobだったら「mobs_npc:npc」と指定すれば、人間mobが4種類くらいランダムに出てくる。

「最小の明るさ」と「最大の明るさ」は0〜14の範囲で、指定した明るさのときにだけ出現する。
暗いときにだけ出現させたければ、0〜5とかにしとけばいいのかな?

「そのエリアに存在する数」はよくわからないけど、たぶん、エリア内にいるmob数の制限っぽい。

「プレイヤーとの距離」は、なんとなく数値が小さいと出てこない気がするので、スポナーに自分がどれくらい近づいたときに出現するか、ということっぽい(てきとー)

距離の単位がよくわからんのでテキトーですが、とりあえず「0」にしておくと距離に関係なく出てくれるみたい。

「Y offset」は出現する高さのような気もするけど、設定しなくてもエラーにはならないので、「0」か空白にしておきました。

これで特定の場所に特定のmobを自動的に出現させられるようになったので、とりあえず、となり村の駅前広場にふたつのスポナーを置いて、商人と観光客を出現させてみました。

〈商人スポナーの設定〉 mobs_npc:trader 0 14 1 0 0

商人は移動しないので、卵で出してもいいんですが、ときどきモンスターにやられたりしているので、いなくなったら自動的にひとり出てくるようにしました。

〈ツーリストスポナーの設定〉 mobs_npc:npc 10 14 1 0 0

もともとはこのmobを村人にしたかったが、早足に歩き回って、すぐ海などにいってしまう動きが、村人というより、いかにも観光客らしいのでそう名付けた。
最初は明るさに関係なく出現させていたが、夜の闇にわらわら沸いてくるのは気持ち悪いし、海が人だらけになって、明らかにオーバーツーリズム状態だったので、昼間だけ出てきてもらうことにした。

〈異民族スポナーの設定〉 mobs_npc:igor 0 5 3 0 0

最初、ツーリストスポナーのとなりにこれを置いてみたら、いきなり怪人と観光客が殺し合いをはじめたので、あわてて海を隔てた別の村に設置しなおした。
彼らもツーリストも、プレイヤーに対し自分から攻撃してくることはないが、Igorはツーリストを攻撃するらしい。

この人たちは怪物らしく、夜の間に生まれるようにしてみた。
むしろこのmobのほうが動きが落ち着いていて、村人にふさわしい。
泳げないようなので、海洋進出することもなく、おおむね村付近に暮らしている。

このまま平和が続いてほしいが、すでに大量の観光客が海に溢れ、彼らの島へと近づきつつある。

島の沖にみえる異邦人を不安げに見つめるIgor。
思いのほかリアルな実験場となっている。

③それ以外のキャスト

このスポナーによってコントロールできるのは、mobs_npc、mobs_animal、mobs_monsterだけで、それ以外のmodには使えないので、npcの商人よりもちょっとマシな商品を扱っているmobf_traderをコマンドで出し、駅前などに置いてみた。

どういうわけか、どうやっても1ブロック分宙に浮いてしまうので、面倒だが地面に穴を掘ってから底に置いてから穴を埋め戻した(めんどくさっw)

関係ないかもしれないが、う○こが宙に浮く怪現象も…。

いまのところ、別modの商人同士で、トラブルは起きていないようだ。

あとは、working_villagesというmodに、大工やガードマンなど、いくつかの仕事をしてくれる高機能のmobがいるので、これは卵から男女数名を出現させて、村に定住してもらうことにした。

彼が自分で建てた家。

これはあまりたくさん出しすぎるとサーバが重くなったりしそうで注意が必要だが、それ以外のシンプルmobに関しては(特にツーリストは大量発生しているが)いまのところ大きな影響はないようにみえる。

【おまけ】養鶏場の実験

mods spawnerがおもしろいので、ためしに鶏を自動スポーンさせてみることにした。
柵で囲った敷地の中にスポナーを置いて、自動的に一定の鶏を出現させる。

〈鶏スポナーの設定〉 mobs_animal:chicken 1 15 3 0 0

この程度の柵では飛び越えられるようで、けっこう逃げるし、夜になるとモンスターが鶏を襲うので、ケージ内の鶏は減るが、減った分だけスポーンされる。

しかし、この運用方法はちょっとやりすぎな気もするので、実験が終わったらスポナーは撤収し、柵にmob避けをつけるとか、working_villagesの村人に見張り役をお願いしてみようと思う。

ところで、鶏の玉子を投げると、ときどき(8回に1回の割合らしい)ひよこが出てくる。
これがかわいいので、玉子を投げまくっている(笑)

ちなみにこの玉子は敵に投げつけて攻撃するのにも使えるらしい。実用性は低そうだが。

残る課題は、peopleというmodのmobをどう位置づけるかだが、いまのところ、たまに現れるのはminerくらいで、攻撃してきたらやっつけるというたんなるモンスター扱いのmobでしかない。

craft guideをみる限りかなり多様なmobが揃っているようなので、この辺りをうまいこと登場させて絡めるよう、これから研究を進めてみたいと思います。


この記事が気に入ったらサポートをしてみませんか?