いろいろまぜこぜ備忘録

今はまってるゲーム、お勧めしたい作品、最近学んだこと、メモ代わりになどなど書きたいことを書いていこうと思います。酔っぱらうと記事が増えます。

Teardown のcreate機能についての覚書

 Teardownについて

store.steampowered.com

Teradownは、ボクセルを使った強盗パズルゲームで、特徴的な点は、建物や車、船など衝突や爆発等によってボクセル単位でバラバラにできる点である。また、マップエディタと乗り物エディタの機能も追加されており「芸術は爆発だ」といった方にお勧めな、ゲームだ。

今回の内容

Teardownにある、create機能のvehicleについてmagicavoxelを使って、作成方法や注意点について説明する。

基本的なパラメータの内容については、~xmlのファイル内のコメントとして解説されているため、翻訳に入れるとある程度は理解できるきがする。解説では、自分が躓いた部分について充填的に記載する。

(2020/11/15 現在)

 

大まか流れ

①/create フォルダの適当な乗り物のvoxテンプレートをコピーして好きな名前で保存、magicavoxelで開いて車を作る。
②vehicle.xmlテキストエディタで開き、<vehicle name= ~ </vehicle>の範囲をコピペ、ファイル名に関連する、vox pos ~の行のファイル名を対応するものに変更
③pos とvox posを変更して、タイヤの位置やライトの位置、視点の位置を変更する。

 

①については特に問題はない、magicavoxelの色パレットの[<]でコメントが出てくるため参考にするとよい。van1_yellow.voxがおすすめ。②は、変な位置にスペースや全角文字、改行が入っていなければ、おそらく大丈夫。③がややこしいので詳しく書いていく。

xmlファイルの編集

③座標について。
座標は左右 高さ 前後の順で指定

magicavoxelの表記だと x y z(高さ)となっているが、

基本的には  x z(高さ) y の順になっているので注意。

また、vox pos の場合は原点から x -z yなので注意が必要。

 

~posの場合親のオブジェクトの座標から、指定の位置までvoxposを中心に持ってくる。

voxposはmagicavoxelのオブジェクトの中心(x y zの矢印の根本)で、かつ高さが0の位置を原点として、どの程度ずれた位置を中心とするか決める。

<vehicle name= ~ </vehicle>でひとかたまりで、この中を編集していく。上から解説していく。

 

<vehicle name="sportscar" pos="48.0 0.2 -32.5"
pos は 駐車される位置

 

<body pos="-0.050 0.35 0.25"
body pos は、特にzの値のみ注意
body pos のz とpos の zと合計して、タイヤから車体の上部までの高さの半分の値を指定してワールド読み込み時に中に浮いたり、埋まるようなら値を微調整。
おそらくタイヤ込み高さの半分程度、sportscar 1.2 ≒ 0.55*2
(サスペンション:travel の値の範囲で埋まらずに設置可能)

 

<vox pos="0.05 -0.15 -0.25" rot="0 180 0" ~
vox posの場合 中心から x -z yとなる。
つまり、下から高さ3を中心にしたいのであればzは、 -0.3と記入する(タイヤvox posも同じく)。x と y については通常 (magicavoxel上で+なら+)。

読み込んだvoxファイルは自動的にfitされるため、原点はmagicavoxelの枠最下部ではなく、ブロックがある範囲の枠の最下部となる。

 

<light pos =~
light pos はvox pos からの距離 x z yの値で可能。
あかりの正の向きが -y方向となっているため、回転させる場合は rot 0 180 0 で yにマイナスを記入


(参考画像)

https://pbs.twimg.com/media/EmzgK6EUUAAY2MW?format=jpg

原点の位置と例として作成した、車の座標を記載。

車体のvox posを原点近くに置き極力回転を省いて、座標計算がしやすいようなテンプレートを作ったもの。

https://pbs.twimg.com/media/EmzhJGaVkAAriQD?format=jpg


(タイヤは同じものを使用。別々にする場合その他車両を参照)
https://drive.google.com/file/d/1IdAm3eQMGFMumz2LnNXcKQYsDUAxdO7a/view?usp=sharing