【特別編 #17】3Dで上や下を見るときに描画する高さをコントロールする方法(マウスでの視線操作も!)

【特別編 #17】3Dで上や下を見るときに描画する高さをコントロールする方法(マウスでの視線操作も!)
ok-scratch
3Dでヨコを見るのはカンタンだけど、タテ方向に視線を変えるとなると大混乱!でも天井に潜む忍者を見つけたり、地底に潜るモグラを見つけるゲームなら上下の視線操作は必要だよね!
スターター
プロジェクト
なし
難しさ

任意)自分の作業中のスクラッチ作品URLを記録しておこう!再開するときに便利だよ。

LOADING...

※ この記録は今使ってるPCに保存されます。別のPCで作業するときは表示されません。

スクラッチに挑戦している皆さん、どうも!スクラッチコーチです。

このスクラッチゲームの作り方への質問もOK このスクラッチゲームの作り方への質問もOK
このスクラッチゲームの作り方に挑戦していて分からないことが発生したら質問してみてね。気づいたタイミングで回答するよ。 質問は 僕のスクラッチのプロフィール で受け付けているよ。

質問テンプレート(素早く3回クリックすると全選択できるのでコピーしよう)

・◯◯ ... 記事のどこまで実装が終わったのかを記入しよう。
・□□ ... どんな問題が起きているのか、どういうときに起きるのか、具体的に書こう。
・共有済みURL ... たまに共有してない作品URLを書いてる人がいるけど、共有しないとこちらから確認できないからよろしくね。

この回では、オンライン化とモバイル化をする前の状態の作品を改造していきます。ただ、オンライン化とモバイル化がしてあっても問題ありません。

僕らの3DはX座標とY座標を巧みに使って奥行きを出すことには成功しているけど、さらにZ軸を作ることでもっとリアルな3Dワールドを実現しようじゃないか。最 & 高!

今回の目標

まずマウスで上下左右に振り向けるようにするよ。左右はまぁカンタン。とりあえず左右からやる。

問題は上下だね。ペンで描画している世界で、いったいどうすれば上を見たり下を見たりできるんだろうか。やってみよう。

完成ショート動画

今回と次回で達成したい動きはこんな感じだよ。完成像を見ておくとコーディングのイメージがわきやすいかも。

マウスの動きに合わせて左右を振り向くように改修する

じゃあエンティティからいこうか。ちょっと下準備だけ。

クローンされたときの処理から、移動するところを外しておいて。このほうがテストしやすいんだ。全部終わったら戻すから消さないでね。

スプライト「プレイヤー」のティック処理を改修する

ではプレイヤーを開こう。

マウスのX座標っていうブロックがあるよね。これをつかう。

ただこれをそのまま使うには値が大きすぎる。いまは振り向くときに3度が基準値になっているから。

そこで80で割ってちょうどいい感じの大きさにそろえようとおもう。

これをプレイヤーティックの最初に使おう。「右に◯度回す」ブロックに演算をはめて、デルタをかければ完成。

左右を振り向くようになったかテストする

おっけい、マウスで振り向くようになった。ここまではシンプルだね。

マウスで上下に視線が動くように改修する

よし、では上下にも着手しようか。

変数「★カメラY」を作る

これにマウスのY座標をセットしよう。

スプライト「ペン」で変数「Y座標」の計算を変える

次はペンだ。

定義「_行を描画する」を見つけて、少し下の方にある変数「y座標」に値をセットしているところを確認してほしい。

もともとあった演算はいったん外しておいて。

代わりに引き算を入れておこう。

この左側に、もともとあった演算をはめよう。

↓こんな感じ。

右側には★カメラYを入れて完成。

マウスの動きで上下に視線が動くかテストする

これはワクワクが止まらないやつ!

超いいかんじ!!

まぁナノがおかしなことになってるのは置いといて、とりあえず周囲の壁が上下に動いてるよね!よっしゃ!

エンティティなども合わせて上下するようにする

引き続きスプライト「ペン」の、定義「_エンティティをスタンプする」を見つけて。ここに「X座標を◯、Y座標を◯にする」ブロックがあるよね。このうちY座標には何もセットされていないから、ここに「0 - ★カメラY」を入れよう。

ok-scratch ok-scratch

空白 - ★カメラYでも、0 - ★カメラYでも、どっちでもOKだよ。

エンティティなどもいっしょに上下するかテストする

うぉぉぉぉ!すこぶるナイス。

あーっと、でも背景がいっしょに動いてないね。これもやろう。

背景がいっしょに上下するように改修する

ステージ(背景)を開こう。

ステージ(背景)のコスチュームをコピーする

コスチュームをペンにドラッグアンドドロップしよう。

スプライト「ペン」のコスチュームを確認する

ペンに背景がコピーできたら、コス名は背景にしておこうか。

スプライト「ペン」の定義「_描画する」を変える

全部消すブロックは使わないから消してOK。あとの部分はいったん外しておいて。すぐまた使う。

まずはX座標をゼロ、Y座標を「0 - ★カメラY」にしよう。

そしてコスチュームに関するブロックを置いて、スタンプで描画していく。

背景が上下するかテストする

いったんこの段階でどう動くか確認しよう。ちなみに背景以外映らない状態であってるよ。だいじょうぶ。

むむむ、なんか上下しているっぽいけど、上と下にカクカクカクって線が走ってしまう。この理由は、コスチュームの画像が小さすぎるから。そこで大きさを200%にしたいんだけど、あー、いやな予感するね。そう、スクラッチではある程度大きなコスチュームはそれ以上大きくしてくれないっていう仕様がある。これは有名な仕様だから、突破方法ももちろんある。もう伝えたことあったっけ?

大きなコスチュームをさらに大きくする

突破方法はカンタン。いったん小さなコスチュームに着替えてからサイズを大きくして、そのあとに大きなコスチュームに着替え直すっていう手順をとろう。これで仕様の穴を突破できるぞ!

きれいに上下するようになったかテストする

やってみよう。

うん、さっきみたいに上下に変なカクカクがないね!おっけい。

外してあったブロック群を戻す

これでエンティティなども描画されるから試してみてね。

床の色を変えておく

このタイミングで床の色も変えておくと、より明確に背景も上下しているってわかるよ。

↓こんなかんじ!

まとめ

今回は視線が上下する動きを通して、XとYだけではなくZ方向、つまりタテの動きをゲームに導入できたね。これをさらに洗練していけば夢の「3Dゲームでジャンプ」という偉業を達成できるぞ!うぉぉお!ワクワクしてきたぜ!

完成サンプルがあるよ
おつかれさま!今回のチュートリアルには完成サンプルがあるから、作ってて分からなくなったり、 動作確認をしたいときはチェックしてみてね。
ブクマよろしくお願いします! ブクマよろしくお願いします!
どんどん追記・更新していくので、ブックマークやシェアよろしくお願いします!

スクラッチゲーム攻略

スクラッチゲーム

    • 厳選されたスクラッチ人気作品リストがレビュー付きで楽しめます
      趣味に関するスクラッチ作品例
      勉強になるスクラッチ作品