M5Stack Image Avatar for M5Stack Core2
日本語 | English
M5Stack Image AvatarはSpriteの拡大縮小・回転機能を利用しているためLovyanGFXライブラリが必要です。(M5Stackライブラリには拡大縮小機能がありません。)
あらかじめ用意した画像ファイル(BMP)を組み合わせてAvatarを作成できるアプリです。AquesTalk for ESP32と組み合わせて言葉を喋ることもできます。
- VSCode
- PlatformIO
AquesTalk for ESP32に従ってインストールしてください。
AquesTalkのインストールが難しい方はM5StackImageAvatar.inoの先頭にある#define USE_TTSをコメントアウトしてください。
- M5Stack Core2
- M5Stack FireはPSRAMがあるので動く可能性があります。
- それ以外のM5Stackシリーズはカラーパレットを共通にして8bitまたは4bitビットマップで表現すれば動作は可能ですが、パーツとデータの用意が非常に煩雑になるため今回は対応外とします。
SDカードのルートに「data」フォルダ配下にあるフォルダをコピーしてください
使用したいアバターモデルのavatarconfig.hをsrcフォルダに上書きコピーしてビルドします。
- ボタンA:Avatarが動きます。
- ボタンB:目玉が左右に動きます。
- ボタンC:感情が変わります。
下記の3種類あります。
表情を豊かにするためにAvatarの部品を7つ用意する必要があります。
オリジナルのImageAvatarを作成するためには部品となるBMP画像ファイルが必要です。
部品の重ね合わせを利用するために予め透明色1と透明色2を決めます。
五積ほむらの場合、透明色1(緑:0x00FF00U),透明色2(青:0x0000FFU)
萌え軸を利用する場合、Spriteのマージンが必要なので元画像は傾けても大丈夫な大きさで作成します。
- 固定パーツ1(1パターン用意する)
- 頭部
(顔部分は肌色で塗る、ボディーパーツと重なる部分は透明色) - 首と胴体部
(頭部と重なる部分は透明色)
- 固定パーツ2(感情の数だけ用意する)
- 目玉
黒目以外は目玉の色で塗る - 眉毛
右だけ用意します。
- 状態が変化するパーツ(開閉x感情の数だけ用意する)
- 開いたまぶた
右だけ用意します。(周りは透明色2、まぶたの中は透明色1) - 閉じたまぶた
右だけ用意します。(周りは透明色2) - 開いた口
口の周りは透明色1 - 閉じた口
口の周りは透明色1
まぶたと口は開いた状態と閉じた状態を同じ大きさで用意します。
感情を表現したいときは固定パーツ(頭部、胴体部)を除くパーツを用意すればBMPファイルを入れ替えることによって切り替えが可能です。
五積ほむらは普通・笑う・恥ずかしい・驚く・眠いの5つの状態をボタンCを押すことにより切り替え可能なので参考にしてください。
オプション機能については以下の3つがありそれぞれM5StackImageAvatar.inoの#defineで切り替えます。(必要ない場合はコメントアウトする。)
#define USE_TTS // AquesTalk is necessary.(https://www.a-quest.com/products/aquestalk_esp32.html)
#define USE_MIC // M5Go Bottom's MIC is necessary.
#define USE_WIFI // M5StackFire is required when using 8bit color.Because Gray and Basic don't have enough memory.
- USE_TTS
音声合成を利用する。(AquesTalk for ESP32のインストールが必要) - USE_MIC
GoボトムについているMICに合わせてlipsyncします。 - USE_WIFI
現在は接続するだけで特に機能は実装していません。メモリを80K程度消費するのでOut Of Memoryに注意してください。4bitBMPでAvatarを作成するかM5Stack Fireを推奨します。
- src/colorpalette.h
画像共通のカラーパレット情報を設定します。(16,24bitの場合は未使用) - src/avatarconfig.h
Avatarのパラメータ、各画像ファイルの位置、大きさ、角度等を設定します。
このソフトを作成するにあたり、動きや構造の元となったM5Stack-Avatarを作成・公開してくださったmeganetaaan氏に感謝いたします。
ImageAvatarを実現するにあたり優れたパフォーマンス、機能を持ったLovyanGFXの作者lovyan03氏に感謝いたします。
五積ほむらを作成するにあたり、 初期の頃からたくさんのアドバイスを頂き、参考にさせていただいたM5Stack_WebRadio_Avatarの作者robo8080氏に感謝いたします。