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

スクラッチでオンラインゲームを作る⑫ 一人用の鬼ごっこをMMO化してみよう!
ok-scratch
一人用の鬼ごっこをMMO鬼ごっこに魔改造していく!
難しさ

任意)自分の作業中のスクラッチ作品URLを記録しておこう!再開するときに便利だよ。

LOADING...

※ この記録は今使ってるPCに保存されます。別のPCで作業するときは表示されません。

スクラッチプログラミングに挑戦している皆さん、どうも!スクラッチコーチです。

前回(ぜんかい)自作(じさく)ゲームのサンプルとしてシンプルな(おに)ごっこを(つく)った!これをオンラインゲームエンジンを使(つか)ってMMO(ばか)していく手順(てじゅん)をやっていこうと(おも)う。ここで手順(てじゅん)()さえておけば、(つぎ)はキミ自身(じしん)のゲームをMMO()することも可能(かのう)だ。そんな(おお)いなる一()一緒(いっしょ)()こう!

今回(こんかい)目標(もくひょう)「オンライン(おに)ごっこを(つく)る」

前回(ぜんかい)(つく)った(おに)ごっこの仕様(しよう)(あらた)めて確認(かくにん)しておくね。
  • プレイヤーは(みどり)
  • エネミーは(あか)
  • プレイヤーはエネミーから()げれば()げるほどポイントが()まり、(からだ)のサイズが(おお)きくなっていく。
  • プレイヤーはエネミーに()れるとポイントがリセットされて、(からだ)のサイズが(もと)(もど)る。
  • エネミーは不規則(ふきそく)(うご)きつつも、ときどきプレイヤーめがけて急襲(きゅうしゅう)してくる。
こういう一人用(ひとりよう)(おに)ごっこゲームを(つく)った。これをMMO(ばか)していくにあたって、以下(いか)要件(ようけん)(くわ)えていこうと(おも)う。
  • (べつ)プレイヤー(よう)フレンドというスプライトを(つく)(オンラインゲームエンジンを使(つか)う)
  • フレンドは水色(みずいろ)
  • エネミーは(かく)プレイヤーごとにローカル表示(ひょうじ)される。つまり今回(こんかい)はエネミーはオンライン()対象(たいしょう)(がい)
  • フレンドも()げる時間(じかん)(なが)いほど(からだ)のサイズが(おお)きくなる。
ゲーム内容(ないよう)自体(じたい)はシンプルさを重視(じゅうし)しているから、まぁこんなところかな。

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

いきなり本題(ほんだい)だよ。さっそくMMO()(すす)めていく。まずは、(おに)ごっこではなくて、オンラインゲームエンジンの作品(さくひん)(ひら)こう。
スクラッチでオンラインゲームを作る⑫ 一人用の鬼ごっこをMMO化してみよう!を語るok-scratch ok-scratch

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

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

(より)プレイヤーを(えら)

そしてスプライト「(より)プレイヤー」を(えら)ぼう。

不要(ふよう)なブロックを削除(さくじょ)する

めっちゃ()すw
最終的(さいしゅうてき)には↓こんな(かん)じ。

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

このブロック(ぐん)をスプライト「クラウドプレイヤー」にまるっとコピーする。ドラッグアンドドロップでスプライトにまるっと()っていこう。
スプライト「クラウドプレイヤー」(がわ)にブロック(ぐん)がコピーできたか確認(かくにん)しておこう!
  • なぜ使(つか)われないブロック群(ぐん)を追加(ついか)したの? なぜ使(つか)われないブロック群(ぐん)を追加(ついか)したの?
    u003cpu003eクラウドプレイヤーでは使(つか)わないのだけど、あとで(おに)ごっこ(がわ)使(つか)うんだよね。だけど2()バックパック(つく)るとMMO()するのに必要(ひつよう)なバックパックが()えて管理(かんり)しづらい。そこで、必要(ひつよう)なブロックは全部(ぜんぶ)クラウドプレイヤーに()()んで、バックパックを1つにまとめておこうという発想(はっそう)なんだ。こういう一箇所(かしょ)管理(かんり)する方法(ほうほう)は「一元(いちげん)《いちげん》管理(かんり)」と()ばれてて、システムやゲーム開発(かいはつ)だけではなくビジネス全体(ぜんたい)(ひろ)使(つか)われているぜぃ。u003c/pu003e

バックパック()する

こんどはスプライト「クラウドプレイヤー」をまるごとバックパックに追加(ついか)するぞ。エディター下部(かぶ)の「バックパック」という部分(ぶぶん)をクリックして()けてから、スプライトをドラッグアンドドロップだ。
これで一区切(ひとくぎ)り!オンランゲームエンジンをバックパック()することに成功(せいこう)したぞ!

オンラインゲームエンジンを移植(いしょく)する

さぁ、いよいよ(おに)ごっこのオンラインゲーム()挑戦(ちょうせん)だ!オラ、ワクワクすっぞ!まずは(おに)ごっこプロジェクトを(ひら)こう!(なか)()るでエディタを表示(ひょうじ)しておく。

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

さっきバックパック()したクラウドプレイヤーを()()して、スプライトのところにドラッグアンドドロップしよう。
よし、いい調子(ちょうし)だ!

ニセモノのクラウド変数(へんすう)()

変数(へんすう)のところを()てみよう。おお、クラウド変数(へんすう)がバシッと追加(ついか)されてる!と(おも)いきや、(じつ)はこれニセモノなんです……。(でも、まだ()さないでね)
ニセモノだという証拠(しょうこ)もあります。この作品(さくひん)のプロジェクトページを()てみると……あるはずの「クラウド変数(へんすう)宣言(せんげん)がないんです。
これは由々(ゆゆ)しき事態(じたい)ですな。()しましょう。あ!()って!()さないで!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

\u003cp\u003e今回(こんかい)(おに)ごっこではポイントというデータだけだけど、みんなの作品(さくひん)(なか)にはもっと所持(しょじ)アイテムとかレベルとか装備(そうび)とか、(ほか)にもスキルとかとか、いろんな情報(じょうほう)があるかもしれないね。でも全部(ぜんぶ)ここから(まな)方法(ほうほう)(おな)じように追加(ついか)すればクラウド共有(きょうゆう)できるから()(つづ)一緒(いっしょ)()ていこう。\u003c/p\u003e

プレイヤーのメインループにクラウド処理(しょり)追加(ついか)する

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

「クラウド - セットアップ」を追加(ついか)する

メッセージ「クラウド - セットアップ を(おく)って()つ」は、最初(さいしょ)のところに追加(ついか)するぞ。
↓こんな(かん)じになる。

座標(ざひょう)情報(じょうほう)追加(ついか)する

X座標(ざひょう)とY座標(ざひょう)送信(そうしん)(よう)データに追加(ついか)するブロックも追加(ついか)する~。
↓こんな(かん)じになる。
X座標(ざひょう)とY座標(ざひょう)変数(へんすう)「スピードX」と「スピードY」が(くわ)えられた(あと)追加(ついか)すればOKだよ。

「クラウド - ティック」を追加(ついか)する

このメッセージも(つづ)けて追加(ついか)してしまってOK。今回(こんかい)(つづ)けて追加(ついか)するけど、追加(ついか)場所(ばしょ)判断(はんだん)基準(きじゅん)としてはリスト「★送信(そうしん)(よう)データ」に追加(ついか)予定(よてい)のデータをすべて追加(ついか)した(あと)に、このメッセージを(おく)(かん)じだよ。だからもしキミの自作(じさく)ゲームでは複雑(ふくざつ)計算(けいさん)をしてから送信(そうしん)(よう)データを(つく)()()なら、その処理(しょり)(すべ)()わって送信(そうしん)(よう)データが(ととの)ってからメッセージ「クラウド - ティック」を(おく)るようにしよう。

独自(どくじ)データ「ポイント」を共有(きょうゆう)する

さぁ、これだよね。ポイント。ポイントも(おく)らないとね。(おに)ごっこ独自(どくじ)データを送信(そうしん)(よう)データに追加(ついか)するぞ。これが成功(せいこう)すれば自作(じさく)ゲームのMMO()(ちか)づくぞ。

送信(そうしん)する

そのままスプライト「プレイヤー」にて送信(そうしん)(よう)データにポイントを追加(ついか)しよう。
ゆーてもコレだけかい!wまぁポイントの計算(けいさん)はすでに()わってるしね。追加(ついか)するだけならこれだけだわな。

受信(じゅしん)する

ただ送信(そうしん)重要(じゅうよう)だけど、受信(じゅしん)大切(たいせつ)だよね。
クラウドプレイヤーを(えら)
クローンティックを()つける
だいぶブロックが(おお)いから()つけにくいけど、ブロック定義(ていぎ)「クローンティック」を()つけよう。
↑こういうブロック(ぐん)
デコード処理(しょり)追加(ついか)する
XとY以外(いがい)にもポイントが送信(そうしん)されてくるので、最後尾(さいこうび)にデコード処理(しょり)追加(ついか)する。
(おお)きさを()える処理(しょり)追加(ついか)する
変数(へんすう)()」にはポイントが(はい)っている()はずなので、コレを使(つか)ってクラウドプレイヤーの(おお)きさも()えよう。
いえす、これでデータ(てき)なことは(ととの)った!ためしに2つ(なら)べて(うご)かしてみよう。
あとは()()()えたい!

フレンドに()える

クラウドプレイヤーのスプライト(めい)をフレンドに()えようか。

コスチューム

めちゃカンタンに四角(しかく)水色(みずいろ)(つく)るwせめて()もつけるか……。
(えが)くのが苦手(にがて)(ひと)はここからダウンロードしてファイルをコスチュームにアップロードしてくれ。フレンドのコスチュームもともといるスクラッチキャットのコスチュームは削除(さくじょ)してOK。

テスト

よし、これでテストぉ!うん、(うご)きは問題(もんだい)ない。けどフレンドと自分(じぶん)(かさ)なり(かた)微妙(びみょう)
自分(じぶん)(まえ)()すようにしようかな。
自分(じぶん)最前面(さいぜんめん)にする
プレイヤーを選択(せんたく)してから最前面(さいぜんめん)になるようにブロックを追加(ついか)するよ。
これでオーケー!
フレンドも時間(じかん)()つと(おお)きくなるようになってるね!やったぜ!

まとめ

今回(こんかい)はソロプレイ(よう)(おに)ごっこを、途中(とちゅう)からMMO()するというチャレンジに挑戦(ちょうせん)したぜ。ココまで(つく)()げてきたオンラインゲームエンジンを実践的(じっせんてき)にカスタマイズする方法(ほうほう)のキホンがわかったと(おも)う。大切(たいせつ)なのは結局(けっきょく)のところ以下(いか)のようになるかな!
  • バックパック()したクラウドプレイヤーを自作品(じさくひん)追加(ついか)する
  • メインループに
    • メッセージ「クラウド - セットアップ」を(くわ)える
    • メッセージ「クラウド - ティック」を(くわ)える
    • 自作品(じさくひん)特有(とくゆう)のデータをリスト「★送信(そうしん)(よう)データ」に追加(ついか)する
  • クラウドプレイヤーのブロック定義(ていぎ)「クローンティック」にて、自作品(じさくひん)特有(とくゆう)のデータをデコードして処理(しょり)する
(おお)まかなカスタマイズの(なが)れはこんな(かん)じだね。バックパック()今回(こんかい)やったから(つぎ)からはすでにバックパック()してあるクラウドプレイヤーを使(つか)えばいいだけだから、そこは(らく)だね!複雑(ふくざつ)なプロジェクトのオンライン()手順(てじゅん)()りたい(ひと)はグリフパッチさんの動画(どうが)をチェックしてみてくれ!
ブクマよろしくお願いします! ブクマよろしくお願いします!
どんどん追記・更新していくので、ブックマークやシェアよろしくお願いします!

スクラッチプログラミングのゲーム攻略

スクラッチプログラミングのゲーム

    • 厳選されたスクラッチ人気作品リストがレビュー付きで楽しめます
      趣味に関するスクラッチ作品例
      勉強になるスクラッチ作品