基本機能として汎用的にするには、既存のプロジェクトとの互換性を保つようにセーブデータを拡張しないといけなかったりするので、ちょっと難しいです。
プロジェクトごとにカスタムして、キャラクターシートにアルファ値を指定できるように拡張しましたので、添付のパッケージファイルを適用してください。
(拡張子が .unitypackage ではなく、 .gz となってDLされる場合がありますので、その場合は拡張子を.unitypackageに戻してから、Unityプロジェクトに適用してください)
パッケージを適用すると、 Assets/Utage/Sample/Scripts/SampleAdvGraphicObjectEvent.cs というサンプルコードが追加されます。
using UnityEngine;
using Utage;
//特定のオブジェクトの色をカスタムする
public class SampleAdvGraphicObjectEvent : MonoBehaviour
{
public AdvEngine engine = null;
public string customObjectName = "hoge";
public Color customColor = Color.white;
void Awake()
{
engine.GraphicManager.OnInitGraphicObject.AddListener(OnInit);
engine.GraphicManager.OnDrawGraphicObject.AddListener(OnDraw);
}
void OnInit(AdvGraphicObject graphicObject )
{
// Debug.Log($"OnInit {graphicObject.name}");
if (graphicObject.name == customObjectName)
{
graphicObject.EffectColor.ScriptColor = customColor;
}
}
void OnDraw(AdvGraphicObject graphicObject, AdvGraphicInfo graphicInfo )
{
// Debug.Log($"OnDraw {graphicInfo.Key}");
if (graphicInfo.RowData.TryParseCell("Alpha", out float a))
{
// Debug.Log($"OnDraw Alpha = {a}");
graphicObject.EffectColor.ScriptColor = new Color(1.0f,1.0f,1.0f,a);
}
}
}
OnInitGraphicObject は、グラフィックオブジェクトが新しく作成されて初期化されたとき呼ばれるイベントです。
指定名のキャラクターは統一のα値にしたいときなどは、キャラクターシートを使わずにプログラムだけで対応可能なものですが、逆に表示パターンごとにアルファ値を変えることはできません。
OnDrawGraphicObject は、描画時によばれるイベントです。AdvGraphicInfoは、キャラクターシートのパターンごとの情報が入っています。
graphicInfo.RowDataが、エクセル一行のデータになっています。
TryParseCell("Alpha", out float a) とすると、「"Alpha"行にデータがある場合は、float型として取得」という意味になります。
これを使うことで「α値が設定してある場合は、アルファ値をカスタムする」ということができるようになります。
色の制御は、 graphicObject.EffectColor.ScriptColorを使って下さい。
宴の表示オブジェクトの色の制御は、AdvEffectColorで制御しています。
上記のものはサンプルコードになりますので、要不要に合わせてコードを書き換えてください。