■Unity開発メモ用のWiki◎現在扱っていること・Unity全般・MMDからUnityへの変換してインポート・MMDの仕様把握・BlenderでMMDモデルのカスタム

目次


親子付けMODメモ

機能を分解して考える

1.プラグインの読み込み(KKS_SetParentVR.cs)
確認:「Configuration Manager(構成マネージャー)」でオプション項目が表示されているか?
→完了

2.ハーモニーを使い狙いのメソッドにフックする(Hook.cs)
  • 機能:大元・初期設定
フックするクラス(コンポーネント):HSceneProc?VRHScene?
フックするメソッド:MapChangeObject
確認:ゲームオブジェクト「HSceneProc」に「SetParent」コンポーネントがアタッチしているか確認する
 
  • 機能:
フックするクラス(コンポーネント):
フックするメソッド:
 
  • 機能:
フックするクラス(コンポーネント):
フックするメソッド:
 
  • 機能:
フックするクラス(コンポーネント):
フックするメソッド:
 

コンフィグ画面の設定関連「BepInEx.Configuration」

設定ファイル(ConfigFil)へのアクセスに関する処理?
名前空間が「BepInEx.Configuration」に分かれた?
ConfigWrapperは書式が変わっている?
  • ConfigEntryを使う?
  • ConfigDescriptionを使う?
AcceptableValueRangeも同様?
SavedKeyboardShortcut→ConfigEntry<KeyboardShortcut>に変更する

           //HarmonyInstance harmony = HarmonyInstance.Create(GUID);
            var harmony = new Harmony("com.company.project.product");
 
参考:KKS_IntroBegone.dll:イントロスキップ
ConfigEntry<bool> skip = base.Config.Bind<bool>("Game startup", "Skip showing intro screen", true, "Speed up game startup by skippping the logo shown at the start, before title screen.");
 
public static ConfigEntry<型> AutoSubAccessories { get; private set; }
 
base.Config.Bind<型> ?
第1引数:カテゴリー?
第2引数:項目?
第3引数:チェック項目の初期状態?
第4引数:マウスオーバー時の詳細説明

実装したい機能

女の子手足を掴む
 

KK_SetParentVRの場合

  • VRのSDK:VRTK
  • FinalIKの種類:FBBIK

・AnimSpeedController.cs(アニメーション関連?)

FixBodyParts.cs

イベントトリガー?
SetParent.cs→SetLimbColliders→から呼ばれている

・Hooks.cs(ハーモニーとのフック)
・KK_SetParentVR.cs(プラグインの初期処理や設定?)
・SetParent.cs(メインの設定や処理?)
・SetParentBodyParts.cs(ボディとFinakIKとの接続?)
・SetParentControllerInput.cs(VR用コントローラーの入力関連?)
・SetParentUI.cs(UI関連?)
 

KKS_VRの場合

  • VRのSDK:OpenVRとVRGIN?
  • FinalIKの種類:

親子付けMOD(2022/12現在サンシャインのMODは無い

GitHub:https://github.com/MayouKurayami/KK_SetParentVR
内容:コイカツ公式 VR のコントローラーでキャラクターの位置、姿勢、アニメーション速度を制御
前提:変換プラグイン「BepIn4Patcher」が必須
操作デモ動画:https://mega.nz/file/RPpCDKIa#RRb_kYaRrrIqtDyojm3U...
導入:「KK_SetParentVR.dll」を「BepInEx」フォルダ直下へ配置する
 
  • トラッカーを増やせば対応するのか?
  • 操作にはそれなりの慣れが必要。まず、自身・相手・カメラの位置調整が出来るように練習する
 

一時メモ

  • 男の頭とヘッドセットの同期がされていない?
  • 男と腰の同期がされていない?

「maleHeadPos」と「maleCrotchPos」がヌル
→「setFlag」がTrueのところがFlaseのまま?
→仕様:頭と腰の同期は片方のコントローラを女の子に親子付けした時にのみ機能する?

親子付け関連のメニューを表示する

  • VIVEコントローラーの「システムボタン」を長押し
    • 又はコントローラーを自分の頭に近づける

 

親子付け(同期)を開始する

  • 「メニューボタン」と「トリガーボタン」を同時に押す
    • ボタンを押したコントローラーと逆側のコントローラーが女キャラと親子付けされる

 

位置のリセット(ない?)

位置調整の基本操作

  • コントローラーの片方を親子付けしていないとキャラの位置調整が出来ない?
女キャラの位置調整

 
男キャラの位置調整


男女一緒に位置調整する場合

 
カメラの調整

 

IK調整の基本操作

  • 男女共に床や壁に手足が近づくと、オブジェクトにIK先が固定される
  • 強弱モーションの差が大きいとIKがおかしくなる確率が大きくなるので、適宜IKをリセットしたり、切ったりする
  • デフォルトの位置から大きく外れるとIKは解除される
  • 体位を変更時にIKが全てリセットされる

女キャラの手足IKの操作
  • 女キャラの手先や足先に触れることで、IKを操作する事が出来る
    • 操作中のIKをを固定する場合、トリガーを引く
    • プレイヤーの手や肩と繋げることが出来る

 
手つなぎ
 
抱きつき
 
女キャラのIKの一部デフォルトへリセットする

 
女キャラのIKを全部デフォルトへリセットする

 
男キャラの足IKを無効化

コイカツ親子付けメモ

参考:HS2のスタジオで親子付 活用方:https://illusionlove.blog.jp/archives/11177453.htm...
参考:HS2で親子付けのやり方 :https://illusionlove.blog.jp/archives/11166051.htm...
参考:ScriptedDickにコライダーを付けてProfunds Vagina BPに挿入するとしゅごい (シーン修正) :https://illusionlove.blog.jp/archives/11174854.htm...


↓コントローラーには「VRViveController」コンポーネントが使われている
viveControllers[side] = controllers[side].GetComponent<VRViveController>();
↓デバイス?トラッカー?
steamVRDevices[side] = f_device.GetValue(viveControllers[side]) as SteamVR_Controller.Device;
↓デバイス関連の取得? フィールドとは、クラスまたは構造体で直接宣言される任意の型の変数?
f_device = typeof(VRViveController).GetField("device", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
GameObject.Find("VRTK/[VRTK_SDKManager]/SDKSetups/SteamVR/VRCameraBase/[CameraRig]/Controller (left)/Model/p_handL/HSceneMainCanvas/MainCanvas").GetComponent<HSprite>()))

 
  • 「UnityEngine.UI.dll」を追加参照する必要がある
  • 「VRTK」は「Assembly-CSharp.dll」に含まれている?
 
            //
            //インスタンスの作成方法をハーモニー2用に修正?
            //
            //ハーモニーのパッチをフック関数に当てている?
            new Harmony(GUID).PatchAll(typeof(Hooks));

Harmonyの参照
using Harmony;
  ↓Harmonyのバージョンが変わっているから?
using HarmonyLib;

ゲーム本体DLLの参照
「KoikatsuSunshine_VR_Data」の方の「Assembly-CSharp.dll」を参照する?
 
Bepinexの参照

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

【メニュー編集】

スカイリム関連

スカイリム関連


Menu

【メニュー編集】

スクリプト関連

フリーエリア

管理人/副管理人のみ編集できます