Unityでゲームを作ってみよう! その1

さあさあ、突然はじまりましたこの企画、

趣旨は単純明快! タイトルの通りでございます!

まあ、私のいつもの発作的な行動でありまして

賢明な読者様なら「あ、どうせ飽きてすぐやめるだろう」というのは

ご承知かと思います。

というわけで、飽きるまで頑張ります!


さて、Unityとは

だ、そうです。(公式HPより)

よくわかりませんが、チュートリアルも充実してます。たぶん。

とりあえず、チュートリアルの「玉転がし」を作って、理解を深めておきましょう!

(略)

はい、「玉転がし」完成!

なるほど!

これはアクションゲームとか作りやすそうな感じですね!

設定してれば辺り判定とかは勝手にやってくれて、通知を受け取ればいいだけなのですね!

簡単! …簡単?

まあ、いいや!

さて、本題!

ここから、この「玉転がし」を改造してオリジナルゲームを作っていきましょう! 


さて、まずプレーヤーが玉だと味気ないので

Unity公式キャラクターのユニティちゃん(SD ver)に登場していただきましょう!

このモデルは公式で配布されているのでゲットして、玉転がしの玉と置き換えていきます!

ちなみにユニティちゃんの動きを制御するスクリプトとかも入ってますが

中身を確認するのが面倒なので全無視です!

さあ、カメラとかも適宜調整!

準備完了!

ユニティちゃんよ! 動き出すのだ!

これはあかん!

ユニティちゃんは球体じゃないので、スムーズに転がってくれない!

というか転がっちゃダメだ!


というわけで対策を考える必要があります。

現在はキーボードからの入力に応じた力をプレーヤーに加えるという処理をしています。

たぶん、うまく重心とかに設定すると平行移動してくれるんでしょうけど、

そんなことやってられないよね!

というわけで、キーボード入力が直に移動量になるように変更します。

どうやらposition変数をいじってやればいいらしいのでそうします!

これでどうだ!

動いたが、転倒した!

どうやら、加速度が大きくなると姿勢を維持できなくなるっぽいですね…。

あと、動いても向きが変わらないとのはちょっと…。

というわけで、再度調整です!

肝心なのはQuaternion.LookRotation()による向き指定ですね!

この関数は引数で指定したベクトル方向への回転行列(?)を生成するようですね。

今回は、移動方向を素直に向いてくれればいいので、

移動ベクトルをそのままツッコミます。

また、ゼロベクトルのときには、直近の非ゼロベクトルにキープするようにします。

こうすることで、加速・減速によって生じる力の影響を無視することができますね!

なお、Quaternion.LookRotation()は引数にゼロベクトルを指定すると、

正面を向く仕様っぽいので、

ゼロベクトルによる場合わけは、それを回避する意味もあります。


では、今こそ、ユニティちゃんの雄姿を見よ!

あまりに見事なすり足のため、足運びが見えませんが、

体の向きは変わるようになりましたね!


というわけで、今回はここまで!

次回は、ユニティちゃんをどうにか歩かせてみたいと思います!

あるかどうかわかりませんが、続報を待て!(待たなくていいです)




混沌の標

とくにこれといった目的もなく、やりたいことをやります。

0コメント

  • 1000 / 1000