たくのろじぃのメモ部屋

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

【数学メモ】スカラー場の線積分

線積分は3年前くらいに習ったと思うのですが、以来まったく使ってこなかったのですっかり忘れてしまいました。思い出せるようにメモしていきます。 1. 積分 「積分と同じやろ」と思って計算していたら、それは面積を計算しているのと同じになってしまいます…

【解析力学メモ】ラグランジュ方程式

1. ラグランジュ方程式 ラグランジュ方程式はこれです。 $$ \frac{d}{dt} \left( \frac{\partial L}{\partial \dot{q}} \right) - \frac{\partial L}{\partial q} = 0 $$ この式の何がすごいかというと「ニュートンの運動方程式をどんな座標系でも扱える」点…

LaTeX を VSCode で使いたい人向けメモ

一か月ぶりですね。自粛中とはいえ、それなりに課題が出ているので大変と言えば大変です。レポートも書く機会があるので、メモしておきます。TeX(テフ)に乗り換える人はぜひ参考にどうぞ。 1. VSCode と LaTeX のインストール VSCode は公式サイトから落と…

【C/C++】挿入ソートとバブルソート

アプリ開発方法ばかり勉強していましたが、アルゴリズムもやってみようかな思ったのでこちらの本を参考に書いてみました。 www.amazon.co.jp この本、4年前くらいに購入したのですが、アプリ開発ばかりやっていて全然使っていませんでした。久しぶりに読んで…

VSCodeにC++用デバッガ(gdb)を設定する

最近C++の勉強をしており、デバッグしたくなったのでメモ。 実行環境 これらの導入方法については解説しません。 g++ (MinGW.org GCC Build-20200227-1) 9.2.0 VSCode 1.43.2 GNU gdb (GDB) 7.6.1 launch.json を作成 VSCode を起動後、デバッグタブをクリッ…

Azure上に ASP.NET Core アプリをデプロイする方法

ASP.NET Core アプリを作成したのはいいのですが、Webサーバを自分で用意するのは大変なので、クラウドサービスを利用することにしました。大変な部分はサーバを安定して運用していくためにメンテナンスが必要だったり、セキュリティ対策をしっかりする必要…

AIきりたんの凄さと将来

最近何かと話題なAIですが、私はその中でも「AIきりたん」について取り上げたいと思います。 AIきりたん AIきりたんはニューラルネットワークの技術を用いたボーカロイドです。詳しくはこちらのページに書かれています。 n3utrino.work ソフトウェアは無料で…

【C#】Uno Platformを使ってみた

1. Uno Platform Uno Platform は Windows, iOS, Android, Web 上で動くアプリケーションを開発できるクロスプラットフォームです。 platform.uno Xamarinと似ていますが、いくつか違う点があります。一番はUWP/WPFと同じような形式でXAMLが書けることです。…

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. プロセスの取得 プロセ…

【C#】画素ごとの輝度を得て、テキスト形式で保存する

機械学習や画像処理にて解析を行う際には、画像を数値化しなければなりません。今回は手書き数字の画像の輝度情報を読み取り、テキストファイルにして保存する方法をメモります。 実行環境 この環境でやってみました。特別なライブラリは使用していません。 …

【C#】深層学習入門 #8 損失関数とミニバッチ学習法

ニューラルネットワークの性能を示すのに損失関数を使用します。最近では交差エントロピー誤差(クロスエントロピー)がよく用いられているようです。また、学習するための手法にミニバッチ学習法があります。大量の訓練データの中で無作為に選んで学習を行…

【C#】深層学習入門 #7 学習データを用意する

手書き数字認識をやるためにMNISTのデータセットを用いますが、画像ファイルではなく特殊なファイル形式であるため、TensorFlowなどのライブラリが必要です。また、Python用として提供されているためC#でやるには自作する必要があります。今回はMNISTを使用…

【C#】深層学習入門 #6 出力層の設計

ニューラルネットワークでは解を得る際に確率として得たいときがあります。これはソフトマックス関数を用いることによって解決できます。ソフトマックス関数は中間層よりも出力層に対して有効であり、指数関数を用いることで数値自体をいじらずに表現をシフ…

【C#】行列の積を計算する

行列の積はいろんなところで使えるので、練習がてら実装してみます。 1. 行列と型 行列は数字や文字を羅列したもので、行と列に並べて表現します。 例えば図の例では「3行3列の行列」といいます。行列式という言葉もありますが、行列とは違うモノです。 他に…

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…

【C#】C を C# から使いたかったので DLL 化した話

最近、ある友人にC言語を教えているのですが、ふと思ったことがあります。 「C言語ってC#から読み込めるのかな?」と。 1. DLLファイルの作成 C言語やC++言語はDLL(ダイナミックリンクライブラリ)ファイルにすれば読み込めるとのことです。まずはDLLファイル…

新しいサイトの立ち上げについて(仮)

お久しぶりです。今年も残すところ1週間をきりましたね。あまり実感がわきませんが... さて、今回は技術的な内容ではなく、お知らせみたいな感じです。 Webアプリ製作の勉強の傍ら、"たくのろじぃの自習室" というサイトを作成することにしました。内容はブ…

Windows 10 IoT Core を動かしてみた #1 導入編

RaspberryPi 4が発売されるということで思い出したことがあって、「そういえば家にRaspberryPi3があったな」と。久しぶりに起動してみようとして電源投入しようとしてみたら起動画面が黒いまま動かなかったのでOSを再度書き込むことに...。 PCにmicroSDをさ…

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

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

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

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

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

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