これを作ります。
前提アドオン
- Animated Sprite to Animation Player Convertor
- Dialogic
の派生の Dialogic ruby text - Auto Polygon2D Triangulation(尻尾を揺らすなどのボーンアニメーションをする場合)
なお、立ち絵を作るだけならDialogicはなくても良いです。
立ち絵を作る
練習用立ち絵素材
Download
まばたきと口パクをつくる
尻尾のアニメーションを作る
実際にDialogicで動かせるようにする
Dialogicのノードをきれいな名前で追加する
Dialogicを公式の方法でそのまま使うと
リモートがこんな汚いことになります。かなしいね。
このままだと相対パスでも絶対パスでも使いにくいので、きれいな名前で再生できるようにします。
この改造方法はDialogic1.4.1の派生Dialogic ruby textが前提です
1 | func _ready(): |
きれいになりました。
ただ、まだ立ち絵が雑な名前です。このままだと後々のスクリプトが書けなくなります。なので、res://addons/dialogic/Nodes/DialogNode.gdで「ADD IT TO THE SCENE」を検索し、出てきたスクリプトの下に追記します。
1 | # ADD IT TO THE SCENE |
これできれいなツリーになります。
表情差分を切り替えるスクリプトを書く
次に表情差分を切り替えるスクリプトを書いていきます。
今回の場合AnimationTreeのTransitionの値をいじることで切り替えるようにします。
前提として、これはDialogicのCall Nodeから呼び出す仕組みになってます。
1 | func face_set(charactername,eyebrow,eye,mouth): |
実際に呼び出すときはこんな感じです
Dialogicで呼び出すこと前提になっていますが、パスを変えれば他のアドオンや自作でも行けると思います。
フォーカスされたら口パクするようにする
口パク……させたいですよね。
これはDialogicのノードをちょっといじるだけで大丈夫です。res://addons/dialogic/Nodes/Portrait.gdでfocus()を検索、出てきた場所に追記します。
1 | func focus(): |
これだけでフォーカスされたときに口パクするようになります。
表情差分の種類と再生を別々にすることで表情差分に対応できるようにしました。
また、Blendで3秒後に口パクが止まるアニメーションを挟んでいるため、自動で口パクが止まります。やったね。
完成
とりあえずこれで実際に動かせるようにはなったと思います。
こうした方が良いという改善の提案、不明点ありましたらお気軽にコメントください。
立ち絵を作る部分のテキスト化が必要でしたらそれもコメントください。気が向いたらテキスト化します。
それでは、また……



