![ロング体験会](https://manabiail-steam.com/wp-content/uploads/2023/03/263f08deef99ee29c35bfdad3906e03d.png)
Scratch スプライトに影をつける
![Scratch スプライトに影をつける](https://manabiail-steam.com/wp-content/uploads/2023/04/c77ebea9855fd41c3f15acbd0c55d209.png)
スプライトに影をつける方法について解説していきます。
ペイントエディタで影をつけることもできますが、それはかなり手間ですし、コスチュームごとにつくらないといけないので、今回はその方法はとりません。
コードで簡単に影をつける方法を解説します。
![ネコに影をつけたプログラム](https://manabiail-steam.com/wp-content/uploads/2023/04/ca35bb911227ed63b730e185d457c474.gif)
結論:影を付けるコード
先に結論から、影をつけるコードはこちらです。
![影をつくるコード](https://manabiail-steam.com/wp-content/uploads/2023/04/dc895e307fb5d228edcb8074c10611b4.png)
拡張機能のペンを使うこと
見た目の効果で、明るさと幽霊の効果を使うこと
がポイントです。
スプライトの動きに合わせて影も連動するようにするのであれば、
このように、ずっと繰り返し呼びます。
![影をつくるを呼び出すコード](https://manabiail-steam.com/wp-content/uploads/2023/04/0634e01bf176be9e85b7250a70597ee7.png)
「全部消す」を入れるのは、都度影が描かれてしまうためです。
スタンプブロックでできること
拡張機能「ペン」の中にある、「スタンプ」ブロックをつかうことが1つ目のポイントです。
![拡張機能の追加1](https://manabiail-steam.com/wp-content/uploads/2022/11/a55ff3da9f2bd842b6851f1868d130e1-700x566.png)
![拡張機能を選ぶ_ペン](https://manabiail-steam.com/wp-content/uploads/2023/04/f1d384d8fbac707aaeff0bca5698d774-700x400.png)
スタンプって分かりやすい表現だなと関心しちゃうんですが、
まさにスタンプの名の通り、スタンプブロックを実行したときのスプライトの状態をペタッとスタンプしてくれるんです。
例えば、スプライトStarを使って、星空にStarをペタペタ貼るプログラムを書いてみましょう。
![Starのスタンプをつかったプログラム](https://manabiail-steam.com/wp-content/uploads/2023/04/46904ed9a7de94bbe75e7274bba57e5d.gif)
マウスをクリックするたびに、スプライトをペタっと貼ってくれます。
ちなみにコードはこちら
![Starを貼るプログラムのコード](https://manabiail-steam.com/wp-content/uploads/2023/04/2b7726939da62cf28523e9925126fbf3.png)
この機能を生かして、ネコの影を貼るんです。
見た目の効果で影をつくる
何もせずにスタンプをすると、ネコがどんどん貼られるだけなので、
ネコを影っぽくしてから、スタンプします。
つまり、2つ目のポイントである、「明るさの効果」と「幽霊の効果」で影っぽくするんです。
明るさの効果は、-100が真っ黒 +100が真っ白です。
![](https://manabiail-steam.com/wp-content/uploads/2022/11/2bc8cfd4da7737503af7fd4cb77104f0.png)
影をつくりたいので、-100で真っ黒にします。
![明るさの効果を-100にする](https://manabiail-steam.com/wp-content/uploads/2023/04/61ad240c759c51565cee23e52ccc0f27.png)
これだけで影っぽくなるのですが、よりリアルにするために、
幽霊の効果を使います。
幽霊の効果は、いわゆる「透明度」のことです。
100にすると、クリア(無色透明)になります。
![](https://manabiail-steam.com/wp-content/uploads/2022/11/2bc8cfd4da7737503af7fd4cb77104f0.png)
今回は透明度高めで、90で指定します。
(お好みで調整して下さい)
![幽霊の効果を90にする](https://manabiail-steam.com/wp-content/uploads/2023/04/6ce0a3f97db576629da2d0969af0600c.png)
明るさの効果を-100に、幽霊の効果を90にすると、ネコはこんな感じになります。
![明るさ-100幽霊90のネコ](https://manabiail-steam.com/wp-content/uploads/2023/04/5ad3674e0398cd048a75161a1308ae62.png)
影っぽくなりましたね。
位置を調整してスタンプする
ネコが影っぽくなったので、あとは位置を調整してスタンプします。
![位置を調整してスタンプする](https://manabiail-steam.com/wp-content/uploads/2023/04/4459bb90e2ea7ea23016f9376d3aec85.png)
サンプルでは、左下に影が付くようにしています。
お察しの通り、右に付けたければXは+方向へ、上に付けたければ、Yは+方向へずらします。
元に戻すと影っぽいネコと普通のネコが描画される
最後に仕上げです。
このままだとネコは影のママですので、元に戻してあげます。
つまり、座標を元の位置まで戻し、画像効果をなくします。
![ネコを元に戻す](https://manabiail-steam.com/wp-content/uploads/2023/04/f9561364134f18071b20a8ff139e727e.png)
ブロック定義にするときの注意点
上記のコードをブロックとして定義するときに1つ注意点があります。
![影をつくるブロックの定義](https://manabiail-steam.com/wp-content/uploads/2023/04/1cb2c5555015dc455ad9879b1a4ab2a8-700x551.png)
上図のように、「画面を再描画せずに実行する」をONにします。
ブロックの処理の途中で画面を再描画する必要がない(すべて終わってから画面に反映されればよい)ので、わずかですが、ONにした方がプログラムのパフォーマンスをよくします。