ゆめキララキッズスクール

コラム

3D課題Unity2【プロボ】

こんにちは、コードオブジーニアス講師の青柳です。
今回も「3D課題Unity」のお話をさせて頂きます。

前回は「オブジェクトの落下や跳ね返り」の動画をお届けしましたが、やはりアプリ制作の際には「操作」を行いたいですよね。
今回はその基礎、第一ステップとして重要なお話を紹介させて頂きます。

blog1026_1

赤いお皿の上にのった、お餅のような白ブロック。
今日はこの白ブロックをキーボードの「左カーソル」「右カーソル」で移動させるというプログラムを作ってみました。

よし、実行して右カーソルを押すぞ!

blog1026_2

……あれ? お餅が消えた?

おかしい、確かにプログラムはあっている筈です。
何度確認しても 「右カーソルを押したら白ブロックを右に動かす」という記述になっています。
なぜブロックは消えてしまったのでしょうか。

その理由は、カメラをぐっと引いて見ると分かります。

blog1026_3

画面の右の端、小さな白ブロックがあるのが見えるでしょうか。

白ブロックは消えていませんでした。ただ、目にも留まらぬスピードで画面からはみ出してしまったのです。

「右カーソルを押したら右へ動かす」という命令そのものは正常に実行されていましたが、そのスピードについて考慮していなかった事が原因です。
相手が人間であれば「ちょうど良いスピードで動いてよ」と言えばいいですが、プログラムが・機械が相手となると、その「ちょうど良いスピード」も数字でしっかりと明記しなければなりません。

 

スピードの数値(プログラム上の変数spd)を小さく設定すると、ちょうど良いスピードにする事が出来ました。

しかし、これで完璧・正解かと言うとそれは違います。
そして私としても「これが正解!」と明確に提示する事は出来ません。
なぜなら……
「だんだん加速する動きにしたい」
「赤い皿の中だけで動くようにしたい」
「赤い皿から出たらブロックが消滅するようにしたい」
などなど、自分がどんなものを作りたいかによって、行うプログラムが変わってくるからです。

※上下左右移動とジャンプ、そして赤いお盆から外れたら落下するように設定した例

 

今後とも、3D開発をこれから始めたい人向けの紹介記事を続けて行く予定です。
実際のプログラミングに関する事はレッスン・テキストで行いますので、考え方やよくあるミスなど、そういった解説を中心にする予定ですので、よろしくお願い致します。