Live2D Cubism link

Live2D Cubism はビジュアルノベルのキャラクター画像のような2D画像をアニメーション出来るようにするシステムです。これらの画像は例えば、虹彩と瞳孔のレイヤーや、白目のレイヤー、眉のレイヤーなどのように一連のレイヤーに描画されます。

Live2Dソフトウェアは制作者にメッシュとこれらの各レイヤーを関連付けさせ、パラメータの調整でどのようにメッシュが変形されるかを指定します(各メッシュの形は変形します)。Live2Dソフトウェアは時間と共にどのようにこれらのパラメーターが調整されるかを決定するモーションファイルと expressionを決定するexpressionファイルを作成します。

Ren'Py のLive2D組み込みはLive2Dが生成するファイルを所得してRen'Pyで表示されるアニメーションを定義するのに使用します。Ren'Pyはモーションとexpressionを処理してパラメータを決定します。これはCubism SDK for Nativeに渡され、Ren'Pyに表示するメッシュのリストを返します。Ren'Pyはこれらのメッシュを描画し、その結果が画面のLive2Dキャラクターとなります。

Ren'PyはCubism 3, 4形式のLive2Dアニメーションをサポートします。これはexpressionとモーションのプレイバックをサポートします。

警告

DLL がプラットフォームに提供されていないため、Live2D は x86_64 Android プラットフォームではサポートされません。つまり Android エミュレーターや ChromOS での実行には問題があります(訳注* スマフォのAndroidはx86_64ではなくArmなので問題ないと思われます)。

Live2D はウェブプラットフォームをサポートしません。

Live2D を iOS にインストールするには情的ライブラリを iOS プロジェクトに手動でコピーしなければなりません。

Live2Dのインストール link

Live2D を使えるようになる前に、 Live2D website から Cubism SDK for Native をダウンロードしてインストールしなければいけません。年間一定以上の金額となるビジネスに使用するにはライセンスを購入する必要があることに注意してください。

一旦 Live2D をダウンロードしたら、 Ren'Py ランチャーからインストールできます。インストールには "preferences" の "Install libraries" をクリックしましょう。 CubismSdkForNative-4-r.1.zip ファイルをインストールライブラリ画面の右下にあるボタンからアクセスできる Ren'Py SDK ディレクトリに置いてください。 "Install Live2D Cubism SDK for Native" をクリックしましょう。少したつと、 Live2D がインストールされます。

GL2の設定 link

Live2Dをしようするには、モデルベースのレンダリング設定が必要です。次の行を追加します。

define config.gl2 = True

これはゲームごとに設定してください。

アニメーション定義 link

Live2DアニメーションはLive2D Displayable と image ステートメントを使用して定義されます。

Live2D Displayableはimage ステートメントで代入するべきです。

image hiyori = Live2D("Resources/Hiyori", base=.6)

属性も定義でき、これは様々なズームとスケーリングの係数にとても便利です。

image hiyori close = Live2D("Resources/Hiyori", base=.6)
image hiyori far = Live2D("Resources/Hiyori", base=.9)

アニメーションの使用 link

Live2D 画像を表示する通常の方法は show ステートメントの使用です。image ステートメントの一部として追加された属性を追加して expression とモーションの名前が使用出来ます。

show natori exp_00 mtn_01
show hiyori m10
show hiyori m10 m01

これらは Cubism SDKのサンプル名にあるデフォルトの名前を使用しています。モーションとexpressionの名前は Live2D ファイルから取られており、もしそれらがmodel3.jsonファイルの名前(ディレクトリや拡張子を除く)で始まり、アダースコアが続くなら、接頭辞は除去されます(例えば "Hiyori_m01" はただの m01 になります)。

最大で1つの排他的expressionと非排他的なexpressionとモーションをいくつでも使用可能です。1つ以上のモーションが指定されると、そのモーションが順に再生され、 loop がTrue なら最後のモーションがループします。これによりアイドル時のアニメーションが続くモーションが再生出来るようになります。各モーションはそのモーションに複数のエイリアスが作成されない限り一度だけ現れます。

2つの特別な属性 nullstill があります。null 属性は非排他的な expression ファイルが適用されることを意味し、キャラクターのデフォルトの expression を指定します。 still モーションはすべてのモーションを停止します。

非排他的な expression は属性の否定で除去されるまで保持されます。

show hiyori -wave

スケーリング link

多くの Live2D モデルは少なくともモデルが使用する内部座標では高解像度で定義されます。これを調整するため、 Ren'Py には Live2D をスケールダウンする 2つの方法があります。

1つめは zoom 引数です。これは直接モデルの拡大係数を設定します。zoomが使用されると他のスケーリングパラメーターは無視されます。

もう一つは top, base, height 引数を使用します。最初の 2つは2つのラインを画像の上端と下端からの相対指定で指定します (Ren'Py の他の場所では、 0.0 は上端で、1.0 は下端です)。これらの引数が使用されると次の2つが起きます。 :

  • 画像は topbase の間の領域が height になるまでスケーリングされます。ここで height はスクリーンの割合です。

  • アンカーが調整され、 base はスクリーンの下端に配置されます。

Live2D アニメーションがどのようにスケーリングされるかを理解したら、まず base パラメータをアニメーションの正しい部分がスクリーンの下端に揃えられるまで調整します。つぎに :

  • 画像が大きすぎたら、 height を正しいサイズまで縮めます。

  • 画像が小さすぎたら、 top を大きくしてアニメーション上部の空き空間を縮めます。

Motion Fading link

Ren'Py の Live2D サポートはモーションフェードを含みます。通常、 Ren'Py があるアニメーションから他のアニメーションに変化するとき、トランジションがなければ突然の変化となり、元のアニメーションは停止し、他のものが開始します。トランジションが起きると、両方のアニメーションが同時に再生されます。

Live2D は別のモデルをサポートし、以前のアニメーションがスムーズに新しいものにフェードインするとともにパラメーターが補間されます。この考え方はボジションの変更と言うよりキャラクターが腕の位置を移動するようなものを考えてください。

モーションフェードは fade 引数で制御されます。 true なら、モーションフェードが使用され、 False なら突発的な変化になります。 None ならモーションフェードは _live2d_fade 変数によって制御されます。 :

_live2d_fade = True link

True なら、 Live2D アニメーションはモーションフェードを使用し、 False なら、アニメーションは突発的に変化します。

エイリアス link

alias パラメーターは自動的に定義されるモーションの固有名を制作者に指定させます。例えば、次のコードにより

image hiyori = Live2D("Resources/Hiyori", base=.6, aliases={"idle" : "m01"})

次が使用可能になります

show hiyori idle

これは次のコードの代替となります。

show hiyori m01

ループと画像の予測 link

Ren'Py の Live2D サポートは loop パラメーターが True なら最後のアニメーションをループ出来ます。アニメーションがループされるなら、Ren'Py が高価な画像の予測を処理するのに利用できる 0.2 秒以上のポーズの追加が重要です(これは画像予測とロードが他の時に終わっていれば不要です)。

Functions link

renpy.has_live2d() link

現在のプラットフォームで Live2d がサポートされていれば True を、そうでなければ False 返します。