忍者ブログ

でんきみちブロ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

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

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

スタッフロールをスクリプトで記述する方法は
こちらのティラノスクリプト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"


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

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

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

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




リーパーとスケーラー

REAPERというたぶん現在一番お値段の安いDTMソフト
(60ドル)
https://www.reaper.fm/

とスケーラ2ーというプラグイン(50ドル)を
Plugin Boutiqueで
買いまして、使い方がわからなすぎるのと
起動するたびに忘れるので

メモします。
日本語化とかスケーラー2の入れ方とかは検索すると
いっぱい見つかりますのでカット。

REAPERでScaler 2の使い方。


まずは新規トラック



MIDIの挿入はどっちでもいいですが
でてきたMIDIのところをダブルクリックすると
鍵盤が左端に入った入力画面出せます。



FXを押すとプラグインが入れられます。

スケーラー2を選びます。


スケーラー2起動時、最初は
ネットのリンクばかりなので下の方の
closeを押すと、進みます。


スケーラー2の画面。

songsのところを選ぶといろんなテーマでコード選びしてもらえます。
シネマティックにホラーがあるぞ


歯車のところで、2beatとかなってるところを
帰ると演奏してくれる小節の長さがかわるようですぞ。


音の大きさ変えたい―どこじゃあーって
なってどうもここでした。音量。

ちなみに私は
https://www.youtube.com/watch?v=a9JS1o-vdIg&t=336s
の動画をみて購入することにしました。

検索するといっぱいやり方でてますねー。
これで自作BGMつくるんじゃああ><


うおー


ティラノスクリプト_コンフィグでSE音量とボイス音量を分ける方法

デフォルトではボイスはSE扱いで、
コンフィグにはBGM音量とSE音量の調節ボタンしか
ついていません。
しかし、SEのバッファチャンネルを複数に分けてその一つをボイスに当て、
バッファチャンネルごとの音量調節を追加することができます。


ティラノ開発者のシケモクMK様が
こちらで手順を公開して下さっています。

https://tyrano.fanbox.cc/posts/914163

しかし、この方法は、ティラノスクリプトV460のバージョンになります。

(テキストファイルで編集すればティラノビルダーでも導入可能です
 ※ティラノビルダーでconfig.ksファイルを開いて保存するとファイルが壊れて
 動かなくなるので必ず、テキストファイルで開いて編集する必要があります。
 ビルダーではいじらない。もし、いじってしまって動かなくなったら、
 新しいゲームプロジェクトのデフォルトファイルで上書きしちゃいましょう。
 原因わからんし……)


現在最新のティラノスクリプトはV505になっています。
V4とV5ではいろいろなところが違うようです。

ティラノスタジオで制作中の

V5をゲームエンジンにしたゲームプロジェクトで

このボイス音量調整を導入する方法を

ためして、いろいろいじったので忘備録に記録しておきます。
まず上記の、シケモクMK様の記事からサンプルファイルをDLします。

記事の通り、config.ks、make.ksに記述を追加していきます。

ここで問題になるのが、
画面サイズconfig.ksの記述が違っている部分です。

サンプルファイルが980×640の画面でできていて、
v5で現在作っているゲームの画面は1280×780なので

そのまま入れるとこんな風にずれてしまいました
(これは少し数値をいじっているので、そのままだとSE音量のボタンの上に
重なっていました。ついでに押して、割り当てたボイス音量を操作することは可能でしたが
コンフィグを開いたときはボタンが表示されません。)




↑小さくずれた黄色いボタンがあります。これが追加したSEボタン。

これを解決するべく、config.ksの各部分をいじっていきます。

まず、シケモクMK様のサイトから(サンプルのコピー)








そして、v460のコンフィグ.ksは数値指定で座標が入っていましたが
v50Xは数値を代入して呼び出せるようになっているので、
とりあえずseの段をコピーしてvoに書き換えて追加します








次に音量調節ボタンを表示する部分、サンプルファイルからコピーしたものだと
980×640のサイズの数値指定になっているため、直します。
ここの表示位置に手打ちで数値いれるか、
x="&tf.config_x[0]" y="&tf.config_y_vo" exp="tf.current_vo_vol
を挿入して表示位置を指定します。
ここが、1280サイズににするときとてもわからんかったの;;

もしくは
ちなみに、h130の位置はBGM音量の上の段にしてあります。


表示するとこんな感じ↓


ボイス音量100%の位置↑   ボイス音量ミュートの位置↑

隙間がないのでBGMの上段にVOのボタンラインを持ってきてます。
位置がOKになれば、あとはボタンの溝画像をコンフィグの背景にたします。




続いて、コンフィグ初回起動時の画面更新、se部分をコピーしてvoに書き換えて追加










音量変更の部分を追加(サンプルファイルからコピー)
ここでbuf設定ができます。ここで指定した数値と
make.ksに入れるタグの数値を合わせましょう。










ボタン画像を更新する部分
画像、直し忘れがありますが、seをコピーしてvoに変えてください



最後にconfig.ksの末のほう
画像の読み込み(コンフィグ画面の起動時のみコール)
の部分、seをコピーして追加、voに書き換えます。




これで、config.ksの変更は終了です。

次は、make.ksに


[seopt
buf=1 volume="&sf.current_se_vol" effect=true]
[seopt buf=0 volume="&sf.current_vo_vol" effect=true]
を追加します。sf.current_vo_volのbufは
先ほどのconfig.ksに挿入したbufと
合わせます。


この辺のことはシケモクMK様の記事をよく読み込んでください。
https://tyrano.fanbox.cc/posts/914163




そして、

config.tjsファイルを確認します!

今までいじっていたconfig.ksはシナリオフォルダのやつです。
data>systemフォルダのconfig.tjs の

// ◆ サウンドで使用するスロット数をあらかじめ定義します。
;defaultSoundSlotNum = 3;

を確認します。
[playse]タグで指定できるbufの数を定義しているところだそうです。

ここを3にすると。
buf=0     buf=1   buf=2

の3つが使えるようになります。


これで、シナリオファイルで、voに指定したbufの数値で
ボイスを音声を流せば、ボイスとSEを分けてコンフィグで音量調節が
可能(なはず…!)です!!


今回config.ksファイルとにらめっこしたおかげで、
わかったことがいろいろありました。
ボタンの位置の数値指定ならレイアウト変えられそうだぞ。
(数多いからバランスよくするのすごい大変そうだけど)


有料などで、コンフィグのプラグイン配布されている方もいるので
そちらを利用するのも手ですがね!

ではではお疲れさまでした。






ティラノ、バックログのフォントカラーを変える。

ティラノビルダー、ティラノスクリプトで
バックログの文字の色を変える方法。

メモです。

マイプロジェクト>tyrano>html
のフォルダに
backlog.htmlが入っています。
このファイルをテキストエディターで開いて。

こうじゃ。ちなみにティラノスクリプトV505のやつです。


もっと前のバージョンのティラノのバックログの文字の変え方はほかの方のブログなどに
あったのですが、今の記述のやつはなかったので書きました。

<div class="log_body"></div>

のところに

<div class="log_body" style="#RRGGBB"></div>

を追加でできます。
RRGGBBのところはRGBのウェブカラーですよ。

レッドグリーンブルーの光の混合地を16進法で表示したやつです。



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

ついでに、コンフィグのテキストメッセージの

テキストサンプルのフォントカラーの変え方も。




ここの色のことです。背景などの画像素材を差し替えたら、合わせて文字色も変える必要が出てくるので

マイプロジェクト>data>scenario>
config.ksファイルをテキストエディターで開きます。
(ビルダーで編集するとたぶんコンフィグファイル壊れるので、
ビルダーでは開いて上書き保存しないほうがいいです)
テキストエディターが正解です。




こんなかんじです。
本編のゲーム部分のテキストの色設定で文字を表示した後
css("color","#66564C")で色変わっちゃうので

[font  color="0x000000" edge="none" ]

css("color","#000000")

の色は同じにしておくとよいです。(画像のやつは違ってますが)

[resetfont ]

を配置して下さい。

無いとフォントの色が変わったまま、本編のメッセージウィンドウの文字色に影響してしまいます。

[resetfont ]でデフォルト設定のフォントカラーにもどります。