参加者が来てから見つかった「アイテムが増える」不具合 3 つと、その直し方

この記事でわかること
- プラグインが「なくなったら作り直す」ものは増やせてしまう、という落とし穴
- 樽を開いているときだけ左手の道具が動かせた理由
- 自動で配るのをやめて、広場のチェストでもらう形にした話
- 置物が分身して見えた 2 つの原因
ラクガキ街は 10 月 10 日にテストサーバーとして住民の人を迎えました。オープンまでに撮影用サーバーで何度も試していたのですが、実際に何人もが自由に遊びはじめると、自分では思いつかない動き方がたくさん出てきます。中でも多かったのが「アイテムが増える」たぐいの不具合でした。
増える不具合は、放っておくと持ち物があふれたり、ほかの人に配れてしまったりして、遊びのつりあいがくずれます。この記事では、オープンから数日のあいだに見つかった 3 つと、その直し方を書きます。
その 1:樽を開いていると、左手のキャンバスが増える
報告と、最初の空振り
最初の報告は「キャンバスが複製された人がいる」というものでした。ここでいうキャンバスは、アトリエで絵を描いているあいだ左手に持たせている、部位を選ぶための道具(見た目は絵画)です。
まずサーバーの記録を調べましたが、キャンバスがだぶっている跡は見つかりませんでした。アトリエの区画も全部見て、保存された絵の記録も確かめたのですが、どれも 1 つずつです。ここで記録だけを見ていても進まないので、本人に「どうなったか」を聞いてもらいました。返ってきた答えは「樽を開いているときに、左手のキャンバスが複製された」でした。

原因:樽の画面には左手のマスがない
左手の道具は、ふだんは動かせないように止めていました。ところが、樽やチェストを開いているときは、その止め方が効いていませんでした。樽の画面には左手のマスが出ないので、F キーなどで左手の物を樽にしまえてしまうのです。
さらに悪いことに、プラグインは「左手に道具がない」と気づくと、新しい道具を作り直す作りでした。樽に 1 つ、左手に 1 つ。これで 1 つ増えます。何度もくり返せば、いくらでも増やせてしまいます。
直し方
- 樽などを開いていても、F キー・数字キー・Shift クリック・ドラッグのどれでも、左手の道具を動かせないようにしました。
- 箱を開いたとき、中にまぎれこんだ道具を自動で消すようにしました。前に増えてしまった分も、その樽を開けば消えます。
- 持ち物の中に、左手以外の場所に道具が残っていたら消すようにしました。
このとき、同じ人のメモから「アトリエの『まえ』の表示がずっと残る」という不具合も見つかりました。描くときに正面がどちらかを示す「▼ まえ ▼」の目印が、近くにあるものしか消さない作りだったうえにワールドに保存されていたため、区画を移るたびに古い目印が残っていました。目印を作るたびに番号を覚えて、確実に消すように直しています。

その 2:帰還の羽とラクガキ帳が増える
次に見つかったのは、街へ帰るための「帰還の羽」と、メニューを開くための「ラクガキ帳」が増える件です。どちらも、コマンドを使わずに遊べるように、こちらから自動で配っていたものでした。
| アイテム | 前の配り方 | 増えたしくみ |
|---|---|---|
| 帰還の羽 | 持っていなければ、入ったとき・生き返ったときに配る | チェストにしまったり人に渡したりすると「持っていない」ことになり、次に入ったときにまたもらえる |
| ラクガキ帳 | 持っていなければ 5 秒ごとに戻す | チェストにしまう・捨てるは止めていたが、バンドル・額縁・模様入りの本棚・飾り壺など、止めていない場所に入れると戻ってくる |
どちらも、樽のキャンバスと同じ形の不具合です。「なくなったら自動で作り直す」しくみは、「なくなった」と思わせる方法が 1 つでもあれば増やせてしまいます。入れ物の種類を 1 つずつふさいでも、マイクラにはしまえる場所がたくさんあるので、いたちごっこになると考えました。
自動で配るのをやめた
そこで考え方を変えて、自動で配るのをやめました。入ったとき・生き返ったときには何も渡さず、なくしたときに 5 秒ごとに戻すのもやめています。そのかわり、広場の真ん中にあるチェストを右クリックすると、持っていない物だけ 1 つずつもらえるようにしました。もともとこのチェストでも羽とラクガキ帳がもらえていたので、住民の人にとっては「もらう場所が 1 か所になった」だけです。
撮影用サーバーで、持ち物を空にして 8 秒待ってもラクガキ帳が戻らないこと、倒されて生き返っても何ももらえないこと、チェストを右クリックすると 1 つずつもらえることを確かめてから本番に入れました。
しまってからチェストへ行けば、まだ増やすことはできます。ただ、自動で増え続けることはなくなり、増やすには毎回広場まで歩く必要があります。もっときびしくするなら「1 人 1 回だけ」にする方法もありますが、なくして困る子のことを考えて、今はこの形にしています。
その 3:置物が「分身」する
3 つ目は、ラクガキを小さな置物にして飾る機能です。「置物が取れるときと取れないときがある」「たまに分身する」という報告でした。

本番のワールドのデータを読むだけの方法で、置物の表示がどこに何個あるかを数えたうえで、プログラムを読み直しました。原因は 2 つありました。
- 同じ場所で「置物として置く」を 2 回押すと、1 か所に 2 つ重なって置かれていた。1 つを拾うと、もう 1 つが残ります。これが「分身した」ように見えて、しかも残った方は拾えませんでした。
- クリエイティブモードで置くと、アイテムが減らなかった。別の場所にもう一度置くと、最初の置物がそのまま残り、それも拾えなくなっていました。
直したあとは、置こうとした場所にすでに置物かブロックがあれば置かずに「そこにはもう置物があります。少し動いてから置いてください」と出します。同じ置物をもう一度置いたときは、前の置物をきれいに消してから新しい場所に置きます(移動のあつかい)。前から残っていた表示のかけらも、その場所が読みこまれたときに消えるようにしました。データを調べた時点では、本番にだぶった置物は保存されていなかったので、まとめての片付けは要りませんでした。
ついでに直した事故:押される・息がつまる
増える不具合ではありませんが、同じ時期に「ラクガキがプレイヤーを押し込む」「狭いところに入って窒息する」という事故も起きていました。ラクガキ(ペット)がぶつかってプレイヤーを押し、壁にめりこませてしまうことがあったのです。
ラクガキがプレイヤーを押さないようにしたうえで、ラクガキに乗っているとき・降りてから 10 秒のあいだ・ラクガキが近く(8 マスくらい)にいるときは、壁にめりこんでもダメージを受けないようにしました。乗っていなければ、近くの空いている場所へ出します。撮影用サーバーで、まわりを石でうめても体力が 20 のまま減らないことを確かめています。最初は「近く」の範囲がせまく、6 マスほど離れていると効かなかったので、少し広げました。ラクガキが近くにいないときは、ふつうのマイクラと同じように息がつまります。
3 つの不具合からわかったこと
- 「なくなったら作り直す」は増やせる。自動で補充するしくみを作るときは、「どこかにしまわれた」場合をふさぐより、補充そのものをやめるほうが確実でした。
- 記録より、本人の「そのとき何をしていたか」。樽の件は、サーバーの記録をいくら見てもわからず、「樽を開いていた」のひと言で原因がわかりました。
- 直したら、だれもいないときに入れる。どの直しも撮影用サーバーで試してから、だれもいない状態が続いたときに自動で入れかえています。この運用は 子どもも来る参加型サーバーを守るためにしたこと にくわしく書きました。
テストで見つからなかった不具合は、住民の人が見つけてくれたものです。報告してもらえる場所と、聞き返せる関係があったから直せたと思っています。