はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【マイクラ】プログラムから日本語をチャットに出力する方法について(postToChat)

はじめに

今回はMinecraftAPIであるpostToChatと日本語出力についての記事になります!

マインクラフトをプログラム(Python)から操作をしようと思うと、こちらのMinecraftAPIを使うのが一般的ではないでしょうか。
www.stuffaboutcode.com

ただマイクラのチャットに出力する関数であるpostToChatだと日本語出力ができないようでした。

import mcpi.minecraft as minecraft

mc = minecraft.Minecraft.create()
mc.postToChat("まいくらにこにこはっぴーらいふ")

f:id:hanaaaaaachiru:20190831130109p:plain

これについて書いていきたいと思います。

日本語を出力する

おそらく文字コードの問題だと思うのですが、ネットで調べてもよく分かりませんでした。

そこでやけくそでPythonprint関数を使ってみたらまさかのマイクラにも出力できてしまいました。

import mcpi.minecraft as minecraft

print('まいくらにこにこはっぴーらいふ!')

f:id:hanaaaaaachiru:20190831131118p:plain

瞬時に出力するように変更する

しかし上の方法だと必ずプログラムが終了した後にすべての出力が行われるようになっています。

これはpostToChatの代用とは言えないので、即時出力ができるようにできるflushオプションを追加します。

import mcpi.minecraft as minecraft

print('まいくらにこにこはっぴーらいふ!', flush=True)

f:id:hanaaaaaachiru:20190831131714p:plain

さいごに

これでマイクラに日本語出力ができるようになりました。

ただまだ細かい仕様などは理解できていないので、もしここが違うよ!といったところがありましたら是非コメント等で教えてくださると嬉しいです。