アセット「Curved World」を使い始める

ゲーム開発欲が高まってきたので、気になるアセットを手当たり次第に購入しつつ、ちょっとずつゲームを作ってます
今回は「Curved World」を使い始める段階で早速躓いたので、(主に忘れがちな自分向けに)記事に残しておきます

とりあえずサンプルシーンを動かす
まさかのこの時点で躓くという失態
アセットインポート→サンプルシーンを開く→Play で、うまく動かない
具体的にどうなっているかというと、サンプルシーンで上手いこと曲がって表示されるはずなのに曲がっていない
ウェブで調べて、Curved World ControllerスクリプトでCurcedWorldが制御されることを確認するも、Project Bend TypeがUnknownになっていて変更できない!
どのサンプルシーンを開いても同じ状態だ!
といった感じ

結論としては、Curved World ControllerのProject Bend Typeはメニューの項目から予め変更が必要とのこと
(普通にシーン内にテキストで書いてあったけれど、文字が小さくて読みにくかったから読み飛ばしてたんや……)

メニュー→Window→VaccumShaders→Curved World Settings からダイアログを開いてBend Typeを指定してUpdate Shadersで設定できる

自作のシーン内でLittle Planetを使う
1.Hierarchy→Create→EmptyObjectで適当なGameObjectを作成
2.GameObjectを選択して、メニュー→Component→VaccumShaders→Curved World→Controller でCurved World Controllerスクリプトを追加する
※一応InspectorのAdd Componentでも追加できるけど、その場合の指定は”Controller”だけなのですごく分かりにくい
3.Curved World ControllerのPivot Pointに基点にしたいカメラを設定する
(これを設定し損ねると、カメラが移動したときにShaderで曲げる位置がカメラ基点でなくなるので、移動するごとにずれてしまう)
4.X(Y) Axis Bend Size に -45 とか適当な数値をセットする
(XYを同じ値にすると丸く曲げてくれる)

Little Planetを適当に触りながら思ったこと
Curved WorldのLittle Planetを使うことで、平面のフィールドを球状に見せることができる
ただし、これは球体として存在しているわけではないので、当然平面の端まで行くとその先はない
ゲームフィールド上をプレイヤーの操作するキャラクター(カメラ)でぐるりと一周できるようにするには、何らかの手段で平面の端を動的に生成する必要がある
今回作ろうとしているゲームでは惑星の上をぐるぐる周回できるようにしたかったので、惑星を適当な数に分割した平面で表現してプレイヤーキャラの位置に応じて視界外の分割された平面を適宜移動させるようにしてみた
(ちなみにこの方法だと、平面全体の面積をいい感じに球の面積と一致させるのが大変なので、色々と試行錯誤中)

平面で色々制御できる利点を捨ててもいいのであれば、最初から球状のメッシュを用意してその周囲をぐるぐる回れるように実装する方が簡単かもしれない


Curved Worldはアイデア次第で色々なところで使えそうなので、今後も少しずつ試していきたい

コメントを残す

メールアドレスが公開されることはありません。