スクラッチに挑戦している皆さん、どうも!スクラッチコーチです。
キーがないと開かないドアっていうのはドラクエとかRPGでは有名な仕掛けだよね。アスレでも最近はそういうの多い。シンプルな迷路ゲームだとしても、この仕掛けを用意するだけで迷路ゲームとしてのクオリティが上がったりする。
いろんなゲームで使える「あるアイテムがないと開かないドア」とか「進めない道」とか、そういう仕掛けを今回はマスターしていくぜ。
- ① まずはここからレッツゴー!
- ② リファクタリング)ステージをスプライトにしよう
- ③ シーンの切り替えのベース処理
- ④ ヒットボックスを使おう
- ⑤ アニメーションを実装しよう
- ⑥ 絶望の坂道処理を克服する
- ⑦ 長押しで大ジャンプする
- ⑧ 壁をツツ〜っとスライドする
- ⑨ か、壁ジャンプだと!?かっこよすぎるだろ
- ⑩ ステージがヨコにだけ続くと誰が言った?タテ構造
- ⑪ うわ!障害物が行く手をさえぎるぞ
- ⑫ 動く床のギミックを作ろう!
- ⑬ ギミックに乗っているときの衝突処理
- ⑭ オシャレなグラフィックを作るコツ
- ⑮ アイテムをゲットできればゲームに目的ができる!
- ⑯ 重要アイテムがないと開かないドア!?たぎる! (いまここ)
- ⑰ チェックポイントを作って激ムズなアスレを作ろう!
- ⑱ ゲームオーバーを作って緊張感をキープする!
- ⑲ エネミーが現れた!どうすりゃいいのよ!?
- ⑳ エネミーを踏んづけろ!
- ㉑ ギミックのリファクタリング
- ㉒ 回転が切り拓く新境地
今回の目標
- 重要アイテム「キー」を作る
- ギミック「ドア」を作る
- キーがあるとドアが開くようにする
スプライト「アイテム」にキーを追加する

アイテムにコスチュームを追加するよ。テンプレートから選ぼうか。

検索エリアにkeyと入れればすぐに見つかる。

キーのコスを調整する
- コス名をKey1にする
- 停止ボタンを押して、表示するボタンをクリックする
- プレビューを見ながら大きさを整える(僕は32 x 50くらいにした)
- 下のツマミを使ってキーの向きを180度回転させる。

「セットアップする」を受け取ったとき
適切なシーンに配置しよう。どこでもいいよ。僕の場合はシーン103の端っこにした。ついでにキーを取得しやすいようにステージの一部を斜めにしたり調整したよ。このあたりはキミのステージに合わせてやってみてね。
そしてセットアップする際にスポーンする処理を追加しよう。

音を追加する
アイテムに音を追加するよ。キーをゲットしたときの音になる。

Wandという音を探そう。

クローンされたとき
いまはリンゴしかなかったから何をゲットしても同じ音だったけど、キーを取得した際はリンゴとは違う音を鳴らしたいので、条件ブロックを追加する。

条件式にはまず「コス名がappleかどうか」を調べる式を作って、そうでなければWandを鳴らすようにしておく。

リスト「★重要アイテム」を作る
重要アイテムの管理はリストを使うとすごく効率良く出来る。

コス名をリストに追加するようにしよう。

セットアップする際に初期化する

キーをゲットしたらリストに追加されるかテストする
よし。いいかんじだ。これをどう使っていくのか、続きを見ていこう。
スプライト「ギミック」にドアを追加する
僕の場合はシーン4にちょうどよいスペースがあるので、ここにドアを設置したい。こういうスペースがない人は、このタイミングでステージのコスを調整しておいてほしい。

ではギミックを開こう。

新しいコスを描こう。

コスチューム名は対応するアイテムと同じにする
キーのコス名がKey1だから、ドアもKey1にしておくよ。

↓こんなかんじでドアを描こう。カギ穴の描き方は、円と台形を組み合わせてるだけだよ。

定義「ドアを置く」
新しく定義を作ってドアを置くとき用の処理をまとめていこう。

使い方はいつもどおりシーンを切り替えるときに、シーン番号を調べて実行ブロックを置けばOK。

座標の指定は停止ボタンを押してから、ドアをマウスで掴んで動かして調整しよう。

ドアを置く処理
定義の中身を実装しよう。まずは引数を割り当てていく。

その後にずっとループを作ってプレイヤーが触れるのを待つ。

プレイヤーが触れたら、プレイヤーがキーを持っているか調べる。その際にリスト用の便利なブロックがあるので使おう。

キーを持っていたら、ドアが上方向に開くようにするよ。

キーをゲットしたらドアが開くかテストする
ドアが下がるようにする
ドアはひらっきぱなしではなく、下がるようにもしておこう。まぁゲームによってはドアは消しちゃってもいいけどね。今回は現実の自動ドアみたいに、開いたあとに閉まるようにしておく。

ドアの音を3つ追加する
やっぱりこういう重要イベントには音が大切だよね!音を選ぼうか。

buzzと入力してBuzz Whirを見つけよう。これは開く音。

あとcrunと入力してCrunchを見つける。これは閉まる音。

最後にsqueと入力してLow Squeakを見つけておこう。これはキーが無いときにドアに触れたときに、開かないですよ〜って音。

この3つをそれぞれの場所で実行する。

音が重複して鳴らないように、タイミングを調整するブロックを、ずっとループの最後に配置する。

ドアとステージの重なり順を確認する
あと、ドアのコスチュームはステージよりも後ろにあったほうが気持ちいいので、ステージが最前面に来るように調整してもいいかも。このあたりはキミ次第でOK。

スプライト「プレイヤー」にも音を追加する
音を追加する作業をしたから、ついでにプレイヤー側の音も整えておこうか。

音を選ぼう。

ダメージを受けた音
効果音のところにある「Oops」を見つけよう。


Oopsは検索しても見つからないというスクラッチのバグ?仕様?がある。これはいったいナゼなんだろう……。ためしにOopsって入力してみて。何も見つからないから。だから目で探すしかないのだ。
ダメージを受けたところで鳴らそう。

ジャンプの音を追加する
juと入力してJumpという音を選ぼう。

定義「_上下の動きを処理する」ところで音を鳴らそう。

音を加工する
ジャンプ音を少し加工しようか。フェードアウトのボタンを4回くらい押してみて。これでちょうどいい感じになる。

大きなアップルを追加する
さて、オマケみたいなものだけど、大きなアップルをアイテムとして追加しようと思う。まぁ、アイテムを追加する練習だね。

appleを複製してbig appleを作ろう。大きさは143 x 143にしたけど、まぁ適当でだいじょうぶ。

スポーンするようにする。

こんなかんじでドアを開いたらゲットできるクリアアイテムみたいな存在にしたかった。

まとめ
おっけぃ!キーとドアを実装できたね!これは色んな場所で応用できるし、何個で用意できるぞ。リストを使った仕組みだから管理も分かりやすいし、またまたクールなワザをマスターできたんじゃないだろうか。
キミのアスレを作る能力が爆上がりしているのを感じるぜ。
これで超大作を作っていける、っと思うんだけど、シーンが長くなったり難しいコースを作ったら、やっぱりアレがほしいよね、アレ。
そう、チェックポイント!セーブができるとアスレを攻略するユーザーもモチベーションを高く維持したままクリアを目指せるよね。ロブロックスとか、もろにそんなゲームだよね。
あー、早く実装したい!乞うご期待!
- ① まずはここからレッツゴー!
- ② リファクタリング)ステージをスプライトにしよう
- ③ シーンの切り替えのベース処理
- ④ ヒットボックスを使おう
- ⑤ アニメーションを実装しよう
- ⑥ 絶望の坂道処理を克服する
- ⑦ 長押しで大ジャンプする
- ⑧ 壁をツツ〜っとスライドする
- ⑨ か、壁ジャンプだと!?かっこよすぎるだろ
- ⑩ ステージがヨコにだけ続くと誰が言った?タテ構造
- ⑪ うわ!障害物が行く手をさえぎるぞ
- ⑫ 動く床のギミックを作ろう!
- ⑬ ギミックに乗っているときの衝突処理
- ⑭ オシャレなグラフィックを作るコツ
- ⑮ アイテムをゲットできればゲームに目的ができる!
- ⑯ 重要アイテムがないと開かないドア!?たぎる! (いまここ)
- ⑰ チェックポイントを作って激ムズなアスレを作ろう!
- ⑱ ゲームオーバーを作って緊張感をキープする!
- ⑲ エネミーが現れた!どうすりゃいいのよ!?
- ⑳ エネミーを踏んづけろ!
- ㉑ ギミックのリファクタリング
- ㉒ 回転が切り拓く新境地
当連載で取り上げるグリフパッチさんの動画はこちら

質問テンプレート(素早く3回クリックすると全選択できるのでコピーしよう)
・◯◯ ... 記事のどこまで実装が終わったのかを記入しよう。・□□ ... どんな問題が起きているのか、どういうときに起きるのか、具体的に書こう。
・共有済みURL ... たまに共有してない作品URLを書いてる人がいるけど、共有しないとこちらから確認できないからよろしくね。