«

»

1月 26

unityからspritestudioアニメーションの参照セルマップを変更

デモページ

■目的

この機能を使えば一つのアニメーションを複数のキャラクターで使いまわす事ができ大分作業量を減らせられますね。

個人的にはこういうところがSSの真骨頂だと思ってます。

 

SSのプロジェクトはアニメーションファイルが1つ

 

unity のhierarchyはこんな感じ

 

Viewにスクリプトを追加、内容は下記

using UnityEngine;
using System.Collections;
 
public class view : MonoBehaviour
{
    Script_SpriteStudio_Root unichan;
    int currentCellMapNo = 0;
 
    void Start ()
    {
        unichan = GameObject.Find("unitychan_3head").GetComponent();
        myCellMapChange(unichan, 1);
    }
 
    void myCellMapChange(Script_SpriteStudio_Root trgt, int cellNo)
    {
        Library_SpriteStudio.Control.CellChange[][] myCellMap;
        myCellMap = Library_SpriteStudio.Utility.TableCellChange.Create(trgt);
 
        Library_SpriteStudio.Control.CellChange[] before = myCellMap[0];
        Library_SpriteStudio.Control.CellChange[] affter = myCellMap[cellNo];
 
        for (int i = 0; i < before.Length; i++)
        {
            string partsName = before[i].DataCell.Name;
 
            for (int s = 0; s < affter.Length; s++)
            {
                if (partsName == affter[s].DataCell.Name)
                {
                    before[i] = affter[s];
                }
            }
        }
        trgt.CellMapChange(myCellMap);
    }
}

■問題

フレームの途中で参照セルを変更していたりすると対応できないので注意が必要です。

 

差し替え後のセルマップの状態を意識しながら行えば問題なくできます。

 

 

コメントを残す

メールアドレスが公開されることはありません。

次の HTMLタグおよび属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>