新しいLive2D公式コミュニティ(日本向け)が公開されました!
ぜひご利用ください!
Live2D公式コミュニティ
■このコミュニティの今後について
このコミュニティ(forum.live2d.com)につきましては、しばらくの間新コミュニティと並行して運営しますが、2023年夏ごろを目処に方針を決定する予定です。
(2022/12/27追記 2022年内を目処に閉鎖 から変更しております)
内容については決定次第お知らせいたします。
海外向けコミュニティについては変更ございません。
ぜひご利用ください!
Live2D公式コミュニティ
■このコミュニティの今後について
このコミュニティ(forum.live2d.com)につきましては、しばらくの間新コミュニティと並行して運営しますが、2023年夏ごろを目処に方針を決定する予定です。
(2022/12/27追記 2022年内を目処に閉鎖 から変更しております)
内容については決定次第お知らせいたします。
海外向けコミュニティについては変更ございません。
Live2Dに関するユーザーのみなさま同士の交流・ご質問・不具合の報告・提案・要望などについて是非お寄せください。
※Live2D公式スタッフからの発言や回答については確約できないことを予めご了承ください。
Live2D ヘルプ
Cubism Editorダウンロード / 動作環境
Cubism SDKダウンロード / 対応表
Cubism 製品利用ライセンス(SDK含)
Cubism 製品のライセンスについてのお問い合わせはこちら
nizima 及び nizima 製品についてのお問い合わせはこちら
※Live2D公式スタッフからの発言や回答については確約できないことを予めご了承ください。
Live2D ヘルプ
Cubism Editorダウンロード / 動作環境
Cubism SDKダウンロード / 対応表
Cubism 製品利用ライセンス(SDK含)
Cubism 製品のライセンスについてのお問い合わせはこちら
nizima 及び nizima 製品についてのお問い合わせはこちら
【各最新OSの対応状況について】
Cubism Editorは 4.1.02 正式版以降でWindows 11 及び macOS Monterey に対応しております。ぜひ最新版をご利用ください。
※macOSをお使いの方でOSアップデートする際は必ずCubism Editorのライセンスを解除してください。
Cubism EditorをインストールしているmacOSをアップグレードしたい
Cubism SDKについては各SDKのREADMEまたはNOTICEをご確認ください。
【Mac各機種への対応状況について】
現在、Cubism EditorはApple M1チップ搭載機種には対応しておりません。
詳細は 動作環境 をご参照ください。
関連するお問い合わせへの対応はこの文章をもって代えさせていただきます。
Cubism Editorは 4.1.02 正式版以降でWindows 11 及び macOS Monterey に対応しております。ぜひ最新版をご利用ください。
※macOSをお使いの方でOSアップデートする際は必ずCubism Editorのライセンスを解除してください。
Cubism EditorをインストールしているmacOSをアップグレードしたい
Cubism SDKについては各SDKのREADMEまたはNOTICEをご確認ください。
【Mac各機種への対応状況について】
現在、Cubism EditorはApple M1チップ搭載機種には対応しておりません。
詳細は 動作環境 をご参照ください。
関連するお問い合わせへの対応はこの文章をもって代えさせていただきます。
頂点数を取得したい
現在UnityでLive2Dを使っています。
モデルに当たり判定をつけて、その判定ごとにモーションを変えたいです。
Modelerで判定用のポリゴンの配置はしました。
言語はc#でプログラムで取得しようとしています。
マニュアルを参考に書いていますが、getTransformedPoints関数の第二引数が無いらしくて頂点数取得出来ません。
他に頂点数を取得出来る方法があったらお願いします。
モデルに当たり判定をつけて、その判定ごとにモーションを変えたいです。
Modelerで判定用のポリゴンの配置はしました。
言語はc#でプログラムで取得しようとしています。
マニュアルを参考に書いていますが、getTransformedPoints関数の第二引数が無いらしくて頂点数取得出来ません。
他に頂点数を取得出来る方法があったらお願いします。
コメント
こちらを利用するというのはいかがでしょうか。
HitTest()関数の一つ目の引数は、モデルに配置された当たり判定用の描画オブジェクトのID(Modelerのパーツパレット、または編集パレットにある「ID」で確認できる文字列)を渡します。
HitTest()関数を使うとなると、LAppModelクラス定義が必要になりますよね。
その場合LAppModelの初期値はどうしたらいいでしょうか?
UnityでLive2Dを使うのは初めてなもので、何もわからないもので…
マニュアルのチュートリアルでとりあえずの実装は可能ですが、SampleApp1にはLive2Dを扱う機能がひと通り揃っております。(Unityに限らず、どのプラットフォームのSDKでもその点は共通です)
HitTestの使い方もここで説明するより、SampleApp1のプロジェクト自体を利用したほうが早いかと思います。
注意点として、モデル設定用JSON(サンプルで言う、[モデル名].model.jsonという名前のファイル)を用意して頂く必要があります。
その中に当たり判定用の描画オブジェクトのIDを設定しておけば、HitTest()関数でそれを使って当たり判定の結果を返してくれます。
モデル設定用JSONは、Live2D Viewerで作成することが出来ますが、わからなければまたこちらまで。
配列の要素数は戻り値のLengthから取れますし、頂点数はそれを2で割った数です。(x1,y1,x2,y2のような配列なので)
//マニュアルに書いてあるコード
//C++は配列自体に要素数の情報を持たないので、第二引数で頂点数を受け取るための変数を渡してます。
float* points=live2DModel->getTransformedPoints(drawIndex,&pointCount);
for (int i = 0; i < pointCount; i++)
{
float x = points[DEF::VERTEX_OFFSET+i*DEF::VERTEX_STEP];
float y = points[DEF::VERTEX_OFFSET+i*DEF::VERTEX_STEP+1];
}
//C#での同等のコード
float[] points = live2DModel.getTransformedPoints(drawIndex);
for (int i = 0; i < points.Length; i =i + 2) {
float x = points[i];
float y = points[i + 1];
}
のなかの
hitTestSimple()
getSimpleRect()
あたりがその処理ですので参考にしてください。