2.1 における描画方式の変更について

以下の事情により、Cubsim Editor2.0 / SDK 2.0 では、環境ごとに表示上のズレが発生するケースがありました。
  1. Cubism Editor と SDK の開発の経緯の違いから来ていた演算方法の違い。
  2. Cubism SDKのうち、 Unity とAndroid(Java)版のみ、回転デフォーマの角度が僅かにズレるバグが存在。

Cubism Editor 2.1 / SDK 2.1 では、ズレを解消するために描画方法を変更し Live2D Viewer の描画方法に統一しました。

ただし、2.0で作成済みのモデルが2.1で予定外に変化してしまうことを避けるため、Cubism Editor、SDKの設定ににより旧方式の表示を維持する機能も追加しております。過去のバージョンで作成したモデル、アプリなどとの互換性を意識する必要がない場合は、2.1標準の描画方式を使用して下さい。



         ※1  C++には、iOS、cocos2dx、PSVita、PSP、PS4、Nitendo3DS、DirectXなどが含まれます。


変更①  SDK2.0  Unity,Android から、 SDK2.1  Unity,Android への変更

回転デフォーマの計算式に正しくない部分があり、Live2D Viewer および C++版 SDKと僅かに表示がずれておりました。多くの場合肉眼では確認できない程度の違いとなります。

SDK 2.1 ではLive2D ViewerおよびC++版SDKと同じ方式で描画するように修正しました。

この修正の結果として、Unity ,Android において、SDK 2.0 で正常に動作している場合、SDK 2.1 の標準設定では僅かに変化してしまう可能性があります。
これを防ぐためには、Cubism SDK で以下の設定を行います。

Live2D.setDrawMethodVersion( Live2D.DrawMethodVersion.FORCE_2_0 ) ; // 強制的に全てのモデルを 2.0と同じ方式で描画します。

モデルごとに2.0と2.1の描画方式を切り替えたい場合は、デフォルトの共通設定と、モデルごとの個別設定を行います。

Live2D.setDrawMethodVersion( Live2D.DrawMethodVersion.DEFAULT_2_1 ) ; // モデルごとには未指定の場合 2.1 

Live2DModelUnity    modelA ;
modelA.setModelDrawMethodVersion( Live2DModelUnity.ModelDrawMethodVersion.DRAW_2_0 ) ;// このmodelAを2.0表示

SDK2.1で、何も設定を行わない場合は、2.1 標準描画方式 で表示されます。


変更②  Cubism Editor2.0 から Cubism Editor2.1 への変更

回転デフォーマの角度計算、曲面デフォーマの範囲外部分の計算、デフォーマの階層間の計算方法などを修正しました。
多くのモデルでは目に見える変化はありませんが、必要に応じて旧方式をメニューからお選び頂くことも可能です。

Cubism Modeler 2.1 、Cubism Animator 2.1 ともに「表示」メニューから、各方式を選択します。



表現の違いが発生しやすい例

<曲面デフォーマの「範囲外」におかれたオブジェクト>

曲面デフォーマの「範囲外」に置かれたオブジェクトの計算方法は、Cubism Editor2.0と、2.1標準の描画方式で大きく変更されました。

2.0の方式は曲面デフォーマの範囲外のオブジェクトの計算を低速で滑らかに表現するような仕組みとして実装しておりましたが、「2.1標準の描画方式(推奨)」では、SDKと同じシンプルで高速な計算方式を採用しSDKとエディタの表示が同じになるように修正しました。

「2.0エディタ互換の表示方式」で旧来の方法で描けますが、SDKとは異なる表示になる可能性がありますので、SDKで組み込む目的の場合は 2.1標準の描画方式で修正頂くようお願いします)

また、いずれの方式でも曲面デフォーマの範囲外にオブジェクト(描画オブジェクト、デフォーマ)などを配置すると範囲内よりも負荷が大きくなります。そのため、基本的には曲面デフォーマの範囲内に収めることを推奨します。


<曲面デフォーマに入った回転デフォーマの角度>

「2.0エディタ互換の表示方式」と、「2.1標準の描画方式(推奨)」で、若干角度にずれがずれが生じることがあります。




よくある質問

Q. 既にSDK 2.0 を使って Unity アプリをリリースしています。SDKを2.1 にバージョンアップする場合はどのようにしたら良いですか?
A-1. 新規にモデルを制作する可能性が無いのであれば、SDK 2.1に変更した後、Live2D.init() 以降で、
Live2D.setDrawMethodVersion( Live2D.DrawMethodVersion.FORCE_2_0 )
と設定して下さい。

A-2. 新規にEditor2.1 でモデルを制作する場合は、SDK 2.1に変更した後、以下のように設定して下さい。

Live2D.setDrawMethodVersion( Live2D.DrawMethodVersion.DEFAULT_2_0 ) ; // 未指定のモデルは 2.0 方式
Live2DModelUnity   model ;
model.setModelDrawMethodVersion( Live2DModelUnity.ModelDrawMethodVersion.DRAW_2_1 ) ;// このモデルは 2.1方式


Q. CubismModeler2.0で作成したモデルデータを、Animator2.1でアニメーション設定したい場合はどのようにしたら良いですか?
A-1. 映像として書き出すアニメーションを作成する場合は、「表示」メニューから「2.0エディタ互換の表示方式」を選択して下さい。
A-2. 組み込み用のアニメーションを作成する場合は、どの設定になっていても結果に影響はありません。


Q. CubismModeler2.0 でのモデル作成時に Live2D Viewer で正しくなるようにモデルを調整していました。
  2.1 ではどの設定を選べば良いですか?
A. Live2D Viewerと 「2.1 標準の描画方式」は同じ描き方ですので、「2.1 標準の描画方式」をお使い下さい。 
  2.0で作成したモデルも、新しく2.1で作成するモデルも、正しい表示で確認しながら編集できます。




Comments