Cubism 製品のマニュアル・チュートリアルはこちら
 
Cubism Editorマニュアル    Cubism Editorチュートリアル    Cubism SDKマニュアル    Cubism SDKチュートリアル

ArtMeshのワールド座標の取得方法

下記のページを参考にさせて頂き、ArtMeshのワールド座標を取得しようとしているのですが
どうしてもローカル座標しか取得できません。
注意点などありましたらご教授願えませんでしょうか。
よろしくお願いします。

参考ページ
https://forum.live2d.com/discussion/1745/artmeshのワールド座標

・SDKバージョン Cubism 4 SDK for Unity R1

コメント

  • @gohhon さん

    提示していただいたディスカッションの回答は間違いです。大変申し訳ございません。
    CubismRenderer.Meshの頂点座標はローカル座標です。
    頂点座標からワールド座標を取得するには、GameObjectのTransformをかけ合わせる必要があります。
        Vector3 worldPosition = transform.TransformPoint(vertexPosition);
    Cubismの場合、CubismDrawableはツリーの子になるGameObjectにアタッチされるため、各親のTransformの結果も考慮する必要があります。


    それぞれのTransformを計算する方法も考えられますが、以下のように一度親子階層を解除してから上記の計算を行うとよろしいかと思われます。
        Vector3 vertexPosition = _cubismRenderer.Mesh.vertices[0];
        
        // 親子関係を解除
        Transform parent = transform.parent;
        transform.parent = null;
        
        // ワールド座標取得
        Vector3 worldPosition = transform.TransformPoint(vertexPosition);
        
        // 親を再設定
        transform.parent = parent;
コメントするにはサインインまたは登録して下さい。