C#

C#でChatGPTのAPIを叩いて会話してみる

めっっっっっっちゃ久しぶりに記事書きますね。最近多忙でなかなか時間が取れなかったですのよ。 最近、ChatGPTが盛り上がりを見せているので私もやってみようと思ったんですね。C#で。(なぜ?) 準備 まずはOpenAIのサイトへ遊びにいって、アカウントをつ…

【C# 11】INumber インターフェース

Youtube を漁っていたら Build のオンデマンドを見つけたので試してみた。 www.youtube.com INumber インターフェースを使ってみた C# 11 を使うには .NET 7 の環境が必要なので、こちらを用意しておく。 dotnet.microsoft.com C# 11 の新機能ということで、…

Microsoft Build 2022 参加レポート

2022年5月25, 26日に Microsoft Build が開催されました。個人的に印象に残ったセクションをいくつかピックアップしてみたいと思います。ちなみに去年の参加レポートはこちら。 blog.takunology.jp 視聴したセッション アーカイブで確認したものもありますが…

【MinecraftConnection 1.1.0】ライブラリメモ #6

自作ライブラリのメモその6です。下書きのままで公開するのを忘れていたので、今更ですが公開します。現在、2.0.0 に向けて開発を進めているので、古い情報にはなってしまいますが 1.1.0 で進める場合はこれを利用できます。 エンチャント本を作る 名前空間 …

【Blazor】ページ読み込み時に非同期処理を実行して描画を更新する

やりたいこと タイトルにある通りです。Blazor Server (.NET 6) にてアプリを実行し、ページを読み込んだときに別スレッドでメソッドを動かし、現在時刻を表示するようにしたいだけです。 実装例 こんな感じに実装してあげます。ポイントは、StateHasChanged…

C# ではじめるマインクラフトプログラミングの出版

2022 年にやりたいことの1つであった、「C# ではじめるマインクラフトプログラミング」の本をリリースしました。内容は、マイクラを軸にして C# プログラミングからAzure、アプリ開発などをまとめたものになります。 zenn.dev ブログではとても語りきれない…

Windows App SDK 1.0 でデータバインディングを利用した NavigationView を実装する

やりたいこと Microsoft のチュートリアルにある「データ バインディングを使用した項目の階層の追加」を Windows App SDK で動かしたい。 docs.microsoft.com まあ、このソースをいい感じに貼り付ければ動くとは思っていましたよ。プロジェクトを作成する前…

OxyPlot と WPF アプリでグラフをリアルタイムに描画する

C# でグラフを描画するには WinForms の Chart を使うことが多いと思いますが、OxyPlot を使うと簡単に描画できるようです。OxyPlotとは?については公式サイトを見てください。 oxyplot.github.io リアルタイムではなく、一度にプロットするための方法につ…

【UWP】Windows 11 風の UI でアプリを作る

こんなの作ります。 私のPCは Windows11 になれないので、Windows10 ながらも UI だけは Windows 11 っぽくしたいと思います。そんなときに使うパッケージがこれです。 docs.microsoft.com Windows UI (WinUI) を使用すると上の画像のようなコントロールを使…

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

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

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

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

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

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

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

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

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

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

【ASP.NET Core】共通要素を使い回す

ASP.NET Core でWebアプリを作成していると、たまに「この要素って使い回せないんか?」と思うことが多々あります。わざわざページごとに同じ要素を書き込んでいくのも面倒です。今回はサイドバーを作成して、複数のページで使い回せるようにします。 1. Sha…

【C#】.NET 6.0.1-preview 4 で MAUI を試してみた

【2021年11月11日追記】 Preview 10 が出たので、新しい記事のほうが参考になると思います。 blog.takunology.jp Microsoft Build のイベントにて .NET 6 preview 4 と MAUI について紹介されており、気になっていました。特にMAUIを試してみたいなぁと思っ…

Microsoft Build 2021 参加レポート

はじめに 2021年5月26日、27日に開催された Microsoft Build は Microsoft 主催のグローバルカンファレンスです。最新の技術や製品の紹介やデモンストレーション、対談など通して、スキルアップや情報共有を行うことができます。 mybuild.microsoft.com 予め…

【C#】遺伝的アルゴリズムを実装してみた

大学の授業で遺伝的アルゴリズムの話題が出たので、C#を使って遺伝的アルゴリズムを実装してみました。といっても、実装するのは初めてで原理もよくわかっていなかったので、こちらのサイトにあるソースコードを参考に作ってみました。 www.sist.ac.jp 遺伝…

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

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

Zenn にて本を書きました

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

【Unity メモ】ユーザからの入力

Unity ではデフォルトの設定として、スペースキーがジャンプボタンとして登録されています。Unity の 編集 > プロジェクトの編集 を開き、入力マネージャ を選択すると、このようになっています。(日本語化していますが、英語のほうがよかったかもしれませ…

【Unity メモ】Mathf クラスと Vector3 構造体

Unity で作成したオブジェクトはコンポーネント(そのオブジェクトを構成する状態やふるまいなど)を何かしら持っています。これを使って処理する方法についてのメモです。 GetComponent メソッド そのオブジェクトが持つコンポーネントを取得する。 例えば…

【Unity メモ】様々なメソッドとログ出力

久しぶりに Unity に触ったので、学んだことをメモしておきます。 初期化 Unity でスクリプトを作成すると、プログラム開始時に呼ばれる Start メソッドと毎フレーム呼ばれる Update というメソッドがテンプレートでついてきます。これらは予約メソッドなの…

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

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

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

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

LINE Messaging API を使って C# で LINE にメッセージを送る

LINE の Messaging API アカウントを使って、C# からメッセージを送る方法のメモです。これは前回の記事の内容にも関連しています。 Messaging API を作る まずはこれがないと何もできません。LINE Developers にアクセスして作成します。 developers.line.b…

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

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

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

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

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

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

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

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