スクラッチコーチキャンプ ゲームクリエイターに、オレはなる!そんなキミを応援(子供も大人も)
  • ALL
  • はじめての方へ
  • スクラッチゲームの作り方

    スクラッチでオンラインゲームを作る⑫ 一人用の鬼ごっこをMMO化してみよう!

    スクラッチでオンラインゲームを作る⑫ 一人用の鬼ごっこをMMO化してみよう!
    この記事は スクラッチコーチで掲載されているオリジナル記事 のバックアップです。
    スターター作品
    なし
    今回の完成サンプル
    なし

    前回は自作ゲームのサンプルとしてシンプルな鬼ごっこを作った!これをオンラインゲームエンジンを使ってMMO化していく手順をやっていこうと思う。

    ここで手順を押さえておけば、次はキミ自身のゲームをMMO化することも可能だ。そんな大いなる一歩を一緒に行こう!

    今回の目標「オンライン鬼ごっこを作る」

    前回作った鬼ごっこの仕様を改めて確認しておくね。

    • プレイヤーは緑
    • エネミーは赤
    • プレイヤーはエネミーから逃げれば逃げるほどポイントが貯まり、体のサイズが大きくなっていく。
    • プレイヤーはエネミーに触れるとポイントがリセットされて、体のサイズが元に戻る。
    • エネミーは不規則に動きつつも、ときどきプレイヤーめがけて急襲してくる。

    こういう一人用の鬼ごっこゲームを作った。これをMMO化していくにあたって、以下の要件を加えていこうと思う。

    • 別プレイヤー用のフレンドというスプライトを作る(オンラインゲームエンジンを使う)
    • フレンドは水色
    • エネミーは各プレイヤーごとにローカル表示される。つまり今回はエネミーはオンライン化の対象外。
    • フレンドも逃げる時間が長いほど体のサイズが大きくなる。

    ゲーム内容自体はシンプルさを重視しているから、まぁこんなところかな。

    オンラインゲームエンジンをバックパック化する

    いきなり本題だよ。さっそくMMO化を進めていく。

    まずは、鬼ごっこではなくて、オンラインゲームエンジンの作品を開こう。

    スクラッチでオンラインゲームを作る⑫ 一人用の鬼ごっこをMMO化してみよう!を語るok-scratch ok-scratch

    u003cpu003eオンラインゲームエンジンを作ってない!という人はu003c/pu003eu003cpu003e- このシリーズの①から一緒に作ってからここに戻ってくるかu003c/pu003eu003cpu003e- シリーズの⑩番目の記事を開いて、そのサンプルプロジェクトをリミックするかu003c/pu003eu003cpu003eどちらかの方法でオンラインゲームエンジンをゲットしよう。u003c/pu003e

    プロジェクトをいじるので、プロジェクトのコピーを作っておくことをおすすめする。

    自プレイヤーを選ぶ

    そしてスプライト「自プレイヤー」を選ぼう。

    不要なブロックを削除する

    めっちゃ消すw

    最終的には↓こんな感じ。

    クラウドプレイヤーにコピペする

    このブロック群をスプライト「クラウドプレイヤー」にまるっとコピーする。

    ドラッグアンドドロップでスプライトにまるっと持っていこう。

    スプライト「クラウドプレイヤー」側にブロック群がコピーできたか確認しておこう!

    バックパック化する

    こんどはスプライト「クラウドプレイヤー」をまるごとバックパックに追加するぞ。エディター下部の「バックパック」という部分をクリックして開けてから、スプライトをドラッグアンドドロップだ。

    これで一区切り!オンランゲームエンジンをバックパック化することに成功したぞ!

    オンラインゲームエンジンを移植する

    さぁ、いよいよ鬼ごっこのオンラインゲーム化に挑戦だ!オラ、ワクワクすっぞ!

    まずは鬼ごっこプロジェクトを開こう!中を見るでエディタを表示しておく。

    バックパックからクラウドプレイヤーを追加する

    さっきバックパック化したクラウドプレイヤーを取り出して、スプライトのところにドラッグアンドドロップしよう。

    よし、いい調子だ!

    ニセモノのクラウド変数を消す

    変数のところを見てみよう。おお、クラウド変数がバシッと追加されてる!と思いきや、実はこれニセモノなんです……。(でも、まだ消さないでね)

    ニセモノだという証拠もあります。この作品のプロジェクトページを見てみると……あるはずの「クラウド変数」宣言がないんです。

    これは由々しき事態ですな。

    消しましょう。あ!待って!消さないで!w

    実は消し方にもコツがある。そのままサクッと消すと変数を使っている場所も消えてしまって大変なことになってしまうのだ。

    恐怖しかない!もはや作り直しといっても過言ではないレベルで手間だね。

    ステージ「背景」を選ぶ

    こんなときはいったん落ち着いてステージをクリックしよう。

    ステージ内でクラウド変数を消す

    ステージが選択された状態で、さっきのニセ変数たちを一掃しよう。

    最終的には↓こんな感じでスッキリする。

    あ!まだクラウドプレイヤーは開かないでね。ステージのままだよ。いまクラウドプレイヤーを開くと、またニセ変数が復活しちゃうからね。

    クラウド変数を作り直す

    いま消したクラウド変数を1から8まで作り直そう。

    クラウド変数にチェックを入れ忘れないでね!8回も繰り返してると1回くらい忘れちゃうこともある。

    スクラッチでオンラインゲームを作る⑫ 一人用の鬼ごっこをMMO化してみよう!を語るok-scratch ok-scratch

    u003cpu003e僕は2回忘れてたwu003c/pu003e

    クラウドプレイヤーを確認する

    よし、あらためてクラウド変数を8個作り直したあとなら、クラウドプレイヤーを確認してもニセ変数は復活しないぞ。見てみよう。

    おっけい!

    スクラッチでオンラインゲームを作る⑫ 一人用の鬼ごっこをMMO化してみよう!を語るok-scratch ok-scratch

    u003cpu003eクラウド変数の中身はチェックしないから、変数を表示するチェックマークは外しておいてOKだよ。u003c/pu003e

    バックパックからメイン処理を取り出す

    スプライト「クラウドプレイヤー」には使われてないブロック群を追加しておいたよね。あれを鬼ごっこのメインループ内に追加しようと思う。ドラッグアンドドロップで追加しよう。

    スクラッチでオンラインゲームを作る⑫ 一人用の鬼ごっこをMMO化してみよう!を語るok-scratch ok-scratch

    u003cpu003eちなみにどのスプライトに追加するかという判断基準は、位置情報を共有したいスプライトはどれか、って考えるといいと思う。u003c/pu003e

    クラウドプレイヤー側ではこのブロック群は使わないから削除しちゃっていいよ。

    鬼ごっこ独自のデータをクラウド変数に追加する

    おし、ここから本番だ!いまのクラウドプレイヤーは(プレイヤーUID以外に)X座標とY座標という位置情報だけを共有するシンプルな作りになっているよね。

    でも鬼ごっこには位置情報以外にもポイントという独自のデータもあって、これもクラウド変数で共有しなくてはならない

    スクラッチでオンラインゲームを作る⑫ 一人用の鬼ごっこをMMO化してみよう!を語るok-scratch ok-scratch

    u003cpu003e今回の鬼ごっこではポイントというデータだけだけど、みんなの作品の中にはもっと所持アイテムとかレベルとか装備とか、他にもスキルとかとか、いろんな情報があるかもしれないね。でも全部ここから学ぶ方法で同じように追加すればクラウド共有できるから引き続き一緒に見ていこう。u003c/pu003e

    プレイヤーのメインループにクラウド処理を追加する

    まずは今しがたコピーしたブロック群を、プレイヤーのメインループ内に組み込もう。すでに「ずっと」ループはあるから、それ以外のブロックをバラバラに追加していくよ。

    「クラウド - セットアップ」を追加する

    メッセージ「クラウド - セットアップ を送って待つ」は、最初のところに追加するぞ。

    ↓こんな感じになる。

    座標情報を追加する

    X座標とY座標を送信用データに追加するブロックも追加する〜。

    ↓こんな感じになる。

    X座標とY座標に変数「スピードX」と「スピードY」が加えられた後に追加すればOKだよ。

    「クラウド - ティック」を追加する

    このメッセージも続けて追加してしまってOK。今回は続けて追加するけど、追加場所の判断基準としてはリスト「★送信用データ」に追加予定のデータをすべて追加した後に、このメッセージを送る感じだよ。

    だからもしキミの自作ゲームでは複雑な計算をしてから送信用データを作り込むなら、その処理が全て終わって送信用データが整ってからメッセージ「クラウド - ティック」を送るようにしよう。

    独自データ「ポイント」を共有する

    さぁ、これだよね。ポイント。ポイントも送らないとね。鬼ごっこ独自データを送信用データに追加するぞ。これが成功すれば自作ゲームのMMO化が近づくぞ。

    送信する

    そのままスプライト「プレイヤー」にて送信用データにポイントを追加しよう。

    ゆーてもコレだけかい!w

    まぁポイントの計算はすでに終わってるしね。追加するだけならこれだけだわな。

    受信する

    ただ送信も重要だけど、受信も大切だよね。

    クラウドプレイヤーを選ぶ
    クローンティックを見つける

    だいぶブロックが多いから見つけにくいけど、ブロック定義「クローンティック」を見つけよう。

    ↑こういうブロック群。

    デコード処理を追加する

    XとY以外にもポイントが送信されてくるので、最後尾にデコード処理を追加する。

    大きさを変える処理を追加する

    変数「値」にはポイントが入っている手はずなので、コレを使ってクラウドプレイヤーの大きさも変えよう。

    いえす、これでデータ的なことは整った!ためしに2つ並べて動かしてみよう。

    あとは見た目を変えたい!

    フレンドに変える

    クラウドプレイヤーのスプライト名をフレンドに変えようか。

    コスチューム

    めちゃカンタンに四角い水色作るwせめて目もつけるか……。

    描くのが苦手な人はここからダウンロードしてファイルをコスチュームにアップロードしてくれ。

    フレンドのコスチューム

    もともといるスクラッチキャットのコスチュームは削除してOK。

    テスト

    よし、これでテストぉ!

    うん、動きは問題ない。けどフレンドと自分の重なり方が微妙。

    自分を前に出すようにしようかな。

    自分を最前面にする

    プレイヤーを選択してから最前面になるようにブロックを追加するよ。

    これでオーケー!

    フレンドも時間が経つと大きくなるようになってるね!やったぜ!

    まとめ

    今回はソロプレイ用の鬼ごっこを、途中からMMO化するというチャレンジに挑戦したぜ。

    ココまで作り上げてきたオンラインゲームエンジンを実践的にカスタマイズする方法のキホンがわかったと思う。

    大切なのは結局のところ以下のようになるかな!

    • バックパック化したクラウドプレイヤーを自作品に追加する
    • メインループに
      • メッセージ「クラウド - セットアップ」を加える
      • メッセージ「クラウド - ティック」を加える
      • 自作品特有のデータをリスト「★送信用データ」に追加する
    • クラウドプレイヤーのブロック定義「クローンティック」にて、自作品特有のデータをデコードして処理する

    大まかなカスタマイズの流れはこんな感じだね。バックパック化は今回やったから次からはすでにバックパック化してあるクラウドプレイヤーを使えばいいだけだから、そこは楽だね!

    複雑なプロジェクトのオンライン化手順を知りたい人はグリフパッチさんの動画をチェックしてみてくれ!

    この記事への質問やコメントをどうぞ

    ただいま実験的に質問を受け付けています。

    コメントは受け付けていません。

    スパム防止のため、 質問をするにはログインが必要 です。ログインはスクラッチのアカウントがあれば誰でもできます。

    ブクマよろしくお願いします!という口コミを寄せてくれた方 ブクマよろしくお願いします!
    どんどん追記・更新していくので、ブックマークやシェアよろしくお願いします!