忍者ブログ

でんきみちブロgu。(あ行。)

大変古い古すぎるレビューの置場。お絵かき掲示板消失により3年ぶりに雑記に転用(2017年)。現在はノベルゲーム制作とライブ2Dがマイブーム。

俺式ゲーム用(ティラノ)Live2Dモデルの作り方

ティラノスクリプトやツクール用プラグインで呼び出すモデルを作る時の
私なりのやり方です。(あくまで俺式)

まず、モデルについてですがパラメータ等は通常と同じですが、
ゲーム用にするなら
●フェードイン、フェードアウトパラメータを作っています。





ここにデフォーマーたくさん使いたくないので(1個でやってる)
重なるところが透けるのがしかたないのですが、
ティラノスクリプトのライブ2Dプラグインは
ライブ2D表示レイヤーのフェードインフェードアウトはあるけれど
モデル単体の表示非表示時のフェードインフェードアウトがないので
使い方やゲームの内容にもよるのですが、
モデル自体にフェードインアウトのパラメータをつけてモーションを作っておくと
便利な時があります。

●口の開閉のみのリップシンクを入れておく。


ティラノのプラグインだと、モデルに設定した名前と同じ名前をメッセージウィンドウに
居れるとオートで口パクしてくれる機能があるので
入れておくと便利です。
まばたきは、ついていると目を閉じる場面とかで動いてしまうので
無いほうがいいです。
※オート口パクは万全ではないので口パクモーションは作っておくと吉
 (口の開閉のみ動いている2秒程度のモーション)




●リピートパラメータは使えない
リピートパラメータはリピートできません。プラグインにもっていくと…
プラグインのバージョンによっては使えるかもしれませんが、
要検証



●mocファイル、モデルの書き出しバージョンのチェック!
モデルの書き出しですが、
ライブ2Dプラグインのバージョンとライブ2Dモデルの書き出しバージョンがあってないと
ゲームで表示されません。
ビューアーでちゃんと表示されてライブ2Dファイルに問題がないのに
ティラノで映らない、表示されないとかがあったときは
書き出しバージョンもチェックです。

ティラノライブ2Dプラグイン4.x系でしたら
4.0で書き出したモデルじゃないとうつりません。
(4.1、4.2は×)







つぎ、モーションファイルづくりに行きます。


●アイドリングモーションは5秒より長いものにする
●その他のモーションは大体3秒くらいで作っている


その他のモーションはシナリオ上の演出に合わせてなんでもいいんですが
アイドリングモーションは5秒より長いファイルで作っておかないと
アイドリングとして認識されないことがあるようで(ツクール?)
ちょっと長めにしておくのが吉のようです

その他のモーション長めにすると、長くポーズしたいときはいいけど
クリックして次にシナリオ進めてるのに、ずっとやってたり
モーションの切り替わりが合わず変なポーズになると嫌なので
主要な動きは0:10~1:10の間に終わるようにしています。
これはびっくり顔になるモーション↓

0:00じゃなくて0:10からキーフレームつけだしてるのは
切り替えのインに0:00だと前のモーションから変わるときに
急すぎたりすることがあるためです。



●必須なのがリセットモーションを作っておくこと!



シナリオ上で再生したときに、デフォルトポーズに戻したり
パラメータを設定していない、モーションに移行するときに
無いと不便だったりします。
びっくり顔から笑顔になるときに、瞳孔が小さくなったまま口だけ笑ってしまう
とかなったりするので、
表情が複数あればあるほど、移行の組み合わせをすべて網羅して移行するの難しい場合があるのでリセットモーションを挟んで移行すると意図しない変な顔になるのを防げます。
フェードインや帽子、手に持っているものなどのオンオフはリセットから
外しておけば吉


●静止のアイドリングモーションを作っておく



長くや、プレイヤーがクリックするまで同じポーズや表情をしていてほしい時のための
アイドリングモーションを用意します。
それが、モーションの変更がないモーションファイルです。
↑は呼吸のみ入っています。
呼吸なしもあったら静止するからいろいろ演出として使えます。



  


必要箇所にのみキーフレームを付けます↑
リセットモーションはフェードのキーフレームは0個
フェードのモーションはフェード以外のキーフレーム0個です。

※アイドリングに呼吸しかキーフレームを入れていないのは
 表情を変化させるモーションを入れたときに(にっこり目等)
 瞬きにキーフレームがあると目が戻ってしまうからです。
操作する人がクリックするまで同じ表情を続けてもらうために
アイドリングに呼吸しか入れていません。
アイドリングも呼吸のみ、呼吸+瞬きと複数用意しておくことで
場面合わせて使い分けができます。



●モーションファイル名はわかりやすく


↑みたいな感じで、体、顔(表情)、リセット、アイドリング
と、わかりやすく名前を付けます。
わかりやすさは命です。
制作スパン長いと忘れます。自分の脳みそは信用できません。





●モーションファイルはmotionsというフォルダにまとめます。


モーションファイルができたら
モデル名.model3.json
にモーションファイルの紐づけをします。

ライブ2dビューアーが使えるなら
ビューアーでモーショングループ名を付けていただければOKです。
モーショングループ名は頭文字を大文字でつけます。
スクリプトうちミス防止に短くわかりやすい名前が推奨
●モーショングループ名もわかりやすく



モーショングループ名の一番上のファイルが
ティラノでは
[live2d_motion name="モデル名" mtn="Kao" no=0 ]
上から二段目のモーションが
[live2d_motion name="モデル名" mtn="Kao" no=1 ]


になります。
ちなみにツクールプラグインだと
一番上が no=1
2番目が no=2
になります。



●アイドリングモーションは1つのグループに1つにする


アイドリングモーションに設定するモーションに
複数モーションがあると、アイドリング中連続で再生されてしまうため
1個ずつにしておきます。
複数のアイドリングがあるときは
Idle    Idle2    Idle3
とかモーショングループ名をわけます。 


●expressionは使わない。

→これは、私がexpressionをうまく使いこなせないからです。
(秒数とか、モーションの移行とかを)
モーションファイルで表情を設定して作っておけば細かい調整が可能なので
ライブ2Dビューアー等のデフォルト機能で作成した表情ファイルは
秒数のコントロールや、自分で作ったモーションファイルで再生が移行するときに
どのパラメータが反応するか読みにくいので使ってません。
(顔の比率が人間じゃない奴とかいっぱい作ってるので)
使いこなせる方はじゃんじゃん使えばいいと思います!!!


●後からモーションを追加するときは
モーショングループの中での上下の順が変わらないように!!
ゲームのライブ2Dプラグインにもっていくと
モーショングループ名=2 呼び出しとかで
スクリプトを入れていきます。
あとから動きを追加したくなることが、あると思います。
そのときに、モーショングループ内で順番がかわると
スクリプトを組んだシナリオファイルの修正がえらいこっちゃになるので
追加モーションは新しいモーショングループ名にするか
既にあるモーショングループのモーションの下に追加されるように
モデル名.model3.jsonファイルを作りましょう!!重要です!!

まとめ

ライブ2Dモデラーでの設定
●フェードイン、フェードアウトパラメータを作っておく
●口の開閉のみのリップシンクを入れておく。
●リピートパラメータは使えない
●mocファイル、モデルの書き出しバージョンのチェック!


ライブ2Dアニメーターでの設定
●アイドリングモーションは5秒より長いものにする
●その他のモーションは大体3秒くらいで作っている
●リセットモーション必須
●静止のアイドリングモーションを作っておく
●モーションファイル名はわかりやすく
●モーションファイルはmotionsというフォルダにまとめる

ライブ2Dビューアーでの設定
●アイドリングモーションは1つのグループに1つにする
●モーショングループ名は頭文字大文字、短くわかりやすく
●expressionは使わない。
●シナリオスクリプト作成中や作成後から
モーションを追加するときは新しいモーショングループ名を付ける

↓ビューアーでの設定の仕方詳しく加筆しました。(2024/2/25)

ビューアーでのモーションファイルとの紐づけ方



ライブ2Dモデルセットが完成したら
ゲームに入れて動作確認をしようー
動作確認してからパラメータの微修正いることよくあるので。
(モーションの移行で粗がでることがある)

あくまでも私個人のやりかたです。(2023/11/12現在)
ではでは。



PR

2022ティラノフェス受賞記念。

2022年のティラノフェスは
『足の下が透視できる少年加賀地くんと誘拐犯のおじさんの話 』
という作品でエントリーしました。
https://novelgame.jp/games/show/6961


分岐なしの短編ノベルです。
だいぶ前に書いていたシナリオだったのですが、
画像素材が多めになってしまうので作り始めが遅くなりました。
制作は制作お休み機関も含めて1年半くらいですかね。

話の中身が重いので
今作ではコミカルなふきだし演出と言葉の掛け合いとイラストでまとめました。

ありがたく佳作を受賞しました!
ありがとうございました!!


またフェスのダイヤ玉コメントキャンペーンでも抽選に当選しました!
ありがとうございます~。



設定画



ここ数年は、ツクールmv→mzにも手を出してゲ制していました。
記事がご無沙汰ですが、最新作は2022、2月公開の
『赤いギャリートロット』という
ツクール製ダークアドベンチャーです。
どうぞよしなに。
https://www.freem.ne.jp/win/game/30083






スキップボタン付きスタッフロール

ティラノビルダー・スクリプト で
スキップボタン付きのスタッフロールを作る方法。

スタッフロールをスクリプトで記述する方法は
こちらのティラノスクリプトwiki様を見ると実装することができるのですが。

https://tyrano.wiki.fc2.com/wiki/魔法・エフェクトを表示する試み


この方法だと、スキップボタンを実装することができません。
スタッフロールの文字がアニメーションするアニメーション待ちに
[wa]タグが使われているからです。
[wa]はアニメーションが終わるまで、次の処理に進まないタグです。

なのでこれを使わないで[wait time=" "]を使い、
ロール終了後に
[cm](改ページ)
[s](ゲーム停止)

を入れます。
一定時間経過すると選択肢が消えてしまう
早押しクイズの仕組みみたいなの使ってスタッフロールを流しながら、
スキップボタンを機能させます。


以下、スクリプトです。++++++++++++++
;エンディングテスト
[cm]
;背景変更
[bg storage="0_kuro.png" time="100"]
;メニューボタンの非表示
@hidemenubutton
;スキップボタン
[glink name="sukip" color="btn_05_black" size="18"  width="200"  x="800"  y="5"  text="skip"  storage=""  target="*skip" ]
@anim name="sukip" time=10 opacity=150
;スタッフロール
@layopt layer=0 visible=false
[ptext layer=0 text="クレジット" size=20 x=400 y=300 color=snow name="text"]
[ptext layer=0 text="スタッフロール" size=20 x=400 y=400 color=snow name="text"]
[ptext layer=0 text="スタッフロール" size=20 x=400 y=500 color=snow name="text"]
[ptext layer=0 text="スタッフロール" size=20 x=400 y=600 color=snow name="text"]
[ptext layer=0 text="スタッフロール" size=20 x=400 y=700 color=snow name="text"]
[ptext layer=0 text="スタッフロール" size=20 x=400 y=800 color=snow name="text"]
[ptext layer=0 text="スタッフロール" size=20 x=400 y=900 color=snow name="text"]
[wait time=1]
;スタッフロールの文字がアニメーションする設定
[keyframe name="animation1"]
[frame p=0% y="400"]
[frame p=100% y="-1000"]
[endkeyframe]
;アニメーションの実行 3秒かけてキーフレームアニメーションを実行
[kanim name="text" keyframe="animation1" time="30000" easing="linear" ]
;スタッフロールを描写したレイヤーが見えるように
@layopt layer=0 visible=true
;アニメーションの再生を待つ(waを使うとボタンが使えないためウェイト)
[wait time="30000"]
[cm]
;エンドテキスト
[ptext text="The End" layer="0"  x="580"  y="250"  size="35"  edge="0xffffff"  color="0xffffff" name="end" time="2000" name=end]
;クリッカブルでクリックでs(ゲーム停止)を飛ばす
[clickable  width="1100"  height="760"  target="*skip"  ]
;ゲーム停止
[s]
;クレジット終了
*skip
[cm]
[wait_cancel]
;テキストを消去
[freelayer layer="0"]
;タイトルへジャンプ
*title
@bg storage ="title.jpg" time=2000
@jump storage="title.ks" target="start"


+++++++++++++++++++

このスタッフロールの後ろで背景画像を変更したいけど
うまくいかないということをお聞きしたので
検証しました。

スキップボタン付きスタッフロール、画像変更もしたい

ティラノスクリプトでスキップボタン+スタッフロール+背景変更です。




スキル効果音がシステム設定窓で見えてなかった問題。

ツクールMVのシステムタブでは、
SEやらBGMやらいろいろと設定できて便利なのですが、
アイテム使うときの音は帰られたのにスキルを使用するときの
選択音が変えられない!?
なぜーとなっていたら…

隠れていました。
画面表示サイズの問題なんだろうか。PCの問題なんだろうか・・?




スクロールバーを一番下まで動かしてもなかったのが
一番下に動かした後ドラックしたら出てきました。
マジか!やっと見つけたよ!!


とりあえず見つけて変えられるようになったのでOK!!
(変えられない間に3作もつくっちゃったよ・・・・・・)

ツクールMVでスキル使用時の効果音が変えられない、見つからない
無いー無いぞーという方はご参考に…
他にいるのだろうか…?






セーブデータのプレイ時間の表示位置が変数と重なって困った問題。

ツクールMVで

・セーブに変数表示プラグイン
https://plugin.fungamemake.com/archives/2338

・セーブにマップ名表示プラグイン
http://ktnhmv.jugem.jp/?eid=51


という、どちらも神のようにありがたいプラグイン様で!
をお借りして両方有効にすると


プレイ時間の表示位置が右上になってしまい
画面表示が重なって困った問題。


こんなかんじ↑


◆解決策

セーブにマップ名表示プラグインのプレイタイム表示の
記述のxの位置を192→10にしました。 これで変数の表示場所をずらせた。 本当は変数の段の下に表示したかったけど高さ動かすのはうまくいかなかった…。




rpg_window.jsのセーブ表示のほうもいじってみたのですが
たぶんプラグインの方が有効なので
あまりわからず。




とりあえず、プレイ時間の位置をずらすことに成功したのですOK!