ギミックのリファクタリング|スクラッチでアスレチックゲームの作り方㉑
2025/01/18 09:00に公開予定 楽しいリファクタリングの回です!今回はギミックを改善しよう。この次にギミックにもっと面白い機能を追加する下準備でもあるぞ。
スクラッチゲームを作る方法が初心者向けから超上級者向けまであるよ!スクラッチチュートリアルで現役エンジニアのコーチと一緒に学ぼうぜ!
マリオ、シューティング、マイクラ、オンラインゲームなど作りたいと思っていたゲームの作り方が満載だぞ。
2025/01/18 09:00に公開予定 楽しいリファクタリングの回です!今回はギミックを改善しよう。この次にギミックにもっと面白い機能を追加する下準備でもあるぞ。
敵をふんづけて倒すというのは任天堂のマリオが生み出した画期的なアイデアと言われている。1つの時代を作り上げたと言っても過言ではないマリオの一部を僕らのアスレにも実装してみよう。
敵がいるのもアスレチックゲームの面白みだよね。アスレの敵はシンプルな動きが多いから、実装難易度はそこまで高くない。とはいえ色々考えることがあるので一緒に見ていこう。
本格ゲームっぽさを出すならゲームオーバーとメインメニューがないとね。格式が高くなってプロっぽさ倍増だ!
鬼のように厳しいアスレを作るならチェックポイントがないとプレイヤーのやる気が保たないよね。そこで今回はチェックポイントを作ってみよう。
キーをゲットしないと開かないドアがあったら、それだけで挑戦意欲をかきたてるよね!どうコーディングする?一緒に見ていこう!
アイテムを集めて高得点を目指すのもアスレの面白みの1つだよね。やってみよう!
オシャレなステージにするだけでプレイしてもらえる確率がグッと高くなるぞ!オシャレとはおもてなしの心なのである。貪欲にプレイしてほしい気持ちを伝える、その手段の1つがステージをオシャレにすることだ!
アスレにおいて重要な存在であるギミックをしっかり作り込んでおくと、少し無理のあるステージ設計でもゲームがこわれず、むしろ難しくて楽しいバランスの良いゲームが完成するぞ。
せっかくジャンプを実装したからためしに敵を飛び越えられるように改修してみようか!
ジオメトリーダッシュのスパイクみたいなトンガリや、フロア イズ ラーバ!みたいな動くマグマも作れるぞ。
3Dゲームでタテの動きを作れたから、今度は応用してジャンプも実装してみたい。ジャンプできたらゲーム性がグッと高まって、いろいろなアイデアが湧いてくるよ!
天井の空白に飛び込むと、そこは新しい天上界だった!雲の上のシーンや洞穴のシーンなども創れるタテ構造化にチャレンジしよう!
マウスカーソルに照準みたいな画像を表示すると、なんだか3Dシューティングゲームが作りたくなっちゃうね。レティクルやクロスヘアと呼ばれる照準を実装するよ。
いよいよ壁ジャンプだ!最高のアスレが今ここに。
ユーザーがScratchでプレイしているか、TurboWarpでプレイしているかによって処理を変えたいときがある。そういうときはこの拡張機能が使える。
3Dでヨコを見るのはカンタンだけど、タテ方向に視線を変えるとなると大混乱!でも天井に潜む忍者を見つけたり、地底に潜るモグラを見つけるゲームなら上下の視線操作は必要だよね!
ジャンプを洗練させるぞ。アスレの命であるジャンプだからこそガッツリこだわりたい。ジャンプを作り込むのは良ゲーへの近道だったりする!
多くのスクラッチャーを絶望させてきた坂道処理。どうやればいいのか、見当がつかない人も多いこのロジックのすべてを白日のもとにさらす。
足を上げて腕を振ってワンツーワンツーっと歩き回るアニメーションを実装するぞ。派生してジャンプや落下中のコスも変えるぞ。
ヒットボックスを使えば、どんなコスチュームの形でも同じゲーム体験を作ることができる。変なところでキャラの動きが止まっちゃうこともなくなるぞ。
シーンの切り替えを実装するよ。画面の端まで行ったら次のシーンが移る仕組みのベース部分。
基本的な動きを洗練するリファクタリングの回だよ。リファクタリング大好き。
アスレチックゲームの作り方が連載スタート!最高の作品を一緒につくろう!
敵の目線もレイキャスターで実装すれば、プレイヤーを見つけたかどうか判断できるって?うーん、でも負荷が高すぎてスクラッチでは無理そう……一体どうすればいいんだ!?
斬撃と残像!ソードを振り回して敵を斬りまくるゲームの基本となるモーションをかっこよく実装してみよう。
さらに複雑な図案を打ち上げいく!さらに花火の尻尾の部分あるじゃん。打ち上がる最中。ピューンドカンのピューンのところ。あの名前は昇り龍とか昇竜っていうらしいぞ。く、封印されし厨二病がうずくぜ……。
ただ花火っぽい弾幕を作るのではなくて、複雑な図案のとおりに花火を打ち上げたい。そんなことできるのか!?
なめらかに色が変わる体力ゲージを作る!満タンのときは緑で、ピンチに近づくと赤くなるっていうゲームではよくある仕様をスクラッチで再現するぞ!
車(タクシー)を運転してお客さんの待つタクシースタンドに駐車するゲームの作り方。車をちゃんと前輪駆動で動かすところが面白いよ。
バックパックを経由してモバイル化とオンライン化をしていこう!これで3Dチュートリアルは完成だよ。(そう思っている時期が僕にもありました)
テクスチャを貼り付けた壁をさらに洗練して、本格的な3D空間を完成させる。
パフォーマンスが向上したから画像を壁に貼り付けることができるようになった。いよいよテクスチャを使ったリッチな3次元を創出する時が来た。
3Dの常識が変わる。キミの世界が変わる。天才は止まらない。天才的なコーディングを一緒に体験しよう!鳥肌モノのチュートリアルできました……
アイテムを3D空間に出現させてゲットできるようにしよう。どんどんゲーム性が高まってきているぞ!
ゴンザレスが勝手に敵を動くようにしてしまった!なんてこった。ナノと、新しい敵がプレイヤーに迫りくるぞ!
エンティティに陰影を付けて、遠くにいる敵は暗く、近くにいれば明るく見えるようにコーディングしていくよ。
スクラッチでスタート画面を作るカンタンな方法を紹介するよ。これを応用すればOK!
奥行きを実装することで「壁の前」と「壁の後ろ」という別次元の情報を空間に持たせる。真の3Dはここからだった!
はじめてのスクラッチプログラミングにピッタリの、カンタンな迷路ゲームを作ろう!
ついに敵が現れた!距離も遠近感も正確に描画していく
壁に触れているときの移動を劇的に改善する!こういう細部への配慮がゲーム体験を向上させるんだ。
壁の衝突判定を作って移動を改善するよ。
空間の歪みを補正したり、壁のトゲトゲをスムーズにして、よくあるスクラッチの3D実装とは一線を画したハイクオリティなコーディングを紹介する!
3D空間にシャドーを作って、立体感を際立たせていく一歩上を目指すテクニックを紹介する。
3D化はしたけどスキマが空いてて、ちょっと都合が悪い。これを解像度という変数を用意して直していくぞ!
プレイヤーからビームを出すことで壁との距離を測り、3D化に必要なデータを集める。そしたらもうサクッと3D化だ!
ゴンザレスが家宝のスターを盗んで逃走中!どうやら3D迷宮に逃げ込んだらしい。急いで3D迷宮を作って追いかけよう!
Ready Go!でゲームスタートするときの演出として、Goの文字が左右両サイドにスライドする両開き処理を実装する。簡単な数学を使ってクールに仕上げていくぜ。
この回は密度濃いぞ。ボタンがフワフワするアニメーション、マウスが乗ったときのアニメーション、そしてスコアを中央に表示する定数利用方法、ギュギュッと詰まっておる!
コインをゲットする!がっぽりがっぽり♪
どえ!?ゲームオーバー作ってただけなのに、なんかヤバいバグったぞ!?これ、直るんですか……?
目指せ7,000点!進化したらスコアアップするようにするぞ。いや、7,000点は作者でも無理か……でも3,000点はいきたい。
進化の音が聞こえてきたぜ!ポッポッポー〜〜っ!(*ハトではありません)
同じ種類の玉がぶつかりしとき、伝説の現象が起こるであろう。古代より伝わりしその名は「シンカ」なり!なりけり!
宝石が大量発生したら最高じゃんwでもゲームだと困っちゃうね!キーを押したら玉を落とすようにしたらバグったんよ。まぁサクッと倒すぜ!
ネクストに表示する待機玉を作るよ!箱の中の玉数によって確率を変動させる処理が今回の目玉だよ。
線の位置を、ポッピィーの手の位置になるようにずらした。たったそれだけなのにヤバいバグが発生したぜ!でもサクッと倒す。
雲を作って箱の枠内でしか動かないように実装しよう!ついでにスクラッチの裏技も紹介するよ。
ステージコードをデコードして、2面を作ってみよう!
玉と玉が重なったかどうかを直線距離を使って算出し、重なっていれば衝突処理を行っていく。衝突は座標とスピードの計算が肝になってくるよ。この作品の最大の山場だから一緒にがんばろう!
ステージを複数作れるようにして、ゲームに深みをもたせるよ。しかも自作ステージをコメントで共有できるようなセーブコードも生成できるようにするぞ!
スクラッチでスイカゲームを作るぞ!
落ちてもオチないというお笑い芸人だったら地獄のようなバグがあった、これを直しつつ品質を向上する施策をいくつかやるよ!
マリオメーカーみたいにステージをカンタンにカスタマイズする仕組みを作っていくぞ!
パラパラ漫画を作るみたいにコスチュームをどんどん変えていき、ヌルヌル動くアニメーションを実装するよ!だけじゃなくて、パーティクルで土ケムリも再現!
話題のスイカゲームをジョイスティックでモバイル対応!よりきめ細かい操作感でスイカを作れるぞ!
パラパラ漫画を作るみたいにコスチュームをどんどん変えていき、ヌルヌル動くアニメーションを実装するよ!
キーを長押ししたら普段よりも高く跳ぶ機能を実現して、もっとマリオっぽい機能性を実装しよう!
マリオが歩く!ジャンプする!美しいムーブメントの完成だぁ!
数字しか格納できないクラウド変数を使って、ユーザー名を共有する方法を紹介するぞ!
「◯に触れたら」ブロックを使わずに、数学的方法で衝突判定を作るぞ!使うのはカンタンな式だから安心してね。
ステージの基礎はできた!今回はもっと洗練させることで本格的なスクロールゲームの地盤を確固たるものにするぞ。
ランダム生成されたタイルのグリッドができた!次はコレをもっとステージらしい外観になるようにリストを使った管理方法に挑戦していく!
タイルをグリッド状に並べることに成功したから、今度はスクロールする仕組みを作っていくぞ!
マリオ、マイクラ、忍者伝などの本格スクロールゲームを作ってきたグリフパッチさんが、スクロールゲームの作り方を公開してくれた!マップチップをタイルのように並べるゲームエンジンを一緒に作って、君も大人気スクラッチゲームを生み出そうぜ!
モバイル対応したスティックで、自由回転するスプライトの向きを算出したいときは、atan(アークタンジェント)という関数を使うと便利だよ。 そしてatanの罠ってタイトルだが、atanは悪くない……悪いのは数学オンチなワイやでw
モバイル対応の神スプライト「スティック」を導入して、ぜんぜん関係ない作品をモバイル対応してみる!
土台はできた、いよいよマルチタップ可能なモバイル対応を実現するぞ。準備はいいか!?
多くの猛者が挑戦しては散っていった幻の機能「マルチタップできるモバイル用スティック」その幻のヴェールがついに暴かれる!