スクラッチ scratch

スクラッチプログラミングでマリオ風の横スクロールアクションゲームを参考にいいとこ取りしてみる

第1回子供向けプログラミング寺子屋『CoderDojo熊本』に参加したニンジャからいただいたご質問。

ニンジャ
左ボタンを押したときに、左を向くようにしたいんです・・
アオキ
そりゃそうだよね、マリオもロックマンも左ボタン押したら左向くもんね。

と当たり前のような事を思いつつも、スクラッチでいざやってみようとすると、なかなか左を向いてくれない。

試しにいくつかブロックを組み合わせてみるも、キャラクターがひっくり返ったりして。

『左ボタンを押したら左を向く。』

当たり前のように思っていることが、コンピューターにとっては当たり前じゃないんだなと再認識した瞬間でした。

Sponsored link

スクラッチプログラミングの横スクロールアクションゲームを参考にしてみる

iPhoneを世に生み出したスティーブジョブスはこう言ったそうです。

ピカソは「優れた芸術家は模倣し、偉大な芸術家は盗む」と言った。だから僕たちは、偉大なアイデアを盗むことに関して、恥じることはなかった。

参考リンク

この記事によると、

ピカソも、エジソンも、ジョブズも、コップラも、

様々な偉人の真似をし、盗み、創造性を高めていったようです。

もちろん本当に盗むのは犯罪行為なのでNGですが、様々な作品を吸収し、混ぜ合わせ、オリジナルのアイデアを組み込む事で、画期的な商品が世に産まれでてきたのだと。

第1回『CoderDojo熊本』に来ていた親御さんから、

親御さん
うちの子は、こうやればいいと指示があればできるんだけど、いざ自分でつくろうとすると出来ないんです・・

なんてお悩みを伺ったのですが、その子はなんと、まだ6歳。

今はとにかくどんどん模倣して、どんどん真似て、いいところをどんどん吸収すればいいと思うんです。

自分の中にネタが溜まってきたら、ちょっとずつ組み合わせて変えていけば。

アイデアをひねり出す方法として有名な『オズボーンのチェックリスト』も、既存のものを活用してアイデアを出す方法ですし。

参考リンク

そういう意味で、子供向けプログラミング『スクラッチ』は、参考になる作品がたくさん。

スクラッチのコミュニティガイドラインにもこう記されています。

共有すること。
Scratchで見つけたプロジェクトやアイディア、画像などすべてのものは、自由にリミックスできます。同様に、あなたがシェアしたものも、誰でも自由に使うことができます。リミックスするときは、必ずクレジット(元の作者名)を「作品への貢献」として記載してください。

コミュニティガイドライン

また、共有することを前提に、あらかじめ用意してあるブロックを組み合わせて作るので翻訳の手間もなく、

世界中のあらゆる作品の裏側を、これでもかというくらいに全部見れちゃいます。

自由に真似て、自由に取り入れて、よりよいゲームや作品が増え続けるという、とんでもない仕組みです。

アオキ
なんてものをつくったんだMIT(マサチューセッツ工科大学・・)

ということでさっそく参考に見てみたいと思います。

スクラッチプログラミングでマリオ風の横スクロールアクションゲームが見つかって

スクラッチのサイトで「見る」をクリックすると、世界中のあらゆる作品を見渡すことができます。

『ゲーム』をクリックして、どれにしようか天の神様の言う通り、と探したら、たまたまこの『ゲーム』を見つけました。

リンク

マリオです、どうみても。

正真正銘、マリオのパクリです、いや、模倣であり真似です、リスペクトでオマージュです、そして参考にしまくってます。

試しにmarioで調べたら、個性豊かなマリオ達がたくさんみつかります。

アオキ
著作権とか大丈夫?

と思いつつも、せっかくなので作品の裏側を見てみようと思います。

※著作権についてご指摘いただきましたので記事最後に追記しました。

画面右上の『中を見る』をクリックすると、裏側があっさりとみれちゃいます。

ニンジャの質問にあった『左ボタンを押したら左を向く』、というのも見つけました。

90度に向けて右向き、反対側に向けるなら-90度ですね。

しれっと角度やマイナスという概念もでてきて、簡単な算数の要素も入ってきてますね。

マリオが歩いているように見える動作も、パラパラ漫画の要領で幾つかの画像を用意して、

左か右のキーを押したら『次のコスチュームにする』ということで、パラパラするように実現しています。

『もし〜でなければ〜』というブロックは、プログラムでいうところの if 〜 else 文にあたり、

『定義[Walk]』というのは、プログラムでいうところの『ユーザー関数(ある動作をまとめておく)』だろうと思います。

ほかにも、

  • コインに触れたらコインの枚数が増える方法とか(当たり判定)
  • よくよく見ればマリオのX軸動いてないとか、
  • 背景が2つあるけどどう設定しているかとか、
  • クリボーどのタイミングで出てくんねんとか、

いろんな発見ができて、意外におもしろいです。

  • コインに触れたらコインの枚数が増える

  • 背景たっぷり準備されている

  • クリボーはレベルによって出てくる数がずいぶん違う

アオキ
ちなみにクリボーは英語でGoombaだそうです。知らなかった・・

実際のプログラムの仕事でも、大きい会社になればなるほど、

自分で一から全部プログラムをつくるということはほとんどなく、

すでにあるプログラムをとにかく読み込んで、作り方や定義をしっかり把握して、しっかりバックアップとりつつ、

そこから改造するなりちょっとプログラム追加したりして、その都度ドキュメントに残したりします。

プログラムの仕事の8割は読むこと、と言われたりもします。

プログラミングをする中で、プロジェクトの種類にもよるが、コードリーディングの占める割合は高い傾向がある。ものによっては8割読み、2割書くといった具合だ。フレームワークや周辺コード、必要な箇所を正しく理解するのにコードリーディングは必要となる。

エンジニアリング組織論への招待の著者 坂本大地
Qiita

他の人のプログラムを自由に見れ、
まだ見ぬ考え方に触れ、新しいアイデアをひねり出す場として、
『スクラッチ』は格好の素材だと思います。

さいごに

『スクラッチ』は知れば知るほど奥が深く、大人がハマると言われている理由もわかるなぁと思います。

ちまたでは『STEM教育』
(サイエンス(科学)、テクノロジー(技術)、エンジニアリング(工学)、マスマティックス(数学))

が今後さらに重視されるようになると言われていて、

いずれの知識にもつながるのが、プログラムであり、『スクラッチ』であろうと思うので、

小学生も、中学生も、親御さんも、ぜひどんどんスクラッチの他人のコードを見て、真似て、模倣して、参考にしていただければと思います。

2018/09/09 追記
著作権についてTwitterにて指摘をいただきました。

アメリカには『フェアユース規定』というものがあり、『フェアユース』を調べてみました。

「批評、解説、ニュース報道、教授(教室における使用のために複数のコピーを作成する行為を含む)、研究または調査等を目的とする著作権のある著作物のフェア・ユース(コピーまたはレコードへの複製その他106条に定める手段による使用を含む)は、著作権の侵害とならない」と定めており
Business lawyers

研究・調査・教育などの目的としてなら著作権の侵害とならないと。
そして日本では『フェアユース』の法律はないと。

日本政府には、2020年プログラミング教育義務化はいいとしても、このあたりの法律の整備もぜひお願いしたいものですね。

created by Rinker
¥2,030 (2019/07/17 16:01:18時点 Amazon調べ-詳細)
created by Rinker
¥2,376 (2019/07/17 18:36:31時点 Amazon調べ-詳細)

2019/4/10 追記:

先日、ジブリの宮崎駿監督が20年間真似をし続けたという記事があがっていました。

パクるという表現はよろしくないとは思いますが、いいものを真似て自分のものとする、という点ではまったくもっていい事だと思っています。

20年間、自分を捨ててお手本を真似し続けた宮崎駿。「型」が無い人に「型破り」なことは絶対にできない。

『スクラッチ』ではこんな記事も読まれています。

1. 【スクラッチ】でシューティングゲームのかんたんなつくり方

2. 【スクラッチ】ジャンプをする方法〜3ステップでジャンプできるようになる〜

3. 【スクラッチ】角度や回転を使う方法【動画】【初心者向け】

4. 『スクラッチ』で花火をつくる方法【動画あり】【初心者向け】

5. 【スクラッチ】シューティングで敵の弾をつくる方法【画像たっぷり】

6. スクラッチでセーブする方法を考えてみる〜基本的な考え方〜

7. スクラッチプログラミングでマリオ風の横スクロールアクションゲームを参考にいいとこ取りしてみる

8. スクラッチ(scratch)とマインクラフト(minecraft)を連携させて子ども向けプログラミングのネタを増やしてみた

9. 【スクラッチ】時間が経つと敵が増えて難しくしたい、というリクエストを叶えるために

10. プログラミングと三角関数〜小学生でもすんなりわかる三角関数を目指して

関連記事

  1. スクラッチ scratch

    『スクラッチ』で花火をつくる方法【動画あり】【初心者向け】

    ブロックを組み立てるようにプログラミングができる『スクラッチ(scra…

  2. スクラッチ scratch

    【スクラッチ】角度や回転を使う方法【動画】【初心者向け】

    ブロックを組み立てるようにプログラミングができる『スクラッチ』。ス…

  3. スクラッチ scratch

    【スクラッチ】シューティングで敵の弾をつくる方法【画像たっぷり】

    ブロックを組み立てるようにプログラミングできる『スクラッチ(scrat…

  4. スクラッチ scratch

    【スクラッチ】ジャンプをする方法〜3ステップでジャンプできるようになる〜

    子ども向け無料プログラミング寺子屋『CoderDojo熊本』開催中…

Sponsored link

最近の記事

  1. Laravel

    【Laravel(PHP)】初心者向け アプリのつくり方 をリリースしました【t…
  2. クリエイティブコーディング

    三角関数の使い方〜わかりやすさ重視でまとめてみた【動画あり】
  3. 検索システム

    【検索システム】をつくってみた【実際にログインしてさわれます】
  4. IoT

    【Arduino】ラジコンをつくってみた 〜今ドキのプログラミングの覚え方
  5. HTML/CSS

    【厳選8冊】ホームページを作れるようになるためのおすすめ本【初心者向け】
PAGE TOP