スクリーンショット_2018-10-30_17

Scratchでポケモンぽいゲームを作る制作過程 #1

今回から制作過程を書いていきますが、プログラミングの基本について全て説明していると長くなってしまうのでそのへんは省略します。

1でも書きましたがScratchの良いところは他の人の作ったプロジェクトをいじり倒せるところなので、「どういう風に動いてるんだろう?」と興味を持ったら実際に動かしてみてください。

該当するプロジェクトのリンクはその都度貼っていきます。


Scratchの基本知識

Scratchではゲームは「プロジェクト」という単位で呼ばれます。

またいくつかのプロジェクトを「スタジオ」にまとめることもできます。

私が作っているポケモンぽいゲーム(PachiMon)はある程度開発が進んだらキリのいいところでコピーして新たなプロジェクトにしています。

スタジオ
・プロジェクト1
・プロジェクト2
・プロジェクト3
・...

PachiMon
・PachiMon-1
・PachiMon-2
・PachiMon-3
・...


ある程度開発が進むとパッと見ではなにがどうなっているのかわかりにくいですが、このようにプロジェクトを区切ることでスクリプトを比較できるようになり、理解しやすくなります。

*スクリプトというのはコードのことだと思ってくれればOKです。Scratchではいくつかのコードブロックの塊をスクリプトと呼びます。下記画像の赤枠で囲まれた部分がそれぞれスクリプトです。



どこから作り始めるか

ポケモンぽいゲームを作るにあたって、どこから作ろうかなと考えた結果、まずはバトルシステムから作ることにしました。

・ポケモン集める
・ポケモンのレベル上げる
・視界に入ると襲われる
・ポケモンめっちゃ種類いる
・ジムリーダー倒す
・ライバルがいる
・〇〇団がいる
・最初にポケモン選ぶ
・個体値がんばる
など

ポケモンがどんなゲームなのかを考えたときに、ざっくり言うとこんなゲームだよねと。その上でポケモンの中心はやはりバトルだと思ったのでバトルシステムから作ることにしました。

キャラデザインやフィールドはあとからいくらでも作れるだろうというのもあります。1番肝心のプログラムを作らないと始まりませんからね。

キャラやフィールドについては作ったことがないですが、プログラムとは違うめんどくささがあるんじゃないかと思ってます。素人が下手に手出すと時間かかってしまうと思うので後回しにしました。


また、Scratchは画面サイズが固定されてるので、ポケモンのような広い世界を作ろうとすると膨大な数のステージを用意しなければなりません。

ステージというのはキャラが動き回ったりバトル画面を表示したりするための場所です。下記画像の左側の赤枠のところがステージです。

フィールドについては作るとしてもだいぶ先になると思います。


今回はPachiMonの最初のプロジェクトであるPachiMon-1について解説していきます。


PachiMon-1

PachiMon-1では主に以下の部分を作りました。

・MyPachiMon(以降mpm)の表示
・EnemyPachiMon(以降epm)の表示
・mpmを十字キーで動かせるようにする
・mpmがepmに触れたらmpmをバトルでの位置に動かす
・mpmがepmに触れたらepmをバトルでの位置に動かす

mpmとepmの表示については特に書くことはないので省略します。


mpmの操作は以下の画像のようなスクリプトを作りました。

矢印の上下左右で条件を分岐させています。Scratchのステージ上の位置はxy座標で表されるので、mpmの操作もxy座標をいくつ変えるかで表現します。

上のスクリプトの場合、十字キーを押すたびに座標が+10/-10変化します。実際には連打する必要はなくて押し続ければ動くようになります。


次にバトルスタートにしたらポケモンのバトルっぽい位置にmpmとepmを移動させます。これは上記画像の「もし<Dragonに触れた>なら」の部分です。

Dragonに触れたら座標を変更させます。

また、play_modeという変数を用意しておき、最初はplay_mode=fieldにしてDragonに触れたらplay_mode=battleに変更します。

この変数:play_modeについては開発を進める上で必要なくなったので、後々削除することになりますが、この時点では「これで完璧!オレ天才!」と思ってます。

こんな感じで後になって「なんでオレはこんなクソコード書いてたんだ」って思うことが良くあります。


次はempの方もバトルスタートしたら動かします。


empの方はゲームスタート("緑色のフラッグ"がクリックされたとき)から条件を分岐させました。

play_mode=battleならポケモンぽい位置に。そうじゃなければ初期位置に。といった具合です。

コスチュームを変えると見た目が変わります。特にやる必要はなかったんですが、それっぽいコスチュームが最初からあったのでバトルに入った時の見た目を変えてみました。


バトルスタート時の位置はこんな感じです。play_modeもfieldになってますね。


Dragonに触れるとこんな感じなります。配置がポケモンぽい位置になり、Dragonも火を吹いてやる気満々ですね。


この機能はバトルシステム自体に関係ないので後回しでも良かったんですが、小学生とかに教える時に最初に扱うやつなのでついクセで作ってしまいました。。

ポケモンでは主人公を操作して、"たんぱんこぞう"の視界に入ったらバトルスタートみたいな感じなので、作ったものとは違いますしね。

十字キーによるキャラ操作機能が作れたら「コピーして保存」して、次に進みます。


PachiMon-1はここで遊べます。(PC推奨) https://scratch.mit.edu/projects/255819718/


今回はここまでです。質問があればnoteのコメント欄にお願いします。どんな質問でも遠慮せずにしてくださいね。他の読者の方の参考にもなるので。

質問is正義!


このnoteはシリーズをまとめてマガジンに登録してあります。シリーズの他の記事を読みたい方はマガジンもご覧ください。
マガジン:Scratchでポケモンぽいゲームを作る制作過程

初めましてヒロです。勉強プロデューサー/コーチ:Lv50。無人島:Lv2。サバイバル:Lv2。YouTuber:Lv1。ブログ:Lv3。Twitter:Lv5。Note:Lv2。Lvは全て自称です。