Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Minecraft with Code Project 概要

Minecraft with Code Project 概要

Minecraft with Code Project についての紹介スライドです。
Webサイト https://www.mcwithcode.com/

More Decks by たくのろじぃ / Takunology

Other Decks in Technology

Transcript

  1. Minecraft with Code Project 概要 たくのろじぃ / Takunology (Takumi Okawa)

    @takunology_net Takunology Java版Minecraft を用いたプログラミング学習の支援とコンテンツ提供 2022/08/24 更新
  2. 2 自己紹介 大川 匠 (たくのろじぃ/Takunology) 日本大学理工学部 4年 / 元高専生 【趣味】

    プログラミング / Minecraft / Azure で遊んだり、GitHub徘徊したり… 【好きな言語】 C#(最近は Windows App SDK / WinUI 3 まわりを触ったりしてます) 【主な活動】 • Minecraft with Code Project (2020/11/1~) • Microsoft Learn Student Ambassadors (2021/1/7~) • MinecraftConnection ライブラリ開発 (2021/7/1~) • classmall Kids マイクラプログラミング講師 (2022/7/6~) 【出版物 (Zenn にて公開中)】 • Azure × LINE Messaging API によるMinecraft 農業の自動化 (2021/3/8) • C#ではじめるマインクラフトプログラミング (2022/2/9) @takunology_net Takunology たくのろじぃのメモ部屋
  3. 目次 1. Gigaスクール構想とプログラミング教育 2. Minecraft によるプログラミング学習 3. Minecraft with Code

    Project 4. Minecraft へのコマンド送信 5. MinecraftConnection 6. 実装例 7. プロジェクト紹介 3
  4. 1. Gigaスクール構想とプログラミング教育 4 Gigaスクール構想 学校でのICT教育を活用するため、生徒1人に1台ずつ端末を配布 • 生徒の反応を踏まえた双方向型の授業 • 1人1人の学習状況に応じた個別学習 •

    意見交換を通じて多様な考え方を共有 ICT教育 ICTの活用によって、子供たちの力を最大限に引き出せるような学びを提供 • 調べ学習による情報の収集・整理・分析 • 文章作成やメディアを用いた表現・制作 • 各学校との連携や海外との遠隔教育(リモート授業) • 情報技術を活用することによる情報モラル教育 (リーフレット)GIGAスクール構想の実現へ (mext.go.jp) 参考:
  5. 1. Gigaスクール構想とプログラミング教育 5 プログラミング教育 プログラミング教育を通して、コンピュータの仕組みや活用方法を見いだせるようにする • コンピュータを用いた問題解決およびコンピュータの理解 • プログラミング的思考(処理の組み合わせ)の習得 •

    コンピュータの活用による社会づくり 教育の情報化の手引き-追補版-(令和2年6月)第3章 (mext.go.jp) 参考: ビジュアルプログラミング 処理の書かれたブロックをつないでプログラムを作成していく • 理科:電気回路を模倣したプログラムの作成(例:距離が〇〇のとき点灯) • 数学:図形の描画や統計を行えるプログラムの作成 • 社会(総合):タッチパネル式の町案内表示板の作成 • 音楽:リズム・パターンの組み合わせによる作曲
  6. 2. Minecraft によるプログラミング学習 6 Minecraft の活用 Minecraft Education Edition にはプログラミング学習コースがある

    エージェントをプログラムで動かすことで、ブロックを積み上げたりアイテムを運んだりすることができる → ビジュアルプログラミングによるプログラミング学習ができる! 海外では教材として取り入れられているが、日本ではあまり普及していない・・・
  7. 2. Minecraft によるプログラミング学習 7 Minecraft Education Edition を利用するには・・・? → Office

    365 A3 / A5 サブスクリプションが必要(学校側で導入) Office 365 Education プランの比較 (microsoft.com)
  8. 2. Minecraft によるプログラミング学習 8 Minecraft Win10版 ではプログラミング学習は可能か・・・? → Code Connection

    for Minecraft を使用するとプログラミングが可能(ただし学習コースはない) (Education Edition を有効にすると、元素記号の書かれたアイテムが使える)
  9. 2. Minecraft によるプログラミング学習 9 Java版Minecraft でプログラミング学習は可能か・・・? → 学習コースは用意されていないが、Mod開発やプラグイン開発を通してプログラミング(Java)は可能 しかし、どちらも初心者向けではなく経験者向けなので難易度が高い

  10. ここまでのまとめと提案 10 Gigaスクール構想 + プログラミング教育 の普及 → 学生がコンピュータを扱う機会が増加 Minecraft Education

    Edition での教育 → マイクラの世界でプログラミングができる Java版Minecraft でプログラミング学習できるコンテンツをつくる Java版Minecraft でプログラミング学習は・・・? → 学習コースは無く、初心者よりも経験者向けの内容(Mod開発 / プラグイン開発) 子供から大人まで人気の Minecraft ならば楽しく学習できそうだが・・・ → Minecraft Education Edition でプログラミング学習ができるのは一部の学生(団体)だけ → Win10版ならばプログラミング学習可能(ただし学習コースはないので書籍を買いましょう)
  11. 3. Minecraft with Code Project 11 Java版Minecraftを使用して、C#言語によるプログラミングを体験できるコンテンツを制作するプロジェクト マイクラ自動化 プログラミング入門

  12. 3. Minecraft with Code Project 12 マイクラで花火大会を実現するためのもう1つのプロジェクト : Fireworks Project

    MS Tech Camp #17 後夜祭!より
  13. C#言語でできることは多い 13 C#だけでWebアプリやデスクトップアプリ、モバイルアプリなどを作れるような環境が整ってきた → C#を習得できれば幅広くアプリ開発ができるようになる Cloud Web Desktop Mobile Gaming

    IoT AI Azure ASP.NET Blazor .NET MAUI WPF/WinUI WinForms .NET MAUI Xamarin Unity ARM32 ARM64 ML.NET .NET for Apache Spark .NET 6 Common Base Libraries / APIs Infrastructure Runtime Components Compilers Languages 【参考】 https://devblogs.microsoft.com/dotnet/announcing-net-6/
  14. Minecraft も加えたい 14 Minecraft も1つのプラットフォームとして .NET と結びつけたい → C#でできることを増やす 現在は

    Java 版のみだが、可能であれば統合版や教育版にも広げていく Cloud Web Desktop Mobile Gaming IoT AI Azure ASP.NET Blazor .NET MAUI WPF/WinUI WinForms .NET MAUI Xamarin Unity ARM32 ARM64 ML.NET .NET for Apache Spark .NET 6 Common Base Libraries / APIs Infrastructure Runtime Components Compilers Languages Minecraft Java Edition Bedrock Edition Education Edition
  15. 4. Minecraft へのコマンド送信 15 TCP/IP ベースの通信プロトコルを用いて、サーバにコマンドを送る RCON (Remote Console) Login

    Pass(Request ID) / Command / Command response で構成されている パケット Login pass Request ID Request ID connect ・ ・ ・ Command Response ・ ・ ・ close Minecraft へのコマンド送信はRCONプロトコルを使用する 参考:RCON - wiki.vg クライアント サーバ
  16. 5. MinecraftConnection 16 マイクラのコマンドを C# から送信することを可能にした、マイクラプログラミング向けライブラリ 2022年8月の時点では Version 2.0.1 です。

  17. 6. 実装例 17 MinecraftConnectionを使って花火を打ち上げるプログラムを作る例

  18. 6. 実装例 18 まず、プレイヤーの現在地(相対座標)を取得するには・・・ - /data get コマンドを実行してプレイヤーの情報を取得する - 取得できるデータは不要な文字列も含まれているので、正規表現を使って座標だけ抽出

    - 座標は文字列型なので、型変換して算術演算ができるようにする ← CoreRCON を使った場合 ↓ MinecraftConnection を使った場合
  19. 6. 実装例 19 花火を打ち上げるには・・・ - /summon コマンドを使用してロケット花火を打ち上げる - ロケット花火を構成するデータが初見の人には何がなんだかわからないかも? /summon

    firework_rocket ~20 ~ ~ {LifeTime:30,FireworksItem:{id:firework_rocket,Count:1,tag:{Fireworks:{Flight:2,Explo sions:[{Type:1,Flicker:0,Trail:0,Colors:[I;3887386],FadeColors:[I;2437522]}]}}}} 上記のコマンドをプログラムで定義する 作ったプログラムは再利用可能なので、コマンドを打ち直さなくても良い
  20. 7. プロジェクト紹介 20 Minecraft 自動化 MinecraftConnection を使用した C# プログラミング 建築や湧き潰しなどの実践的な活用方法について考える

    Mod 開発 プログラミング学習 Fireworks Project Forge を用いた Java プログラミング オリジナルアイテムやツールの制作を通してMod開発を体験する Minecraft で C#プログラミングを学習する Minecraft で打ち上げ花火を楽しむ Minecraft with Code Project Minecraft とプログラミングで楽しく遊べるコンテンツ製作を目指す
  21. ロードマップ 21 プログラミングをするための 「きっかけ」 と「技術」を支援 入門者 / 学生 初心者 経験者

    Minecraft Education Edition / Scratch などの ビジュアルプログラミングを用いた学習 MinecraftConnection を用いた C#プログラミング学習 より高度なプログラミングの体験 マイクラ自動化 / Fireworks Project 社会人 / 経験者 業務や趣味でC#プログラミングができるようになる .NET / ASP.NET / Console / Unity(VR) / Mobile …
  22. Minecraft with Code Project