This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

character / tests / cubism-probe / addons / gd_cubism / example / demo_effect_custom_01.gd
2.8 kB 90 lines
1# SPDX-License-Identifier: MIT 2# SPDX-FileCopyrightText: 2023 MizunagiKB <mizukb@live.jp> 3extends Node2D 4 5 6const DEFAULT_ASSET: String = "res://addons/gd_cubism/example/res/live2d/mao_pro_jp/runtime/mao_pro.model3.json" 7 8var cubism_model: GDCubismUserModel 9var cubism_efx: GDCubismEffectCustom 10 11enum E_PARAM_MODE { 12 PROCESS, 13 SIGNAL 14} 15 16var param_valid: bool = false 17var param_mode: E_PARAM_MODE = E_PARAM_MODE.PROCESS 18var l_eye: GDCubismParameter 19var r_eye: GDCubismParameter 20 21 22func recalc_model_position(model: GDCubismUserModel): 23 if model.assets == "": 24 return 25 26 var canvas_info: Dictionary = model.get_canvas_info() 27 28 if canvas_info.is_empty() != true: 29 var vct_viewport_size = Vector2(get_viewport_rect().size) 30 var scale: float = vct_viewport_size.y / max(canvas_info.size_in_pixels.x, canvas_info.size_in_pixels.y) 31 model.position = vct_viewport_size / 2.0 32 model.scale = Vector2(scale, scale) 33 34 35func _ready(): 36 self.cubism_efx = $GDCubismUserModel/GDCubismEffectCustom 37 self.cubism_efx.connect("cubism_prologue", self._on_cubism_prologue) 38 self.cubism_efx.connect("cubism_epilogue", self._on_cubism_epilogue) 39 self.cubism_efx.connect("cubism_init", self._on_cubism_init) 40 self.cubism_efx.connect("cubism_term", self._on_cubism_term) 41 self.cubism_efx.connect("cubism_process", self._on_cubism_process) 42 43 self.cubism_model = $GDCubismUserModel 44 if self.cubism_model.assets == "": 45 self.cubism_model.assets = DEFAULT_ASSET; 46 47 48func _process(delta): 49 recalc_model_position($GDCubismUserModel) 50 51 if param_mode == E_PARAM_MODE.PROCESS: 52 var model: GDCubismUserModel = $GDCubismUserModel 53 54 for _o in self.cubism_model.get_parameters(): 55 var o: GDCubismParameter = _o 56 if o.id == "ParamEyeLOpen": 57 o.value = 0.0 58 if o.id == "ParamEyeROpen": 59 o.value = 0.0 60 61 62func _on_cubism_init(model: GDCubismUserModel): 63 if param_mode == E_PARAM_MODE.SIGNAL: 64 for _o in model.get_parameters(): 65 var o: GDCubismParameter = _o 66 if o.id == "ParamEyeLOpen": 67 l_eye = o 68 if o.id == "ParamEyeROpen": 69 r_eye = o 70 param_valid = true 71 72 73func _on_cubism_term(model: GDCubismUserModel): 74 if param_mode == E_PARAM_MODE.SIGNAL: 75 param_valid = false 76 77 78func _on_cubism_prologue(model: GDCubismUserModel, delta: float): 79 pass # Replace with function body. 80 81 82func _on_cubism_process(model: GDCubismUserModel, delta: float): 83 if param_mode == E_PARAM_MODE.SIGNAL: 84 if param_valid == true: 85 l_eye.value = 0.0 86 r_eye.value = 0.0 87 88 89func _on_cubism_epilogue(model: GDCubismUserModel, delta: float): 90 pass # Replace with function body.