スクラッチプログラミングに挑戦している皆さん、どうも!スクラッチコーチです。
ゴンザレスからゲームクリエイターへの挑戦状
壁のスキマはなくなったけど、
遠くまで
見晴らしが
良すぎて
敵から
丸見えってことにピコが
気づいたみたい。これは、
住むにはいいけどこっそり
潜入する
側としては
困ったね。よし、ここは
一つ
自然な
暗さを
演出するために
影を
作っていこう。
今回の目標「自然な陰影《いんえい》をつける」
今は3D
空間が
均一な
光で
照らされているような
状態になっている。それはそれでいいんだけど、
今回は
自然な
陰影が
発生するようにしていきたい。でも
影なんてどうやって
作るんだろうか。
大丈夫、ペンツールにある「
明るさ」を
調整するだけでサクッと
陰影をつけることはできるから!
今回はこんなことにタックルするよ。
- 3D空間に陰影をつける
- 視野が扇《おうぎ》状に広がるのに合わせた自然な陰影をつける
- コスチュームを利用して奥行きも陰影で表現する
ok-scratch
u003cpu003eここらへんから少し演算も複雑化してくる。といってもスクショを見ながら一歩ずつ進めば必ずできるから、一緒に見ていこう!u003c/pu003e
陰影をつける距離を調べよう
遠くに
行くほど
暗くなる、という
仕様を
実装していこう。まずは↓このブロックを
用意して。
これを
組み
合わせて、「120 - (
距離 / 1.5)」という
演算を
作り、ペンの
明るさに
割り
当てよう。
実はこれだけで
結構いい
感じになる。
CHECK! 遠くに行くほど暗くなったかテストする
うひょぉ、
怖い……wいっきにホラーゲームっぽくなったね。ゴクリ……。
u003cpu003e遠くに行くほど暗くできたu003c/pu003e
陰影のロジックを洗練させる
これだけでもいい
感じなんだけど、さらに
洗練させる。↓これを
見てほしい。
目の
前の
壁よりも、
斜めにある
壁のほうが
距離が
離れているから、
陰影も
濃くなる
方が
自然だよね。これを
実装していきたいと
思う。↑この
図には、プレイヤーの
周りに
円が
描かれてるよね。
視野を表現するときは円形で計算するのがメジャーだからこの
図でも
円を
描いてプレイヤーの
視野を
表現しているんだ。そして
円を使った距離を計算するときは、だいたい三角関数を使うのが
定番になる。ここでも
三角関数を
使った
演算を
作っていくことになるよ。
ok-scratch
u003cpu003e三角関数は高校の数学で習う、たしか。高校生レベルだけど、用意されてるブロックを使うだけだからまだ習ってない人でも安心してほしい。u003c/pu003e
変数「角度」を作る
定義「_レイキャストする」の
最初に、
向きをそのまま
角度に
割り
当てよう。
次に、ちょっと
複雑な
演算を
組む。「 (
距離 x ( (
向き -
角度) の
cos)」っていう
演算を
作るよ。このcosっていうのが
三角関数だよ。↓この
図の
矢印を
参考にブロックをはめていってね。(cosのブロックはデフォルトだと
絶対値ってなってる。
選択肢を
開くとcosが
見つかるよ)
最終的にこんな
演算になる。
これを
定義「_シングル・レイ」の
距離にプレイヤーまでの
距離を
割り
当てた
直後に
置こう。これによって
壁とプレイヤーの
距離がより
正確に
計算できるようになる。
CHECK! より自然な陰影を演出できたかテストする
見てみよう!
動画だけだと
違いが
見分けづらいかもしれない
場合は、
今作ったブロックと
付けたり
外したりしてプロジェクトをプレイしてみてほしい。より
自然な
陰影が
表現できていることに
気づくはずだ。
u003cpu003e視野に合わせた、より自然な陰影を表現できるようになったu003c/pu003e
床と天井も作って陰影にメリハリをつける
さらにさらに、コスチュームを
工夫することで
陰影にもっとメリハリを
付けていこう。
u003cpu003eちなみにスタータープロジェクトをリミックスしたなら、すでに入ってるからそれを使ってもいいし、ココを見て改造したり新規制作してみるのもいいと思うよ。u003c/pu003e
ステージにコスを追加する
背景であるステージを
選択しよう。
ステージのコスチュームを
開いて「
描く」を
選ぶ。
上から
下に
向かう
線形グラデーションを
選択しよう。
ちょうど
半分くらいになる
長方形を
作ろう。
それをコピーする。
ペーストすれば
複製できる。
あとは
上下を
反転させてみよう。
できたものを
画面上半分に
配置すれば、
奥のほうが
濃い
背景が
完成だ!
CHECK! 床と天井がいい感じに陰影にメリハリを付けてるかテストする
この
背景を
適用すると……
クール!
奥に
行くほど
暗くなるっていう
仕様にピッタリの
背景画像が
仕上がったね。
u003cpu003eコスチュームを利用して、遠くに行くほど暗くなる仕様をより強調することができたu003c/pu003e
プレイヤーを透明にする
まだプレイヤーの
三角が
見えてる
状態だから、このタイミングで
透明にしておこう。スプライト「プレイヤー」を
選択する。
幽霊を100にする。
さらにスプライト「レイキャスター」を
選択する
このスプライトでも
幽霊を100にすればOKだ。
壁の陰影
部屋の
暗さはできたけど、
壁の
角度によっても
暗さは
変わるはずだよね。ここからは↓こんな
壁の
陰影を
作っていこうと
思う。
ok-scratch
u003cpu003eここはコスチュームの操作が大切になる。この作業後はマップを変更するのが手間だから、もし何かマップに調整を加えたいなら事前にやっておこう。u003c/pu003e
明るい壁と暗い壁を作る
スプライト「レベル」を
選ぶ。
スプライトをまるごと
複製する。スプライト
名は「レベルカラー」にしておこう。
コスチュームを
開いて、マップのコスチュームを
右クリックして
複製する。
ok-scratch
u003cpu003eコスチュームに対して複雑な操作をしていくから、万が一「分からない・無理」ってなったら、u003ca href=u0022https://scratch.mit.edu/projects/972385773/u0022 target=u0022_blanku0022 rel=u0022noreferrer noopener nofollowu0022u003e完成サンプルu003c/au003eのスプライトを使うといいよ。u003c/pu003e
複製されたコスチューム2を
開こう。
画面右下にあるズームのリセットを
押しておくよ。
選択ツールで
全選択する!パーツを
余さず
選択しよう。でっかい
四角を
描くように
選択するのがコツ。
コピーボタンをクリック!
まだペーストはしないよ。コピーボタンを
押したら、もうコスチューム2は
消してOK。
コスチューム1で
作業を
続ける。まだペーストはしないよ。
コスチューム1でも、
全選択しよう。コピーはしないでね。
全選択したら、
左キーを一
回押してほんのわずか、1ピクセルだけ
動かす。ピクセルとは、
単位のことで、1ピクセルは1ドットみたいなものだよ。
ok-scratch
u003cpu003eこのとき何故かシフトを押してないのに押した状態のように大きく右に動くことがあった。もしそうなったらいったん右キーで元の位置に戻してから、選択を解除して再び全選択して再チャレンジしてみて。それでもダメなら、半角と全角を切り替えたりして、なんとか1ピクセルだけズレる状態を作ってほしい。u003c/pu003e
ここでやっとペーストボタンをクリックだ。
選択状態は
解除しないでね。もし
解除しちゃったら、ペーストを
取り
消して
再びペーストし
直そう。
今度は
右キーを一
回押して、
右に1ピクセル
動かす。
そうすると↓こんな
感じでわずかに(
合計2ピクセル)ズレた2
層のマップになると
思う。
レベルカラーとレベルでペンの色を変える
次はコードだ。スプライト「レイキャスター」の
定義「_シングル・レイ」に
条件ブロックを
追加しよう。
条件式でレベルカラーに
触れたかどうか
調べよう。
この
中でペンの
色を
変える。こうすることで
壁の
陰影を
表現できるぞ!
CHECK! 壁に明るい面と暗い面ができたかテストする
おお!
門が
明確に
分かれてる!これは
視覚的に
優しい。あーでも、
待って。
円のところはどうだろう。
あちゃー。ギザギザだね。これは
何か
手を
加えないとな。
円い壁の陰影を手直しする
スプライト「レベルカラー」を
開く。
コスチュームを
開いて
円のところを
選択する。
円の
代わりに
長方形を
設置してみよう。
CHECK! 円の陰影がギザギザではなくなったかテストする
うーん、まぁ
今回はこれでいいかな。そこまで
大切なところじゃないし。
u003cpu003eスプライトを二層構造にすることによって、明るい壁と暗い壁を作ることができたu003c/pu003e
まとめ
今回は3D
空間に
陰影をつけることができたね。これで
遠くの
方は
真っ
暗、みたいな
状況を
作ることができた。より
自然だし、なんだかダンジョンっぽさが
一気に
増したよね!ホラーゲームなら
今すぐ
作れちゃいそうな
雰囲気。
電気をつけたら
陰影が
消える、なんて
仕様も
作れそうだし、
逆に
停電だ!っていうハプニングで
一気に
部屋が
暗くなったり……オラワクワクすっぞ!
今回は
次のことができるようになったよ。
- 3Dに陰影をつける
- 視野に合わせて自然な濃さを演出する
- コスチュームも組み合わせて奥行きの陰影や明るい壁と暗い壁も演出する
オッケーナイスゥ!これでスクラッチキャットもゴンザレスに
追いつ……あれ?なんだかまだ
問題が
発生しているみたい。なんだろう?
次回もチェックしてみてね!
今回のチュートリアルは
世界No.1スクラッチャーとして
名高いグリフパッチさんの
動画を
参考にしているよ。ただし
手順を
一部変えているところもあるんだ。