マイクラMODメモ九条へいしの開発ノート
柱 1・プラグイン開発

マイクラの自作家具に座ると埋まる・浮く問題:座る高さを「描いた絵から測る」ようにした

夕方の桜の木の下で、描いた木の椅子に正しく腰かけているプレイヤー

この記事でわかること

  • ペットと椅子で「座る高さ」がずれていた原因
  • 座る位置を描いた絵から測るやり方
  • 描き直すときの決まり(座面 0.4〜0.5 ブロック・内側 0.75 以上)
  • 玉座の背もたれを 2 ブロックまで出せるようにした話

ラクガキ王国では、描いた絵が座れる椅子や、乗れるペットになります。ところが、ショート動画のために椅子に座るカットを撮ってみると、どうも様子がおかしい。体が椅子に埋まっていたり、ペットの背中から浮いていたりします。ふだん遊んでいるときは気にならなくても、カメラで寄って撮ると一目でわかってしまいました。

この記事は、座る高さを直すのに何回失敗したか、という記録でもあります。結論を先に書くと、「決まった高さに座らせる」のをやめて、「描いた絵の座面の高さを測って、そこに座らせる」形にしました。ただ、そこにたどりつくまでに 4 回ほど撮り直しています。

どれくらいずれていたか

撮影用サーバーで、直す前と直した後を同じ場所・同じ角度で撮って、左右に並べました。左が直す前、右が直した後です。

左右に並べた比べ動画のコマ。左はペットの頭のてっぺんの高さに人が浮いて座り、右は背中にまたがっている
ペット(試しに背の高い頭をつけたもの)。左の直す前は、頭のてっぺんの高さに浮いて座っています。右の直した後は背中にまたがっています。
左右に並べた比べ動画のコマ。左は人が椅子の前の地面に沈み、右は椅子の座面に座っている
椅子。左の直す前は、椅子の前の地面に沈んでいます。右は座面の上に座っています。
左右に並べた比べ動画のコマ。左は紅葉の林でクッションに体が埋まり、右はクッションの上に座っている
クッション(座る高さだけを比べるため、同じ形のクッションで撮影)。左は埋まり、右は上に座っています。

原因は単純でした。座る高さを、絵の中身を見ずに決め打ちにしていたのです。

1 回目の直し:座面の高さを測る

家具は、描いた絵を 1 ブロックの大きさに縮めて置いています。ということは、絵のどこに「座るところ」があるかがわかれば、縮めたあとの高さも計算できます。

そこで、絵のまん中あたりの高さを測って、そこに座らせるように変えました。ペットなら背中、椅子なら座面の高さになります。比べ動画の右側が、この直しを入れたあとの様子です。

ここで少し欲が出ました。直した直後の椅子が「ほんの少し浮いて見える」気がしたので、座る位置を座面より 0.1 ブロック下げたのです。これが、あとで自分の首をしめることになります。

2 回目:腰が前すぎる

次に、5 種類の椅子をくらべる回(ロッキングチェア・王様の玉座・カフェの椅子・北欧のスツール・和の座椅子)を撮りました。横から見ると、どの椅子でも腰がいつも椅子のまん中に来ていて、背もたれから離れた前のほうに座っています。和の座椅子は座面が前に寄っているので、特にずれていました。

5 つの椅子に座ったところを上下 2 段で比べた画像。上は前に座りすぎて脚が浮き、下は座面の奥に腰が収まっている
上が直す前、下が直した後。上の段は、腰が座面の前に出て、脚が前に投げ出されています。下の段は腰が座面の奥(背もたれ側)に来ています。

高さは座面に合わせたまま、腰が座面の奥(背もたれ側)に来るように直しました。ついでに、ベッドの寝る高さも決め打ちをやめ、描いた絵のマットレスの高さから測るようにしました。ベッドでも、埋まったり浮いたりするのが目に見えていたからです。

3 回目:体がはみ出す、椅子が高すぎる

位置が合うと、今度は椅子そのものの形が気になりはじめました。玉座とカフェの椅子は体がはみ出し、北欧のスツールは座面が高すぎて、胸のあたりに座面が来ています。

理由は、家具の大きさと人の体の大きさの関係でした。家具は 1 ブロックに縮めて置きますが、人の体の幅は 0.6 ブロックくらいあり、座ると太ももが前に 0.6 ブロックくらい出ます。

ここで、座る家具を描くときの決まりを作りました。今はすべての座る家具をこれに合わせています。

決まり数字キャンバス 16 マスで描くと
座面の高さ0.4〜0.5 ブロック7 マス(0.44 ブロック)
座るところの内側の幅0.75 ブロック以上12〜14 マス(0.75〜0.88)
ひじ掛け細く低く、外側に付ける—
家具の横幅1 ブロックいっぱいに使う16 マス

和の座椅子だけは、床に座る形なので、決まりより低い 0.25 ブロックのままにしています。

4 回目:−0.1 は下げすぎだった

描き直した椅子で撮ると、高さも幅も合ったはずなのに、まだ「体が埋まっているように見える」のです。コマを見直すと、太ももが座面の前のふちに隠れていました。

原因は、1 回目に「少し浮いて見える」からと入れた −0.1 ブロックでした。座面の形がちゃんとした今となっては、ただの下げすぎです。下げる量を設定で変えられるようにして、ふだんは 0(座面の高さぴったり)にしました。

描き直した 5 つの椅子に座ったところを上下で比べた画像。上は太ももが座面のふちに隠れ、下は座面の上に乗っている
上が −0.1 ブロック下げた版、下が 0 の版。下の段では、5 つとも太ももが座面の上に乗って見えます。特にカフェの椅子(3 つ目)とスツール(4 つ目)の差がわかりやすいです。

0 で 5 つとも、太ももが座面の上に乗り、浮いても埋まってもいませんでした。逆に上げる(−0.05 など)必要もなかったので、0 に決めました。

おまけ:玉座の背もたれが低すぎる

位置の問題が片付いたあと、動画を見返していて「王様の椅子にしては背もたれが低すぎる」と気づきました。家具は横・奥・高さのどれも 1 ブロックに収まるように縮めているので、玉座の背もたれも 1 ブロックより高くできなかったのです。

そこで、椅子だけは高さ 2 ブロックまで出せるようにしました(横と奥は 1 ブロックのまま)。玉座は座面の高さはそのままに、背もたれを 1.8 ブロックくらいまで高くして、てっぺんに王冠のような飾りをつけて描き直しました。

玉座の比べ。左 2 枚は背もたれの低い玉座と座ったところ、右 2 枚は王冠つきの高い背もたれの玉座と座ったところ
左 2 枚が前の玉座(1 ブロックに収めたもの)、右 2 枚が背もたれを高くした玉座。座る位置は変わらず、背もたれだけが伸びています。

本番のサーバーに入れるときには一つ気をつけることがありました。住民の人がもう置いている椅子のうち、横より背が高く描かれたものは、入れかえたあと最大 2 ブロックまで背が高く表示されるようになります。描いた形どおりになるので見た目はよくなるはずですが、天井の低い部屋だと背もたれが天井に届くかもしれません。

直し方の進め方で気をつけたこと

4 回の直しは、どれも同じ順番で進めました。

  1. 撮影用サーバーに直した版を入れて、直す前と直した後を同じ角度で撮る
  2. コマを並べた画像を作って、人の目で見る(「座る位置」の画像は毎回作りました)
  3. おかしくなければ、本番にはだれもいない状態が 2 分続いたときに入れかえて再起動する。前の版は写しを取っておく

今回いちばん効いたのは 2 の「並べて見る」でした。動画を流して見ているだけだと「なんとなく変」で止まってしまいますが、5 つの椅子の前と後を上下に並べると、どれがどうおかしいかがはっきりします。−0.1 の下げすぎも、並べた画像でようやく気づけました。並べて見るやり方は コマ一覧で破綻チェックする話 にくわしく書いています。

学んだこと

「少し浮いて見える」を数字でごまかすと、形を直したあとで必ず裏目に出ます。座る位置は、決め打ちの数字ではなく、描かれた形から測る。調整の数字は設定に出して、ふだんは 0 にしておく。この 2 つを決めてからは、新しい家具を描くときに座る位置で困ることがなくなりました。

この記事は、九条へいしが自分のサーバー「ラクガキ街」と撮影用サーバーで実際に試したことをもとに書いています。気づいたことや間違いは お問い合わせ から教えてください。