/// <summary> /// 設定ファイル読み込み /// </summary> /// <param name="targetSettingFileName"></param> private void LoadModelSetting(string ModelPath) { try { //モデルパス取得 this.ModelPath = ModelPath; string targetSettingFilePath = this.ModelPath + ModelPathDefine.LIPLIS_MODEL_JSON; string settingPath = ModelPath + ModelPathDefine.SETTINGS; string chatSettingPath = settingPath + ModelPathDefine.LIPLIS_CHAT_SETTING; string toneSettingPath = settingPath + ModelPathDefine.LIPLIS_TONE_SETTING; // LiplisModel.jsonファイルを読み込む // 原則としてApplication.dataPath配下。 // プリセットモデルの場合はリソース配下となる。 modelSetting = JsonLoader <LiplisMoonlightModel> .Load(targetSettingFilePath); //口調設定 toneSetting = JsonLoader <LiplisToneSetting> .Load(chatSettingPath); //固定セリフ設定 chatSetting = JsonLoader <LiplisChatSetting> .Load(chatSettingPath); } catch (Exception ex) { //ファイル読み込みに失敗したらエクセプション発生 throw new ApplicationException("LiplisModelLive2d:LoadModelSetting:モデルの読み込みに失敗しました!", ex); } }
/// <summary> /// ラビッツモデルを生成する /// </summary> /// <param name="modelPathAnderResource"></param> /// <returns></returns> private LiplisModel LoadModel(string modelPath, int AllocationId, int modelNum) { //モデル設定を取得する LiplisMoonlightModel lmm = PrisetModelSettingLoader.LoadClassFromJson <LiplisMoonlightModel>(modelPath + ModelPathDefine.LIPLIS_MODEL_JSON); LiplisToneSetting ltn = PrisetModelSettingLoader.LoadClassFromJson <LiplisToneSetting>(modelPath + ModelPathDefine.SETTINGS + ModelPathDefine.LIPLIS_TONE_SETTING); LiplisChatSetting lch = PrisetModelSettingLoader.LoadClassFromJson <LiplisChatSetting>(modelPath + ModelPathDefine.SETTINGS + ModelPathDefine.LIPLIS_CHAT_SETTING); //ウインドウイメージの読み込み Texture2D TextureWindow = PrisetModelSettingLoader.LoadTexture(modelPath + ModelPathDefine.IMAGES + ModelPathDefine.IMG_WINDOW) as Texture2D; Texture2D TextureLogWindow = PrisetModelSettingLoader.LoadTexture(modelPath + ModelPathDefine.IMAGES + ModelPathDefine.IMG_WINDOW_LOG) as Texture2D; Texture2D TextureCharIcon = PrisetModelSettingLoader.LoadTexture(modelPath + ModelPathDefine.IMAGES + ModelPathDefine.IMG_ICON_CHAR) as Texture2D; //モデルを追加する return(new LiplisModel(AllocationId, modelPath, lmm, ltn, lch, TextureWindow, TextureLogWindow, TextureCharIcon, modelNum)); }
/// <summary> /// プリセットモデルロード コンストラクター /// </summary> /// <param name="AllocationId"></param> /// <param name="CanvasRendering"></param> /// <param name="ModelPath"></param> /// <param name="CallbackOnNextTalkOrSkip"></param> /// <param name="modelSetting"></param> /// <param name="toneSetting"></param> /// <param name="chatSetting"></param> /// <param name="TextureWindow"></param> public LiplisModel(int AllocationId, GameObject CanvasRendering, string ModelPath, ModelEvents.OnNextTalkOrSkip CallbackOnNextTalkOrSkip, LiplisMoonlightModel modelSetting, LiplisToneSetting toneSetting, LiplisChatSetting chatSetting, Texture2D TextureWindow, Texture2D TextureLogWindow, Texture2D TextureCharIcon) { //アロケーションID設定 this.AllocationId = AllocationId; //ソートオーダーの設定 this.SortOrder = AllocationId * 10; //レンダリング階層取得 this.CanvasRendering = CanvasRendering; //モデル設定を読み込み this.ModelPath = ModelPath; //コールバックメソッドの設定 this.CallbackOnNextTalkOrSkip = CallbackOnNextTalkOrSkip; //モデル設定 this.modelSetting = modelSetting; this.toneSetting = toneSetting; this.chatSetting = chatSetting; //イメージの読み込み this.SpriteWindow = CreateTalkWindowSprite(TextureWindow); this.SpriteLogWindow = CreateTalkWindowSprite(TextureLogWindow); this.SpriteCharIcon = CreateTalkWindowSprite(TextureCharIcon); //モデルの初期化 InitModel(true); //プレファブの初期化 InitPrefab(); //トークウインドウの初期化 InitTalkWindow(); }
/// <summary> /// ラビッツモデルを生成する /// </summary> /// <param name="modelPathAnderResource"></param> /// <returns></returns> private LiplisModel CreateModelRabbits(string modelPathAnderResource, int AllocationId) { //モデルパス生成 string modelPath = UtilUnityPath.GetStreamingAssetsPath() + "/" + modelPathAnderResource; //モデル設定を取得する LiplisMoonlightModel lmm = PrisetModelSettingLoader.LoadClassFromJson <LiplisMoonlightModel>(modelPath + ModelPathDefine.LIPLIS_MODEL_JSON); LiplisToneSetting ltn = PrisetModelSettingLoader.LoadClassFromJson <LiplisToneSetting>(modelPath + ModelPathDefine.SETTINGS + ModelPathDefine.LIPLIS_TONE_SETTING); LiplisChatSetting lch = PrisetModelSettingLoader.LoadClassFromJson <LiplisChatSetting>(modelPath + ModelPathDefine.SETTINGS + ModelPathDefine.LIPLIS_CHAT_SETTING); //ウインドウイメージの読み込み Texture2D TextureWindow = PrisetModelSettingLoader.LoadTexture(modelPath + ModelPathDefine.IMAGES + ModelPathDefine.IMG_WINDOW) as Texture2D; Texture2D TextureLogWindow = PrisetModelSettingLoader.LoadTexture(modelPath + ModelPathDefine.IMAGES + ModelPathDefine.IMG_WINDOW_LOG) as Texture2D; Texture2D TextureCharIcon = PrisetModelSettingLoader.LoadTexture(modelPath + ModelPathDefine.IMAGES + ModelPathDefine.IMG_ICON_CHAR) as Texture2D; //モデルを追加する return(new LiplisModel(AllocationId, CanvasRendering, modelPath, ctrlTalk.NextTalkOrSkip, lmm, ltn, lch, TextureWindow, TextureLogWindow, TextureCharIcon)); }
/// <summary> /// プリセットモデルロード コンストラクター /// </summary> /// <param name="AllocationId"></param> /// <param name="CanvasRendering"></param> /// <param name="ModelPath"></param> /// <param name="CallbackOnNextTalkOrSkip"></param> /// <param name="modelSetting"></param> /// <param name="toneSetting"></param> /// <param name="chatSetting"></param> /// <param name="TextureWindow"></param> public LiplisModel(int AllocationId, string ModelPath, LiplisMoonlightModel modelSetting, LiplisToneSetting toneSetting, LiplisChatSetting chatSetting, Texture2D TextureWindow, Texture2D TextureLogWindow, Texture2D TextureCharIcon, int ModelNum) { //アロケーションID設定 this.AllocationId = AllocationId; //ソートオーダーの設定 this.SortOrder = AllocationId * 10 + 100; //モデル設定を読み込み this.ModelPath = ModelPath; //モデル数セット this.ModelNum = ModelNum; //モデル設定 this.modelSetting = modelSetting; this.toneSetting = toneSetting; this.chatSetting = chatSetting; //イメージの読み込み this.SpriteLogWindow = CreateTalkWindowSprite(TextureLogWindow); this.SpriteCharIcon = CreateTalkWindowSprite(TextureCharIcon); ////モデルの初期化 InitModel(); ////プレファブの初期化 InitPrefab(); ////トークウインドウの初期化 InitTalkWindow(); }