はじめに
この前、紹介した「Customizable Anime Girl (Beta)」ですがデモシーンで作成した女の子を自分の好きなシーンで使うための方法がわかったので紹介します。
アセット紹介
準備
Customizable Anime Girl (Beta)のコードを変更
製作者様作成のスクリプトのため、ここには直接書きませんが以下の対応をしてください。
- ContentManager.csのsaveAnimeGirl()で保存する際の拡張子を「.dat」から「.bytes」へ変更
- ContentManager.csのloadAnimeGirl()で読み込む際の拡張子を「.dat」から「.bytes」へ変更
- CustomizeManager.csのStart()の処理をAwake()へ移動する。
デモシーンにて好みの女の子にカスタマイズ
CustomizeDemoシーンを開き好みの設定をしてください。
するとOnApplicationQuit()のタイミングあるいは右下の番号を切り替えたタイミングでSaveフォルダにバイナリファイルが作成されます。
これで準備は完了です。
実装方法
サンプルコード
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using UnityEngine;
using CustomizableAnimeGirl;
public class SampleController : MonoBehaviour
{
[SerializeField] private CustomizeManager customizeManager;
[SerializeField] private FaceEditManager faceEditManager;
[SerializeField] private TextAsset saveData;
// Start is called before the first frame update
void Start()
{
BinaryFormatter bf = new BinaryFormatter();
try
{
using (MemoryStream ms = new MemoryStream(saveData.bytes))
{
CustomizeManager.AnimeGirlData animeGirlData = bf.Deserialize(ms) as CustomizeManager.AnimeGirlData;
FaceEditManager.FaceEditData faceEditData = bf.Deserialize(ms) as FaceEditManager.FaceEditData;
customizeManager.setCurrentAnimeGirlData(animeGirlData);
faceEditManager.setCurrentFaceEditData(faceEditData);
}
}
catch (IOException e)
{
Debug.LogError(e);
}
}
}
要約するとバイナリデータからクラスを生成しているだけです。TextAssetを使うにあたり、.datファイルだと読み込めないので.bytesが必要でした。
シーンの準備
CustomizableAnimeGirl.prefabを画面に配置します。
その後、上記コードをアタッチし、Inspectorを以下のようにしてください。
- Customize Manager : シーンに配置したCustomizableAnimeGirl.prefab
- Face Edit Manager : シーンに配置したCustomizableAnimeGirl.prefab
- Save Data : デモシーンで作成したSaveフォルダのバイナリデータ
結果
早速、実行すると。。。
無事デモシーンで設定した女の子になってくれます!
学校の教室のアセットと組み合わせるとこんな感じ
雰囲気がとても良いですね!
まぁ、ローファーのままですが。。。そこはアセットになかったので今後に期待しましょう!
さいごに
これさえできれば、あとは色々なゲームに使えそうですね。
あとは製作者様が髪型や服のバリエーションを増やしてくれれば自分は嬉しいです!
みなさんも購入してみてください。
コメント