Minecraft

マイクラプログラミング入門の動画について

以前より「マイクラ自動化」というプログラミング経験のある方を対象にして、C#からマイクラのコマンドを実行する方法を紹介していました。 しかし、マイクラ自動化はプログラミングを始めたばかりの方にはハードルが高いと思いました。特に、CoreRCONライブ…

【Minecraft】MojangアカウントからMicrosoftアカウントへの移行方法

先日、マイクラを起動したらアカウント移行の準備が整ったという通知が届いていました。 Java版Minecraftで遊ぶためには Mojang アカウントが必要でしたが、Microsoft の傘下に入ったことで、新規ユーザは Microsoft アカウントの登録が必須となりました。今…

【C#】マイクラで矢を飛ばすプログラム

前回はプレイヤーにパーティクルを付与しつつ、爆発させるような魔法攻撃を再現しました。今回は矢を連続で打ち込むような攻撃をプログラムから実行してみます。(エミヤさんの例の技っぽいやつの再現です。) こちら参考画像になります。 準備 Minecraft Se…

【C#】マイクラでイ゛オ゛ナ゛ズン゛!してみた

マイクラの世界で「魔法が使えたらなぁ...」なんて思ったことありませんか? 例えば、クリーパーやTNTを使えば爆発させることが出来ますし、ウィッチやポーションを使えば状態異常を付与することができます。他にも、雷を落とすことだって可能です。 可能な…

友人のために Azure VM でマイクラサーバを立てた話

先日、友人と「マイクラしたいね~」という話をしたのをきっかけに、マイクラサーバを立てました。過去に何度かマイクラサーバの立て方を書いてきましたが、Spigot かつ 1.17.1 でのバージョンは初めてだと思いますので、まとめておきます。 ちなみに仮想マ…

MinecraftConnection 1.1.0 での花火アイテム作成方法

マイクラプログラミング用のライブラリ MinecraftConnection ですが、先日 Version 1.1.0 をリリースしました。 www.nuget.org 今回は花火アップデートということで、花火のコンストラクタや拡張メソッドの追加など、いくつかの変更をおこないました。 コン…

Minecraft Java版 と BE版のクロスプレイ方法

通常、Minecraft Java Edition と BE版(統合版)とでは一緒にプレイすることは出来ませんが、あるプラグインを入れたサーバを立ち上げると一緒に遊ぶことが出来ます。「本当はJava版を買うつもりだったのに...」となってしまっても、この手法を使えば BE 版…

Ubuntu 18.04 LTS で Java 16 を導入する

マイクラサーバー 1.17 以上のバージョンを立ち上げる場合は Java 16 が必要です。Ubuntu 18.04 LTS で upgrade や update を行っても java 16 インストール用のパッケージが存在しないので、手動で追加する必要があります。(ちょっと躓いたのでメモ。) パ…

【C#】マイクラで花火を打ち上げる(万華鏡型花火製作)

マイクラで花火を打ち上げる場合、/summon コマンドと NBT を用いて花火の形状や色等を決めます。これを連続して打ち上げることで様々な形の花火を演出することが出来ます。 今回は万華鏡型と呼ばれる花火を打ち上げるための方法を紹介します。 1. 万華鏡型…

C#でのマイクラプログラミングに向けて・・・

「マイクラプログラミング」で色々調べてみると、Python か JavaScript か Java あるいはビジュアルプログラミングの資料が色々でてきます。また、Minecraft Education Edition または Win10版 にて MakeCode for Minecraft というアプリを使用すれば JavaSc…

Minecraft 1.17 のサーバ構築方法

日本時間 2021年6月9日に Minecraft 1.17 がリリースされました。このアップデートは「洞窟と崖のアップデート」ということで、新しい洞窟やMob、アイテムなどが追加されます。詳しい内容に関しては有名実況者さんや公式Wikiがあるのでここでは割愛します。 …

Minecraft のコマンドに関する文字数制限について

Minecraft 自動化の資料を作っていく上で、ちょっと気になったことがあったので調べました。マイクラのコマンドの文字数には 256 文字までという制約があるのですが、RCON経由で送信すると、文字数制限がないみたいです。 例えば、チェスト内のアイテムを、…

【Minecraft + C#】村人を遠隔操作する

久しぶりのマイクラ記事です。今回はタイトルにある通り、村人を遠隔操作します。具体的には、村人に指示した方向へ移動してもらいます。 1. 村人のスポーンと指定 まずは操作したい村人を指定する必要があります。方法としては村人の UUID を指定する方法と…

Minecraft Server のコンテナをつくりました

Docker を使用して、Minecraft Server のコンテナを作成しました。 hub.docker.com このコンテナを使うと、起動するだけでマイクラサーバを動かすことができます。また、RCON 接続の設定も済ませているので、RCON を使ったマイクラプログラミングをやりたい…

Zenn にて本を書きました

Zenn というエンジニア情報共有サイトがあるのですが、そこで本を書きました。タイトルは「Azure × LINE Messaging API による Minecraft 農業の自動化」 です。 zenn.dev 元ネタは以前ブログで紹介したこれです。 blog.takunology.jp いつか、何らかの形で…

C# で Azure Cosmos DB のデータを取得して LINE に通知してみた

Azure Cosmos DB のコンテナに記録されている NoSQL なデータを抽出するためのメモです。 今回の内容は Minecraft の農業自動化の続きみたいな感じです。 blog.takunology.jp 上の記事では Azure Functions を使用して Azure 上で完結していますが、今回は F…

MinecraftConnectionCore (prerelease) ライブラリを公開しました

C# から Minecraft にコマンドを投げるためには CoreRCON パッケージの導入が必要でした。また、コマンドを送信するためには非同期なメソッドにする必要があり、プログラミングを始めたばかりの方にはかなりハードルが高いように感じました。そこで、非同期…

【Azure + LINE + Minecraft】Minecraft の作物を自動で収穫して通知するシステムを構築してみた

Minecraft で作物を作るのは結構面倒です。種まきした後、しばらく待ってから生育具合を確認し、成長しきっていれば収穫して再び種まきするといった繰り返し作業になります。成長しきるまでに30分~1時間と、作物の種類によっても異なるので「○○分待てば収穫…

【C#】属性を使って列挙型に文字列を割り当てる

列挙型で定義した列挙子は整数 (ID) が割り当てられており、使い方によっては便利なのですが、文字列を割り当てたいなという場面が出てくると思います。 例えば、マイクラでポーション効果を付与したいときにポーション効果一覧をこのように定義します。 pub…

【C#】拡張メソッド .ToString() 的なやつをつくってみた

C# で大変お世話になっている .ToString() みたいなメソッドってどうやって作っているのか疑問に思って、色々調べたら 拡張メソッド という機能らしいです。名前は初めて知りました。 ライブラリを作っているとメソッドが増えて「わざわざ1行使って呼び出す…

【MinecraftConnection】ライブラリメモ #5

自作ライブラリのメモその5。ChestItems クラスを追加。 チェストアイテムに対して操作ができるクラスで、現在はアイテムの取得、更新、ソートが行える。 名前空間:MinecraftConnection.Data コンストラクタ:RCON GetChestItems(int x, int y, int z) : チ…

【Minecraft】チェスト内のアイテムをコピーする

Minecraft 1.13 から追加された /data コマンドですが、これを上手く使うといろんなことができます。 まずは /data コマンドで何ができるかです。コマンドのオプションはこのようになっています。 /data get -> データを取得する /data merge -> データを結…

【C# + Minecraft】ドット絵をプログラムに描かせる

目的 ドット絵に変換した画像をMinecraft上に描画する 1. 画像を用意する 今回はホロライブの雪花ラミィさんの画像をお借りしました。本人のTwitterにグリーンバックの画像がアップされています。 @yukihanalamy このままでは解像度が高すぎて描画しきれない…

Azure 上で Minecraft Server を立てる

1. 仮想マシンの作成 まずは リソースの作成 から Ubutu Server 18.04 LTS を選択します。 仮想マシンの設定ですが、私はこのように設定しました。この辺は自由に選択しても良いと思います。 で、問題は サイズ の選択ですが Minecraft Server は特にプラグ…

【MinecraftConnection】ライブラリメモ #4

自作ライブラリのメモその4です。PlayerData クラスの機能を追加。 GetHealth (string PlayerName) : プレイヤーの体力を取得 GetFoodLevel (string PlayerName) : プレイヤーの満腹度を取得 GetScore (string PlayerName) : プレイヤーのスコアを取得 使用…

【MinecraftConnection】ライブラリメモ #3

自作ライブラリのメモその3です。PlayerData クラスにて、プレイヤーのアイテム情報を取得する機能を追加。 GetHandItems (string PlayerName) : プレイヤーの手持ちアイテムを取得 GetInventoryItems (string PlayerName) : プレイヤーのインベントリアイテ…

【MinecraftConnection】ライブラリメモ #2

自作ライブラリのメモです。(まだ未公開) プレイヤーの位置を得る Minecraft でプレイヤーの位置を得るには /data get entity <Player> Pos コマンドを使用すればいいのですが、その返り値がかなり長い文字列です。しかも、データ自体は数値だけではないので文字列</player>…

【MinecraftConnection】ライブラリメモ #1

2020年12月末から製作中のライブラリのメモです。まだ公開はしていませんが、公開するときにはリファレンスが必要になると思うので、そのための記録として残しておきます。(おそらくシリーズ化っぽくなる?) Minecraft で花火を作る場合 前回の記事でも書…

【C#, Minecraft】書き初め

あけましておめでとうございます。2021年もよろしくお願いします。 さて、お正月と言えば 書き初め ですね。ということで、新年初めての書き初め(と書いてプログラミングと読む)をしていきます。 実行環境 Minecraft 1.16.3 (バニラ版, RCON設定済みサーバ…

【C#】同期メソッドから非同期メソッドを呼び出す

今までに、CoreRCON ライブラリ を用いてマイクラ自動化、もといマイクラプログラミングを色々やってきました。ただ、このライブラリを使うにあたって非同期処理のコーディングが必要になるので、「プログラミングを始めたばかり」の方には難しいかもしれま…