最終更新: kenken2020 2023年12月07日(木) 15:41:22履歴
目次
以下のコードを次のように修正する
↓
フリーH準備場面からフリーHシーンに遷移
//----------- //デバッグ用キー if (Input.GetKeyDown(KeyCode.J)) { var go = GameObject.Find("FreeHScene"); if (go) { freeHScene = go.GetComponent("FreeHScene") as FreeHScene; UnityEngine.Debug.Log("FreeHScene::" + go); } //リフレクションを通じてフィールドの値を取得する KKAPI.Utilities.Extensions.GetFieldValue(this, "freeHScene", out object freeHScene_value); KKAPI.Utilities.Extensions.GetFieldValue(freeHScene_value, "enterButton", out object enterButton_value); //リフレクションで取得したフィールドの値をボタン型の「push_button」に型変換して入れる //「onClick.Invoke()」でボタンが押された処理がされる? Button push_button; push_button = (Button)enterButton_value; push_button.onClick.Invoke(); //freeHScene = null; UnityEngine.Debug.Log("***Button Insert is pressed.***"); }
KKS_VRでも確認済み
標準インストール時「C:\illusion\KoikatsuSunshine\abdata\h\list」にある「30.unity3d〜91.unity」までがセリフに関するデータ?
「personality_voice_c**」みたいなのが該当?
性格とシチュエーションで分かれている?
標準インストール時「C:\illusion\KoikatsuSunshine\abdata\h\list」にある「30.unity3d〜91.unity」までがセリフに関するデータ?
「personality_voice_c**」みたいなのが該当?
性格とシチュエーションで分かれている?
var flags = GameObject.FindObjectOfType<HFlag>(); if(flags.gaugeFemale < 70f) { flags.voice.playVoices[0] = UnityEngine.Random.Range(310, 315); } else{ flags.voice.playVoices[0] = UnityEngine.Random.Range(316, 323); }
- 処女時?
- 愛撫時?
- 挿入中(快感ゲージが70未満の場合)
- 挿入中(快感ゲージが70以上の場合)
- 絶頂中?
- 事後
KKS_VRでは確認できず
//挿入中でもコンドーム着脱できます・・・つまり・・・分かるな? var hChara = GameObject.FindObjectOfType<HSprite>(); hChara.OnCondomClick();
- KKSではアイテムの召喚までは出来ても床に散らばらず
- 「Rigidbody」とコライダーのコンポーネントを追加する?
- アンセットバンドル?リソースからアイテムをゲーム内に登場させる参考になる
var condom = Resources.FindObjectsOfTypeAll<GameObject>().First(g => g.name == "p_gomu_tobi"); GameObject.Instantiate (condom, position, Quaternion.identity);
KKS_VRでも確認済み
- 表情は解除しないとそのまま!
- 以下のGOLマクロはオブジェクト「FaceChangeObject」を作り、そこで「眉・目・口」を操作している
- 複雑な操作はプラグイン「ExpressionControl」又は「FacePtnReplacer」で表情操作を行う
- GOLマクロ例
public class FaceChange : MonoBehaviour { private GameObject go; private ChaControl comp; void Start() { go=GameObject.Find("chaF_001"); comp=go.GetComponent<ChaControl>(); } void Update() { //メス顔 comp.fbsCtrl.EyebrowCtrl.ChangePtn(13, true);//落胆 comp.fbsCtrl.EyesCtrl.ChangePtn(4, true);//微小 comp.fbsCtrl.MouthCtrl.ChangePtn(10, true);//真剣 comp.ChangeHohoAkaRate(1.0f);//赤らめ } }
//メス顔 comp.fbsCtrl.EyebrowCtrl.ChangePtn(13, true);//落胆 comp.fbsCtrl.EyesCtrl.ChangePtn(4, true);//微小 comp.fbsCtrl.MouthCtrl.ChangePtn(10, true);//真剣 comp.ChangeHohoAkaRate(1.0f);//赤らめ //機嫌悪い顔 comp.fbsCtrl.EyebrowCtrl.ChangePtn(14, true);//ドヤ comp.fbsCtrl.EyesCtrl.ChangePtn(10, true);//真剣 comp.ChangeHohoAkaRate(0.5f);//赤らめ comp.fbsCtrl.MouthCtrl.ChangePtn(16, true);//呆れ //不満顔 comp.fbsCtrl.EyebrowCtrl.ChangePtn(3, true);//つまらない comp.fbsCtrl.EyesCtrl.ChangePtn(0, true);//でふぉ comp.fbsCtrl.EyesCtrl.OpenMax = 1.0f; comp.fbsCtrl.MouthCtrl.ChangePtn(15, true);//不満 comp.fbsCtrl.MouthCtrl.FixedRate = 0.0f; //デフォ顔 comp.fbsCtrl.EyebrowCtrl.ChangePtn(0, true); comp.fbsCtrl.EyesCtrl.ChangePtn(0, true); comp.fbsCtrl.EyesCtrl.OpenMax = 1f; comp.fbsCtrl.MouthCtrl.ChangePtn(5, true);//ドキドキ comp.fbsCtrl.MouthCtrl.FixedRate = 0f; //表情切替 固定した表情を解除 var go=GameObject.Find("FaceChangeObject"); if (go) { var go1=GameObject.Find("chaF_001"); var comp=go1.GetComponent<ChaControl>(); comp.fbsCtrl.EyebrowCtrl.ChangePtn(0, true); comp.fbsCtrl.EyesCtrl.ChangePtn(0, true); comp.fbsCtrl.MouthCtrl.ChangePtn(0, true); comp.ChangeHohoAkaRate(0.0f); GameObject.DestroyImmediate(go); }
KKS_VRでも確認済み
マクロを実行する度に涙レベルを「0→1→2→3→0」と変更する
マクロを実行する度に涙レベルを「0→1→2→3→0」と変更する
public class TearsLevel : MonoBehaviour { private GameObject go; private ChaControl comp; private Byte tears_level; void Start() { go=GameObject.Find("chaF_001"); comp=go.GetComponent<ChaControl>(); tears_level=comp.tearsLv; if (tears_level != 3) //涙レベルは0が無し、1〜3まで変化 { tears_level++; } else { tears_level=0; } } void Update() { comp.tearsLv=tears_level; //涙レベルはたえず更新する必要がある。 } }
//レイキャストしたオブジェクトを出力 RaycastHit hit; if (Physics.Raycast(ray, out hit, 10.0f)) { UnityEngine.Debug.Log(hit.collider.gameObject.name); }
マクロ毎にオブジェクトが乱立するのを防ぎ、サンプルの場合「GOL_Macro_Test」に
マクロのコンポーネントをアタッチしていく
マクロのコンポーネントをアタッチしていく
//マクロをリロードした時にGameObjectを複数作らない様にする処理 var go1 = GameObject.Find("GOL_Macro_Test");//マクロで作成したGameObjectを探している if (!go1) { //新しくゲームオブジェクトを作成する var go = new GameObject("GOL_Macro_Test").AddComponent<マクロに追加するコンポーネントの名前>(); //シーンをまたいでも破壊されない GameObject.DontDestroyOnLoad(go.gameObject); } else if (go1.GetComponent<マクロに追加するコンポーネントの名前>() == null) { GameObject.Destroy(go1.GetComponent<マクロに追加するコンポーネントの名前>()); go1.AddComponent<マクロに追加するコンポーネントの名前>(); GameObject.DontDestroyOnLoad(go1.gameObject); }
リロードする度にマクロのオブジェクトを破壊し作り直す
public class GameObjectListMacro { public static void MacroMain() { //マクロをリロードした時にGameObjectを複数作らない様にする処理 var go = GameObject.Find("GOL_Macro_Test");//マクロで作成したGameObjectを探している if (go) { //もしすでにゲームオブジェクトがあった場合、一度壊し(DestroyImmediate)新しく作り直す GameObject.DestroyImmediate(go); } //新しくゲームオブジェクトを作成する new GameObject("GOL_Macro_Test").AddComponent<Translate_SEX>(); //シーンをまたいでも破壊されない GameObject.DontDestroyOnLoad(go.gameObject); } }
public static void MacroMain() { //マクロをリロードした時にGameObjectを複数作らない様にする処理 var go2 = GameObject.Find("GOL_Macro_Test");//マクロで作成したGameObjectを探している if (!go2) { //新しくゲームオブジェクトを作成する var go = new GameObject("GOL_Macro_Test").AddComponent<Translate_SEX>(); //シーンをまたいでも破壊されない GameObject.DontDestroyOnLoad(go.gameObject); } }
- すでにMODがあるのでそちらを使う?
- 「KKS_FixationalEyeMovement」ではもう少し条件で複雑にしているっぽい?
以下のコードを次のように修正する
leftEye = GameObject.Find("chaF_001/BodyTop/p_cf_body_bone/cf_j_root/cf_n_height/cf_j_hips/cf_j_spine01/cf_j_Spine02/cf_j_Spine03/cf_j_neck/cf_j_head/cf_s_head/p_cf_head_bone/cf_J_N_FaceRoot/cf_J_FaceBase/cf_J_FaceUp_ty/cf_J_FaceUp_tz/cf_J_Eye_tz/cf_J_Eye_txdam_L/cf_J_Eye_tx_L/EyeTargetL"); rightEye = GameObject.Find("chaF_001/BodyTop/p_cf_anim/cf_J_Root/cf_N_height/cf_J_Hips/cf_J_Spine01/cf_J_Spine02/cf_J_Spine03/cf_J_Neck/cf_J_Head/cf_J_Head_s/p_cf_head_bone/cf_J_FaceRoot/cf_J_FaceBase/cf_J_FaceUp_ty/cf_J_FaceUp_tz/cf_J_Eye_t_R/cf_J_Eye_s_R/cf_J_EyePos_rz_R");
↓
leftEye = GameObject.Find("chaF_001/BodyTop/p_cf_body_bone/cf_j_root/cf_n_height/cf_j_hips/cf_j_spine01/cf_j_spine02/cf_j_spine03/cf_j_neck/cf_j_head/cf_s_head/p_cf_head_bone/cf_J_N_FaceRoot/cf_J_FaceRoot/cf_J_FaceBase/cf_J_FaceUp_ty/cf_J_FaceUp_tz/cf_J_Eye_tz/cf_J_Eye_txdam_L/cf_J_Eye_tx_L/cf_J_Eye_rz_L/cf_J_hitomi_tx_L"); rightEye = GameObject.Find("chaF_001/BodyTop/p_cf_body_bone/cf_j_root/cf_n_height/cf_j_hips/cf_j_spine01/cf_j_spine02/cf_j_spine03/cf_j_neck/cf_j_head/cf_s_head/p_cf_head_bone/cf_J_N_FaceRoot/cf_J_FaceRoot/cf_J_FaceBase/cf_J_FaceUp_ty/cf_J_FaceUp_tz/cf_J_Eye_tz/cf_J_Eye_txdam_R/cf_J_Eye_tx_R/cf_J_Eye_rz_R/cf_J_hitomi_tx_R");
- 「cf_J_hitomi_tx_R」「cf_J_hitomi_tx_L」が瞳全体を制御している?
コメントをかく