たくのろじぃのメモ部屋

プログラミング関係や数学、物理学などの内容を備忘録として残すブログ。プログラミングはC#を中心に書いています。

MineCraft

Javaは分からないけどマイクラMODを作りたい #7 AIを作る

前回はもともと定義されているAIの機能をいじりましたが、今回からは自分でAIを作っていきます。 1. EntityAIBase を継承する LittleMaidMob のカスタムAIを見てみると、どうやら EntityAIBase を継承しているようです。これを参考にAIを作ってみたいと思い…

Javaは分からないけどマイクラMODを作りたい #6 村人AIをいじってみる

前回 EntityPlayer を継承して痛い目に合ったので、今回からは村人ベースで進めていこうと思います。機能はたくさん必要になると思いますが、仕方ないですね。 1. EntityVillager クラスを見てみる まず目についたのは村人の行動パターンメソッド、すなわちA…

Javaは分からないけどマイクラMODを作りたい #5 EntityPlayer を継承すると描画クラスでエラーが起こる話

今回から人間ユニットの動作部分(機能部分)の製作に当たります。今後、動作部分のことをAIと呼びます。AIを作る際には entity ディレクトリ内に ai というディレクトリを作成し、その中に書いていきます。 1. ディレクトリ構成の確認 まず、今までに作って…

Javaは分からないけどマイクラMODを作りたい #4 Enitity にて継承するクラスを知りたい

いままで村人ベースに作成していましたが、今回からはプレイヤーをベースに作っていきたいと考えています。Minecraftにて人間もどきを作り、サバイバルできるかを試します。システムと Entity に関する動作を知る必要があるので、時間がかかりそうです。 目…

Javaは分からないけどマイクラMODを作りたい #3 村人スキンを変える

前回、Entity の登録と村人を継承した機能を実装しました。実行してみましたがまさかのエラー。コンパイルは成功しているのでソースコード自体に問題はないようですが...。 1. エラーログを見る こんな一文を見つけたのでエラーログを確認しに行きます。VSCo…

Javaは分からないけどマイクラMODを作りたい #2 村人もどきをつくる

アイテムやブロックなどの追加からやるべきかと思いましたが、Mob を作っているような記事をあまり見かけなかったので、Mobを作ることに挑戦します。 1. MobじゃなくてEntityらしい マイクラにはたくさんの生物がいますね。村人や狼、モンスターからネコなど…

Javaは分からないけどマイクラMODを作りたい #1 Mod名変更と基礎について

以前、「VSCodeでマイクラMOD開発をしたい」というタイトルで環境を整えたのですが、その続編みたいな感じです。今回から「Javaは分からないけどマイクラMODを作りたい」というタイトルに変更して記載していきます。 はじめに このシリーズは開発日記なので…

【C#】Minecraft自動化 #8 プレイヤー自動操作

久しぶりの自動化です。今回はコマンドを投げるわけではなく、プレイヤー自身を動かすためのプログラムを書きます。 実行環境 .NET Framework 4.6 コンソールアプリケーション Minecraft 1.12.2 Forge 1. ウィンドウのアクティブ化 まずは起動しているウィン…

【C#】マイクラのプロセス名がMinecraftではなかった話

マイクラ自動化をするにあたり、プロセスに干渉して自動操作みたいなことができないかを試したくて、プロセス名を取得してみたら意外な結果を得られました。 実行環境 .NET Core 3.1 コンソールアプリケーション Minecraft 1.12.2 1. プロセスの取得 プロセ…

VSCodeでマイクラMOD開発をしたい #2 MODの名称を変える

前回の続きです。サンプルMODのままではオリジナリティがなくて残念なので、色々自分仕様に変えていきます。まずはMOD情報をいじるところから始めていきます。 1. パッケージ名を変える まずはJavaのパッケージ名を変えましょう。デフォルトでは com.example…

VSCodeでマイクラMOD開発をしたい #1 サンプルMODを動かす

C#だけではマイクラMODをつくることができないため、Javaが必要です。Javaの設定方法に関しては様々な記事で紹介されているので省きます。 実行環境 Java(TM) SE Runtime Environment (build 1.8.0_211-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.21…

【宣伝】QiitaにてMinecraft自動化の記事を書きました

2019年12月8日現在のブログの反響?について 本当にありがたい話で、Minecraft自動化の記事を書いてからいろんな方々にお話を伺う機会が増えました。 Microsoftに勤務されている方から直接メッセージをいただいたときは本当に嬉しく、モチベーションにつなが…

Minecraft Education Edition が素晴らしすぎた話

2020年に小学校でプログラミング教育が必修化します。で、どんな内容か調べてみたらブロックを並べる、いわゆるビジュアルプログラミングでした。 正直、「なーにがビジュアルプログラミングだ」と。「男は黙ってガリガリコードを書け」と。言いたいところで…

【C#】Minecraft自動化 #7 建築自動化

はじめに いよいよ建築自動化を行います。この内容が個人的に一番やりたかったことです。 建築は設計図をもとにブロックを配置していきたいと考えていますが、設計図をどうするかが問題ですね。3次元的に表したいので、CADと行きたいところですが、それはち…

【C#】Minecraft自動化 #6 迷路の生成

はじめに マイクラ自動化はもともとC#でどこまでできるかを検証するためにやってきましたが、どうやら本当に色々できるようです。 とりあえず座標移動(テレポート)と配置(ブロック配置)ができれば何でもできそうです。 今回は迷路を作ります。これは建設…

【C#】Minecraft自動化 #5 整地自動化

はじめに 前回は湧き潰し自動化を改良しました。具体的には任意の平面座標における湧き潰しを、地形を考慮して行うプログラムに直しました。 今回は指定範囲内を更地(整地)にするプログラムを作りたいと思います。整地は建築のための前準備ですね。整地し…

【C#】Minecraft自動化 #4 湧きつぶしの改良と地表判定ロジック

はじめに 前回は湧き潰しのプログラムを書きました。が、前回のプログラムのままでは障害物のブロックがあったときに、ブロックを置き換えてしまいます。ブロックを置き換えてしまうということは、地表に松明が設置されないことがあるので湧き潰しに不備が出…

【C#】Minecraft自動化 #3 範囲指定と湧きつぶし

はじめに 前回はプレイヤーの位置座標とブロックの配置方法についてやりました。今回は前回に引き続き、湧きつぶしをやりたいと思います。 湧きつぶしはフィールド上にモンスターがスポーンしないよう、暗い場所にたいまつなどの照明を一定間隔で置いていく…

【C#】Minecraft自動化 #2 プレイヤー座標の取得とブロックの配置

はじめに 前回は環境構築とマイクラに対してコマンドを送れるようにしました。今回はプレイヤーの座標を取得し、ブロックをその座標へ配置していきます。 お品書き ブロックを置くコマンド C# を用いてブロックを配置したいが... プレイヤーの座標を取得する…

【Python, C#】Minecraft自動化 #1 環境構築とコマンド操作

はじめに このシリーズはdocker環境ではなく、jarファイルで起動したforgeサーバを用います。また、サーバの環境構築はできていて、遊べる状態を前提としています。 Minecraft自動化ですが、「自動化」というと「自動収穫」や「経験値トラップ」を思い浮かべ…

【Minecraft】dockerを用いたMinecraftサーバの構築 #2

はじめに 前回のつづきです。前回はdockerで特に何も編集せずに実行していました。今回はバージョン変更やModの読み込みまでやります。 Windows10の環境でdockerからMinecraft forge 1.7.10 を起動する記事が見つからなかったので、いろんな記事の一部を集め…

【Minecraft】dockerを用いたMinecraftサーバの構築 #1

はじめに Minecraftは結構有名なゲームでyoutubeにも多数実況動画などがあります。内部的な実況は実況者に任せて、私「たくのろじぃ」は技術的な部分を実況(ではなく紹介)したいと思います。 今回はdockerというコンテナツールを用いてMinecraftサーバを構…