Alicia in Godot Land #04「アイテム、ゲットだぜ! って・・・」
入手可能なアイテムを数種類追加。今後じゃんじゃん増やす予定だけど、ゲームの「筋」をまだ決めてないから何が必要なのかわからんって感じだな。まー、今後もこの調子で行き当たりばったりで行くかな。その他にも、ドア、カメラ、モーションに追加修正した。
YouTube
うむ。
メイン
今回のメインは取れるアイテムを置いてみたってところ。アリシアから2m以内のものは取れる。
これは、2m先までレイが飛ぶようにして、何かに当たったらそこにArea
ノードを移動させ、そこでエリアに入ったボディーをチェックしているダケ。取れるモノなら「おてて」アイコンが出る。
ただ、グローバル変数(オートロード)で各アイテムの取得数を管理しようとすると、「そんな変数、設定してるけど使ってないよ」っていうエラーが出る。これ、なんか回避方法はないかな? 今までは、
func _process(delta):
でも、「"delta"が使われてないよ」っていうエラーが出てたんだけど、これは、
func _process(_delta):
って感じに、"delta"を"_delta"と、アンダースコアを入れてやることで回避できることが分かった。(ボディーエンターとかでも、この方法が使える。)
グローバル変数のところ、なんかないかなー。
・・・と思ったら、func _ready():
の中で適当に初期値入れれば大丈夫じゃん。オイ
他の追加修正箇所
◆ SpringArm
ノードを使用
カメラを前後左右に振る時、壁に当たってないか確認するため今まではRayCast
を使ってたんだが、これをバッサリやめてSpringArm
を使う事にした。これは、+Z方向にしかレイを飛ばさないRayCast
って感じだな。子にしたオブジェクトを勝手にぶつかった所に配置してくれる。
まー、こんな感じで使うんだと思うけど、カメラを直に子にしないで何かほかのノード(Spatial
とか?)を持って来た方が良くね? カメラはそこにlinear_interpolate()
するようにした方が、壁に遮られた時一気に位置の移動がないから、カクカクしないんで良くね? って思うわ。ま、全然スプリングじゃないんだよな。プロパティに"spring"の項目追加よろしく。(あと、方向も変えられるように・・・)
◆ オーバーヘッドカメラを追加
これもカメラ関係。左右に移動させるショルダーカメラは以前くっつけたんだが、棚の上の方のモノとか見づらいんだよね。ま、これで前が見えやすいってのもある。
◆ 「しゃがむ」を追加
上は見やすくなったけど、下はまだ見づらい。なので「しゃがむ(Crouch)」モーションの追加。自分でモーションつくるの大変だなー。
◆ ドア、2種類追加
自動ドアと、鍵のかかったドアを追加。
以上。
次回
前回、IKアニメやるって思ってたんだが、アリシアの腕のボーンが片腕4本になってるのでIK使うと腕が4つに分かれちゃうんだよな。ちょっと使えなかった。だから、次回何になるのかは不明だな。行き当たりばったりだ。