- 1. ゲーム準備・ハートの移動・青モード物理 (いまここ)
- 2. テキスト表示システムとサンズの3パーツ連携
さぁ、スクラッチでナニ作る!?
動画で見てみよう
チュートリアルの元になった作品
今回の目標
スターター作品をリミックスしよう
このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
スターター作品をダウンロード
#1ステージ: ゲーム開始の準備
まずステージを開いて全てのスプライトで使う変数とメッセージをいくつか用意する
準備
スプライト「stage」を開く
| スプライトについて |
|---|
| Undertaleのサンズバトルを再現したゲームのステージ。BGM・HPなどの全体変数の初期化と音楽制御を担当する |
変数「★HP」を追加
プレイヤーのHP(初期値100、骨やブラスターに当たると減少)
実装
最初にヒットポイントを画面に出るようにしとく
#2ステージ: 全スプライトの一斉始動
変数4つ、メッセージ2つを用意する
準備
変数「■サンズのサイズ」を追加
サンズスプライトのサイズ(旗クリック時に80に設定し以降変更しない定数)
変数「★サンズのX座標」を追加
サンズの基準X座標(テレポートや位置リセット時に参照する)
変数「★サンズのY座標」を追加
サンズの基準Y座標(テレポート後の位置を決める)
変数「■ダンス速度」を追加
サンズのダンスアニメーションの移動速度(旗クリック時に0.4に設定し以降変更しない定数)
メッセージ「スタート」を追加
メッセージ「ハート操作開始」を追加
実装
サンズのサイズと立ち位置に関係する変数を初期化して、ゲームスタートのメッセージを送る
#3サンズの頭: イントロの初期化
まずサンズの頭から作っていくよ。
準備
スプライト「サンズの頭」を開く
| スプライトについて |
|---|
| サンズの頭部スプライト。表情コスチュームを切り替えながらセリフをタイプライター風に表示し、攻撃開始の合図を出す |
| どんな役割か |
| サンズが喋るよ!表情を変えながらセリフを1文字ずつ表示する仕組みと、攻撃の引き金を引く仕組みを一緒に作ろう。 |
実装
「スタート」を受けたら表示していく
サイズを変数で持っとくと、あとでちょっと移動したり揺れたりする処理がめちゃくちゃ楽になる。
#4サンズの頭: 頭を定位置へ
定位置にセットして、一瞬だけ待機。
#5サンズの胴体: 胴体スプライトの登場
サンズの頭を画面に出せたから、ここからは胴体スプライトに切り替えるよ。
準備
スプライト「サンズの胴体」を開く
| スプライトについて |
|---|
| サンズの胴体スプライト。ポーズ切り替え・ダンスアニメーション・左右へのよけ動作を担当する |
| どんな役割か |
| サンズの体を動かそう!腕組みや上向きなどのポーズを切り替えて、ダンスやよけ動作もつけるよ。 |
実装
胴体側も同じ「スタート」を受けて、色々調整する。
頭と体が別々に動いても、同じサイズ・同じ基準位置の変数を使うから、頭と体が連携できる仕掛け。
#6サンズの脚: 脚の初期化
準備
スプライト「サンズの脚」を開く
| スプライトについて |
|---|
| サンズの脚部スプライト。頭・胴体と連動してシェイクや位置合わせを行う |
| どんな役割か |
| サンズの足元を作ろう!頭や胴体と一緒に揺れたり位置を合わせたりする脚のスプライトだよ。 |
実装
サンズの脚も、同じ感じで整える
#7FIGHTボタン: たたかうボタン
ここからは選択肢のボタン本体を作っていくよ。トップバッターは「たたかう」ボタン。
準備
スプライト「FIGHTボタン」を開く
FIGHTボタン| スプライトについて |
|---|
| バトルメニューの「たたかう」ボタンスプライト。カーソル選択状態に応じてコスチュームを切り替える |
| どんな役割か |
| 「たたかう」ボタンを作ろう!カーソルが当たると選択状態になってハイライトされる仕組みを実装するよ。 |
実装
「スタート」を受けたらコスチュームとサイズをセットする。
#8ACTボタン: こうどうボタン
準備
スプライト「ACTボタン」を開く
ACTボタン| スプライトについて |
|---|
| バトルメニューの「こうどう」ボタンスプライト。カーソル選択状態に応じてコスチュームを切り替える |
| どんな役割か |
| 「こうどう」ボタンを作ろう!カーソルが当たると選択状態になる仕組みを実装するよ。 |
実装
隣の「こうどう」ボタンも中身はほぼ同じ。
#9アイテムボタン: アイテムボタンを出す
準備
スプライト「アイテムボタン」を開く
アイテムボタン| スプライトについて |
|---|
| バトルメニューの「アイテム」ボタンスプライト。カーソル選択状態に応じてコスチュームを切り替える |
| どんな役割か |
| 「アイテム」ボタンを作ろう!カーソルが当たると選択状態になる仕組みを実装するよ。 |
実装
3つ目の「アイテム」ボタン
#10みのがすボタン: みのがすボタンを出す
準備
スプライト「みのがすボタン」を開く
みのがすボタン| スプライトについて |
|---|
| バトルメニューの「みのがす」ボタンスプライト。カーソル選択状態に応じてコスチュームを切り替える |
| どんな役割か |
| 「みのがす」ボタンを作ろう!カーソルが当たると選択状態になる仕組みを実装するよ。 |
実装
ラストは4つ目の「みのがす」ボタン
#11サンズの頭: セリフ表示ブロックを作る
セリフ用のブロックを作り引数にテキストと速度を持たせる。
準備
スプライト「サンズの頭」を開く
カスタム定義「セリフを表示する」を追加
テキストをタイプライター風に1文字ずつ表示し、Zキーで送る
変数「表示中テキスト」を追加
タイプライター表示で現在画面に出ている文字列
変数「残り文字数」を追加
タイプライター表示の残り文字数カウンタ
実装
まず「表示中の文字」を空っぽにして、「残り文字数」に文章の長さをセット。
この数を1ずつ減らしながら文字を足していく作戦。
#12サンズの頭: 1文字ずつ足すループ
ここが心臓部。「残り文字数」がマイナス1になるまでくり返して、「表示中の文字」のうしろに次の1文字をくっつける。
#13サンズの頭: 画面に出して残りを減らす
1文字つなげたら「残り文字数」を1つ減らして、いまの「表示中の文字」を吹き出しに出す。
#14サンズの頭: タイプ音を鳴らす
文字を出すたび、いまの文字が空白じゃないときだけ音を鳴らす。空白は飛ばす。
引数でセリフごとにテンポを変えられるのは細かいね。
#15サンズの頭: 全文スキップの親切設計
1文字ずつが待てない人のために、Xキーが押されたら文章をいっきに全部表示。あとはZが押されるのを待って、この表示処理を打ち切る。
このセリフを1文字ずつ出すやり方は「タイプライター表示」って呼ばれてて、RPGやノベルゲームの定番テク。
#16サンズの頭: 送り待ちの調整
Xキーが離されるのを待つ。
こうしないとキーを押しっぱなしで全部スキップされちゃう。一拍おくことで、誤操作で読み飛ばすのを防いでるってわけ。
#17サンズの頭: あの第一声
いま作った「セリフを表示する」を呼び出して、おなじみの第一声を流す。「きょうは ステキな日だ。」から3つのセリフを畳みかける。
……アンダーテールは本当にセリフも良いよね!
#18サンズの頭: 口を開いて決めゼリフ
ここがイントロの決め台詞。ガっと刮目して「地獄で 燃えてしまえばいい」と言い放つ。
おだやかな話から急にこの一言。この温度差こそ、この作品いちばんの見せ場。
#19サンズの頭: 最初の攻撃へ
準備
メッセージ「最初の攻撃」を追加
ゲーム開始直後のイントロ攻撃の開始を通知する
実装
セリフが終わったら、「最初の攻撃」の合図を送っていよいよ戦闘へ。
イントロから戦いへ、物語が動き出す瞬間。ここから先は細やかなアニメーションとガスブラ波状攻撃で容赦なくプレイヤーを追い詰めていく
#20テレポートエフェクト: テレポート係の初期化
次はサンズが瞬間移動するときのエフェクトを作っていく
準備
スプライト「テレポートエフェクト」を開く
テレポートエフェクト| スプライトについて |
|---|
| サンズのテレポート演出を制御するスプライト。BGM音量の切り替えとランダム攻撃の制御も担当する |
| どんな役割か |
| サンズが瞬間移動するエフェクトを作ろう!テレポートの演出とランダムで攻撃パターンを変える仕組みを作るよ。 |
実装
「テレポートエフェクト」スプライトは、旗が押されたら画面の真ん中へ行って、いったん隠しておく。
普段は見えない裏方だけど、テレポートの瞬間だけ仕事をする係。
#21テレポートエフェクト: テレポート開始
「最初の攻撃」を受け取ったら、シュンッていう、あの瞬間移動の音を鳴らす。
#22テレポートエフェクト: 位置を送って瞬間移動
準備
メッセージ「テレポートZ」を追加
サンズのテレポートエフェクト開始を通知する
実装
音でテレポートの前後を挟むと、瞬間移動っぽさが出る。
#23サンズの頭: テレポートの目光り
準備
スプライト「サンズの頭」を開く
実装
「テレポートZ」が来たら高さを「サンズのY座標」に合わせて、3回「黄色目」と「青目」を切り替えて目を点滅させる。
テレポートの不気味な感じがでるっしょ
#24サンズの胴体: テレポート演出
準備
スプライト「サンズの胴体」を開く
実装
ブラスターが出るときの効果音も鳴らす。
#25サンズの胴体: コスチューム逆送り
コスチュームを番号で指定すると、こういう「1つ前に戻す」処理がスッと書けるやつ。
#26サンズの脚: 脚のテレポート
準備
スプライト「サンズの脚」を開く
実装
瞬間移動だから、滑らかに動かさず一発で位置を変えるのがポイント。
#27バトルボックス: バトルボックスの準備
ステージの裏方が整ったから、ここからはプレイヤーが動き回る舞台「バトルボックス」を作っていくよ。
準備
スプライト「バトルボックス」を開く
| スプライトについて |
|---|
| プレイヤーが動き回る戦闘用の白枠ボックス。攻撃に合わせてコスチュームを切り替えてサイズ・形状を変える |
| どんな役割か |
| 戦いの舞台になる四角いボックスを作ろう!攻撃によってボックスの形や大きさが変わるよ。 |
実装
旗が押されたらいったん姿を隠して、最前面に出してから100層ぶん奥に下げてレイヤーを整える。
毎回「スタート」位置を同じレイヤーに固定するため。重なり順がブレると、ボックスがハートや骨に隠れて見えなくなる。最初に基準を作っとく感じ。
#28バトルボックス: テレポート後の正方形
テレポートのたびに位置と形をリセットして、毎回まっさらな状態から始められるようにしてる。
#29ハート(魂): ハートの初期設定
ボックスの舞台ができたから、次は主役、プレイヤーが操作する「ハート」いわゆる魂を作っていくよ。
準備
スプライト「ハート(魂)」を開く
| スプライトについて |
|---|
| プレイヤーが操作するハート型の魂スプライト。赤モード(4方向移動)と青モード(重力あり)の2種類の操作方式を持つ |
| どんな役割か |
| プレイヤーが操作するハートを作ろう!矢印キーで動かして骨やブラスターを避けよう。赤と青で動きが変わるのがポイントだよ。 |
変数「★ハートモード」を追加
ハートの操作モード(r=赤モード、b=青モード)
変数「Y方向速度」を追加
ハートの縦方向の移動速度(青モードで重力の影響を受ける)
実装
旗が押されたら大きさを82にして、「ハートモード」を0、「Y方向速度」も0にリセット。
リセットを忘れると前回の速度が残ったまま「スタート」して、いきなりハートがすっ飛んでいくバグになりがち。最初に0で揃えとくお約束。
#30ハート(魂): 赤ハートで待機
準備
変数「X方向速度」を追加
ハートの横方向の移動速度
実装
「X方向速度」も0にしてコスチュームを「赤」にセット。最前面に出してから「隠す」で隠す。
#31ハート(魂): テレポートでハート登場
準備
変数「被弾判定有効」を追加
ハートの被弾判定が有効かどうか(1=有効、0=無効)
実装
「テレポートZ」を受けたら「被弾判定有効」を1にして当たり判定をオン、最前面に出して表示する。
#32ハート(魂): 下へスッと滑り込む
短い時間で動かすと、テレポートで叩き落とされたみたいな勢いが出る。
#33ハート(魂): 着地のシェイク
準備
メッセージ「シェイク」を追加
サンズとボックスをシェイクさせ被弾演出を行うよう通知する
実装
落下より少しゆっくり戻すことで、ドンッと落ちて反動でちょっと跳ねる、みたいな手触りになる。
#34サンズの頭: 画面を揺らす
次は画面を揺らすぞ!
準備
スプライト「サンズの頭」を開く
変数「揺れの強さ」を追加
シェイクアニメーションの振れ幅(12から0に減衰)
実装
「揺れの強さ」を少しずつ減らすから、だんだん収まっていく感じ。
なんか複雑な演算に見えるけど乱数を使っているだけの単純な計算だから安心してほしい。ちょっとズームが小さいから一時停止して確認してみて
#35サンズの頭: 揺れを止める
揺らし終わったら定位置に戻して、このスプライトの他の動きを止めて、「空白」コスチュームで無表情にする。
#36サンズの胴体: 被弾でシェイク
準備
スプライト「サンズの胴体」を開く
実装
胴体も同じように演算を組んで、ブルブルって揺れるようにする
#37サンズの胴体: シェイク後の戻し
震えが終わったら定位置に戻してからコスチュームをパッと切り替える。
#38サンズの脚: 脚もシェイク
準備
スプライト「サンズの脚」を開く
実装
次は足も同じくやる。同じ「シェイク」の合図で一緒に震えるから、サンズ全体が1体として揺れて見える。バラバラのスプライトを連動するのにメッセージは役立つ
#39バトルボックス: 画面を揺らすシェイク
準備
スプライト「バトルボックス」を開く
メッセージ「ヒット判定」を追加
ハートの被弾判定ループの開始を通知する
実装
バトルボックスも揺れる。ヒット判定メッセージもこのタイミングで用意しておく。
#40FIGHTボタン: ボタンを揺らす
準備
スプライト「FIGHTボタン」を開く

実装
ボタンにも「シェイク」をつける。
#41FIGHTボタン: 定位置に戻す
揺れの演出と定位置キープ、セットで1つの仕組み。
#42ACTボタン: 攻撃でボタンを揺らす
準備
スプライト「ACTボタン」を開く

実装
行動ボタンも同じようにする。
#43ACTボタン: 揺れを元の位置へ
揺れが終わったら、きっちり元の位置に戻す。
#44アイテムボタン: アイテムも揺らす
準備
スプライト「アイテムボタン」を開く

実装
アイテムボタンも同じ!
#45アイテムボタン: 元の位置に戻す
定位置に戻すのも忘れずに。
#46みのがすボタン: みのがすを揺らす
準備
スプライト「みのがすボタン」を開く

実装
OK、見逃すボタンでラストだ
#47みのがすボタン: 定位置へ戻す
はい、定位置に戻して完了!チェックしてみようか
#48ハート(魂): 青モードに切り替え
準備
スプライト「ハート(魂)」を開く
実装
ここでハートを「青モード」に切り替える。「ハートモード」にbをセットする。処理はこのあと作り込んでいく。
赤モードは上下左右に自由移動、青モードは重力とジャンプ。同じハートなのに変数の中身ひとつで別ゲームみたいに操作感が変わるのが、この作品の面白いところ。
#49ハート(魂): 赤モードの移動を部品にする(左)
準備
カスタム定義「赤モードの移動」を追加
赤モード時のハート移動処理(上下左右4方向・壁判定)
実装
ここからはハートの動き方を部品にしていく。まずは「赤モードの移動」を自作ブロックにまとめる。中身は4方向移動で、左向き矢印で左へ−5動かして、壁の色に触れてたら同じぶん戻す。
キャラを動かすとき、ただ座標をずらすだけだと壁をすり抜けちゃうよね。
だからこの作品は「動かす、壁にめり込んでたら押し戻す」の2段構えにしてる。この考え方をゲームの世界では衝突解決って呼ぶ。
マリオもゼルダも、根っこはこういう地道なチェックの積み重ねで動いてるんだよ。
#50ハート(魂): 右も同じ作り
左ができたら右も。
右も動かした後はさっきと同じことをしていく。
#51ハート(魂): 左右の壁ぎわ補正(仕上げ)
はい、灰色の壁に触れてたら逆向きに少し戻して、めり込みを直す。シンプルな衝突解決の完成!
#52ハート(魂): 上キーで上に動く
上下も整えよう。動かす、ぶつかったら戻す、っていう左右と同じ理屈。
#53ハート(魂): 下キーで下に動く
今度は下向きも衝突解決をしておく。
#54ハート(魂): 床へのめり込み補正
これで「赤モードの移動」が完成。
#55ハート(魂): 青モードの横移動
準備
カスタム定義「青モードの移動」を追加
青モード時のハート移動処理(重力・壁スライド・横移動)
実装
次は「青モードの移動」を自作ブロックで組む。まずは横移動。左向き矢印で「X方向速度」をマイナス5、右向き矢印でプラス5、どっちも押してなければ0にする。
ここ、この作品のうまい設計。普通は矢印キーで座標を直接ずらすけど、いったん「X方向速度」って数字をはさんでる。
速度を経由させないと、壁にぶつかったとき跳ね返す処理がうまく書けないんだよね。
#56ハート(魂): 横に動いて、壁なら1だけ持ち上げる
横移動を画面に反映。「X方向速度」のぶんだけ動かして、動いた先が壁の色に触れてたら1だけ上にずらす。
これもさっきやった「衝突解決」だ。重力や壁があるゲームだとだいたい衝突解決が必要だから、きっとこのテクは今後も役に立つぞ
#57ハート(魂): もう1段持ち上げる
こうして1段ずつ入れ子で重ねていくのが、段差登りの基本パターン。少しずつ持ち上げて、登れる高さを稼いでいく。
#58ハート(魂): さらに上の段差もチェック
さらにもう1段
#59ハート(魂): 持ち上げを何段も重ねる
この「上げる、確かめる」のペアを、積み木みたいに積んでいく。
#60ハート(魂): まだ続く段差を判定
1ずつ刻むから、なめらかに登っていける。
#61ハート(魂): 入れ子の深さ=登れる高さ
深くするほど高い段差もいけるけど、そのぶんコードは長くなる。どこまで登れれば十分か、で深さを決める感じ。
#62ハート(魂): 登れない壁ならキャンセル
登れる段差と、越えられない壁を、ここで区別してる。
#63ハート(魂): 来た方向へ押し返す
登れる段差はスルッと登り、登れない壁はしっかり止める。1つの仕組みで段差と壁を両方さばくうまさ。
#64ハート(魂): 横を止めて縦の番へ
青モード移動の仕上げ。いったん横の動きを止めて、ここから縦の落下とジャンプの処理にバトンタッチ。
#65ハート(魂): 縦に動かして床で受け止める
「Y方向速度」のぶんだけ縦に動かして、床の色に触れたら速度を反転させて押し戻し、「Y方向速度」を0にする。
重力で落ちてくるハートを、床でちゃんと受け止める部分。落ちる、ぶつかったら止める、のセットで地面に立てる。
#66ハート(魂): 移動を回すループを用意
作った「赤モードの移動」を実際に回すループから。「ハート操作開始」を受けたら「ずっと」でぐるぐる回し続ける。
#67ハート(魂): モードを見て部品を呼ぶ
ループからは呼ぶだけ。こうしとくと、このあとの青モードも同じループにスッと足せる。
#68ハート(魂): 青モードの判定を追加
赤か青か、ループの中で毎フレーム見分けて処理を切り替える。1つのループで2つの操作方式を回してるってわけ。
#69ハート(魂): 青モードの移動を呼ぶ
定義しといた部品を呼ぶだけで、長い処理がまるっと実行される。
これがカスタム定義のいちばんおいしいところ。
#70ハート(魂): ブルーモードの配置
準備
メッセージ「ブルーモード」を追加
ハートをブルーモード(重力あり)に切り替えるよう通知する
実装
ジャンプ系の操作は、まず足が地面についた状態から始めるのが鉄則。床の近くに配置して、落下速度もゼロでリセットしとくやつ。
#71ハート(魂): 表示して判定オン
見た目を出すのと当たり判定をオンにするのはセットで考えると安全。表示されてるのに当たらない、逆に見えないのにダメージ、みたいなチグハグを防げる。
#72ハート(魂): 青モードを有効化
手順を「位置を整える」と「モードを入れる」に分けてるのがポイント。準備が済んでから有効にすると、切り替わった瞬間にハートがおかしな動きをしない。
#73ハート(魂): ハート操作の心臓部
いよいよメインループ。「ハート操作開始」を受けてずっと動き続ける監視ループを作る。
#74ハート(魂): 青モードかどうかを判定
ループの中で「今が青モードかどうか」を見分けて、青のときだけこの先の重力ジャンプ処理を動かす。
#75ハート(魂): 重力で下へ引っぱる
青モードの第一歩は重力。y座標を常にマイナス1して、ほうっておくと下に落ちるようにする。
#76ハート(魂): ジャンプの入力判定
床にいるときだけジャンプを許すのが大事。空中で何度でも飛べちゃうと重力の意味がなくなるからね。地面判定とキー入力の合わせ技、っていうのがミソ。
#77ハート(魂): 押し続けて高く跳ぶ
ボタンを押してる間だけ上向きの力が続くから、長押しで高く、ちょい押しで低く撃ち分けられる。押す時間で飛ぶ高さが変わる、マリオ系でおなじみのテク。
#78ハート(魂): 加速度でなめらかに落とす
キーを離したら落下する処理になる。
#79ハート(魂): 床にめり込んだら押し戻す
床にめり込んだら1ずつ上に押し戻して、地面の上にピタッと立たせる。これでジャンプは完成!
ゲームのジャンプって、今回みたいに「速度」と「重力」の2つの数字でできてることが多い。
上に飛び出す瞬間に上向きの速度を与えて、その速度を少しずつ減らす。すると速度がプラスからマイナスへ変わって、自然と落下に転じる。
座標を直接いじるんじゃなく、速度を経由させるのが滑らかなジャンプのコツだぞ
#80ハート(魂): レッドモードへ切替
準備
メッセージ「レッドモード」を追加
ハートをレッドモード(通常4方向移動)に切り替えるよう通知する
実装
赤いハートへの切り換えメッセージも受け取る。青のときは重力前提で床近くに置いたよね。赤も位置と速度をリセットしてから始める。
#81ハート(魂): 赤モードで判定オン
あとはモードと被弾判定周りをセットして表示する
#82イントロ骨: イントロ骨の準備
ここからは、イントロの攻撃シーンで飛んでくる骨を作る。
準備
スプライト「イントロ骨」を開く
| スプライトについて |
|---|
| バトル開始前のイントロで登場する骨攻撃スプライト。横方向に高速で飛ぶ骨を担当する |
| どんな役割か |
| バトルが始まる前の骨攻撃を作ろう!ゆっくり揺れてからスッと飛ぶ骨でイントロの迫力ある演出をつけるよ。 |
実装
旗が押されたら、出番が来るまで隠しておくだけ。
まずはシンプルな下ごしらえ。
#83イントロ骨: 骨の登場準備
「シェイク」の合図で骨が動き出す。見た目の効果を全部リセットして、いったん隠して、タイミングを整える。
#84イントロ骨: 警告と出現
赤い枠のコスチュームを表示して「今から攻撃しますよー」とプレイヤーに警告をする。
#85イントロ骨: 骨が突き刺さる
そして骨が下から「ドンっ!」と突き上げてくる感じを作る
超短い時間で動かすと、ヌルッとじゃなく一瞬で突き刺さって見える。
#86イントロ骨: 横向きの骨へ
準備
メッセージ「Z攻撃フェーズ1」を追加
イントロZ攻撃の第1フェーズ開始を通知する
実装
骨をいったん消して、攻撃フェーズの合図を出すよ。
#87イントロ骨: 骨が画面を横断
準備
メッセージ「Z攻撃フェーズ2」を追加
イントロZ攻撃の第2フェーズ(ブラスター)開始を通知する
メッセージ「通常ポーズ」を追加
サンズを通常ポーズに戻すよう通知する
実装
横向きの骨が画面をゆっくり横切っていくよ。
#88サンズの頭: 軽く横に動く
準備
スプライト「サンズの頭」を開く
実装
イントロ攻撃に合わせて、サンズが素早く手を動かす。サンズの号令で骨が動くように見えるかっこいいところ!
ちょっと動くだけでも、攻撃のリズムに乗ってる感じが出るのがうまい。地味に効くやつ。
#89サンズの胴体: 胴体の攻撃アニメ
準備
スプライト「サンズの胴体」を開く
実装
胴体も攻撃に合わせて動かすぞ
#90サンズの胴体: 素早い切り替え
コスチュームをタイミングよく切り換える超大事なタイミング指定
#91ハート(魂): ハート出現の合図
準備
スプライト「ハート(魂)」を開く
実装
ハートの操作方法を青から赤に変える。
初めてのプレイヤーにとっては色で操作が切り替わる瞬間はパニックになるけど、それが楽しくもあるよね
#92サンズの胴体: 通常ポーズ
準備
スプライト「サンズの胴体」を開く
実装
サンズをいつもの見た目に戻す合図。
#93サンズの胴体: 腕組みポーズ
準備
メッセージ「腕組みポーズ」を追加
サンズを腕組みポーズに切り替えるよう通知する
実装
「腕組み」もこのタイミングで作っておこう
#94サンズの頭: 逆向きに戻る
準備
スプライト「サンズの頭」を開く
実装
次の攻撃のタイミングでサンズの頭を正常な位置に戻しておく
ちょっとしたタイミングまで考えて作ってあるのが、この参考作品のすごいところだ。作者さんは超有名スクラッチャーさんだから知らない人はリミックス元をチェックしてみてね。
#95イントロブラスター: ブラスターの準備
ok、いよいよガスターブラスターを準備するぞ。サンズといえばガスブラだよね!
準備
スプライト「イントロブラスター」を開く
イントロブラスター| スプライトについて |
|---|
| バトル開始イントロで登場するガスタービラスタースプライト。横向き・斜め・大型の3パターンを担当する |
| どんな役割か |
| サンズの必殺技ガスタービラスターを作ろう!横・斜め・大型の3パターンを組み合わせた迫力あるイントロ演出を実装するよ。 |
実装
#96イントロブラスター: ブラスター出現
最初は非表示にしておく
パッと出すんじゃなくて、じわっと現れさせるフェードインを実装していく
#97イントロブラスター: ぐっと近づいて発射
幽霊効果と繰り返し処理でフェードインさせる。出てきたら発射音を鳴らして、プレイヤーに「今からガスブラが来るぞ!」って伝える。
#98イントロブラスター: 発射アニメを回す
ブラスターを撃つときの、口がパカッと開くアニメをつけるよ。
間隔を変えるだけで、動きに緩急が出るよね。同じアニメでもテンポを変えると印象が変わる。
#99イントロブラスター: 横ブラスターの準備
ok、このブラスターをいろんな場所に配置して攻撃するのがサンズの定番パターンだ。まずは左右4箇所から発射させる定義を作るぞ
準備
カスタム定義「横向きブラスター」を追加
上下左右に向けた4つの横向きブラスタークローンを配置して発射する
実装
ポイントは向きを決めてから回すこと。
向きを決めてから置く場所を決めると、ブラスターを好きな角度にビシッと並べられる。
#100イントロブラスター: 角度を変えて2つ配置
間に少しずつ向きを回すから、クローンごとに狙う方向が変わる。1個ずつ角度をずらして並べていく感じ。
#101イントロブラスター: 残り2つで四方向
同じ調子で残り2つも配置。向きを回してクローンを追加、合計4つのブラスターが上下左右をぐるっと囲んだはずだ。もうちょい、クローンの片付けまで実装してからチェックしてみよう。
#102イントロブラスター: 攻撃の波を組む1
横向きの4連ブラスターがドンッと登場。さっき作った仕込みが全部つながる瞬間。
#103イントロブラスター: ブラスターが消える
ガスブラが、すーっと消えていくフェードアウトの動きを作る
幽霊効果を繰り返し変えることで実現できる。
登場のフェードイン、退場のフェードアウトは、実装がカンタンだけど効果的な演出だから、今後も役立つテクニックの1つ
#104イントロブラスター: クローンを片付ける
フェードアウトが終わったら、このクローンを消す。
#105イントロブラスター: 斜めブラスターの準備
準備
カスタム定義「斜め向きブラスター」を追加
4方向に斜め向きのブラスタークローンを配置して発射する
実装
次は斜め向きのブラスター。「斜め向きブラスター」専用ブロックの中で、サイズを130にして隠す。やり方は横向きとほぼ同じ。
違うのは最初に向ける角度。マイナス135度っていう斜めの向きから始めるのがポイント。
#106イントロブラスター: 斜めに2つ配置
斜め向きも、角に置いてクローン化、90度回しながら画面の四隅を狙うように並べる。
#107イントロブラスター: 四隅をそろえる
これで4つの角っこ全てからブラスターが発射される。
こういうクローンの数や角度や大きさなどを変えたら、オリジナルのサンズ戦も簡単に作ることができる。そういうのもスクラッチのいいところだよね!
#108イントロブラスター: 攻撃の波を組む2
斜め向きブラスターもさっきの攻撃に続けて設置する。ここで間を空けないと、弾を避ける隙がなくて理不尽な難しさになっちゃう。1秒待つから、プレイヤーによける余裕が生まれてちゃんとゲームになる。
#109イントロブラスター: 攻撃の波を組む3
ここでも待ち時間が攻撃のテンポを作る。
#110イントロブラスター: 大型ブラスターの準備
準備
カスタム定義「大型ブラスター」を追加
左右に大型のブラスタークローンを2つ配置して発射する
実装
締めくくりは「大型ブラスター」。「大型ブラスター」専用ブロックでサイズを250、横向きや斜めより倍くらいデカい。隠してから左側にセット。
#111イントロブラスター: 左右から大型を2門
大きいから2門で十分な迫力。左右から挟み撃ちするレイアウト。
#112イントロブラスター: 攻撃の波を組む4
準備
メッセージ「Z攻撃フェーズ3」を追加
イントロZ攻撃の第3フェーズ(本番バトル移行)を通知する
実装
大技だから余韻も長めにセットしておく。
プレイヤー大混乱間違いなしっしょ!
#113ハート(魂): 被弾チェックを常時まわす
準備
スプライト「ハート(魂)」を開く
実装
今度はハートがダメージを受けたかを見張る仕組み。「ヒット判定」を受けたら「ずっと」で常時チェックを始める。
被弾を見逃さないための、休まない見張り番。
#114ハート(魂): 判定オン・オフのフラグをかませる
ループの中ではまず「被弾判定有効」が1かを確認する。
判定をオン・オフできるフラグを1枚かませとくと、無敵時間や演出中だけ当たらない、みたいな制御がやりやすい。スイッチ1個で当たり判定を切れるってわけ。
#115ハート(魂): 骨に当たったかを色で判定
ダメージの本体。いくつかの色のどれかに触れたら被弾、って判定を「または」でつなぐ。
「当たり判定」を色で見るのも定番テクだね。
プロのゲームだと座標や図形の重なりで細かく計算するけど、「色に触れたか」だけで判定できるのがスクラッチ流。
骨を色分けしとけば、緑は当たる・水色は条件つき、みたいに1スプライトで何種類もの判定を作り分けられる。見た目と判定を色でひもづける、シンプルだけど強いやり方。
#116ハート(魂): ダメージでHPを削る
当たったときはシンプル。ヒットポイントを1減らして、被弾の効果音を鳴らす。
#117サンズの頭: さあ、いくぞ
本格バトルの開始を演出する一言を作る。
準備
スプライト「サンズの頭」を開く
メッセージ「バトル開始」を追加
本番バトル開始を全スプライトに通知する
実装
勢いよく言い切る感じ。「じゃあ行くぞ」ってセリフを出す。テンポは速め。
引数1つでキャラのテンションまで表現できるのが、この仕組みの面白さ。
#118ステージ: BGMをループ再生
準備
スプライト「stage」を開く
ステージ
実装
バトル本番のBGM。「バトル開始」を受けたら音量を100にして、「ずっと」の中で「終わるまで音を鳴らす」で曲をエンドレス再生。
#119サンズの頭: バトル開始の合図
このあと枠の大きさを変えたいからバトルボックスを長方形に切り替えるメッセージを用意するぞ
準備
スプライト「サンズの頭」を開く
メッセージ「長方形に切り替え」を追加
バトルボックスを長方形に変更するよう通知する
実装
メッセージ送信後にセリフを消す。何も言わないようにすると、セリフが消える仕組みになっている
#120バトルボックス: バトル開始の演出
バトル開始されたらバトルボックスに動きが引き継がれる。ダンスっていうメッセージはサンズが受け取る予定。
準備
スプライト「バトルボックス」を開く
メッセージ「ダンス」を追加
サンズのダンスアニメーションループを開始させる
実装
バトルボックス自体のコスチュームも変更していく処理を繰り返し、滑らかに図形が変更される演出をする
#121バトルボックス: 長方形ボックスへ
で、「バッドタイム」っていうメッセージを作っておく!
準備
メッセージ「バッドタイム」を追加
バッドタイム状態(攻撃中・テキスト表示)への移行を通知する
実装
最後に「長方形」コスチュームに切り替える。ここにテキストを描画したり、この後作っていく攻撃カーソルの動きなどを出力することになる。
バッドタイム、いわゆる「サイアクな目に合わされそう」な熱い戦いをじっくり作り込んでいく。プレイヤーには悪いけど、作り手としてはワクワクしてくるよね!
#122サンズの頭: 定位置へ降りる
準備
スプライト「サンズの頭」を開く
変数「★ダンス中フラグ」を追加
サンズがダンス中かどうかを示すフラグ(1=ダンス中、0=停止)
実装
「長方形に切り替え」を受けたサンズが、5回に分けて少しずつ下に降りる。「サンズのY座標」も同じだけ下げて体や脚と合わせて、最後に「ダンス中フラグ」を1にする。
#123サンズの胴体: 長方形へ下がる
準備
スプライト「サンズの胴体」を開く
実装
胴体もマイナス3ずつ5回、合計15下がる。
サンズが3ずつ下がる……大切なことなので2回言いました m(_ _)m
#124サンズの脚: 脚がゆっくり下がる
準備
スプライト「サンズの脚」を開く
実装
脚は一瞬待ってから、ゆっくり下げる。
まとめ
ここまででゲームの骨格ができたね。旗を押したらHP表示、バトルボックス表示、ハートが赤モードで動いて、青モードではジャンプできる。変数1つでモードを切り替える発想は、この先ずっと効いてくるぞ。