コイカツ! コライダー(当たり判定)を追加して髪が床を突き抜けないようにしてみたり腕とおっぱいを干渉させてみたり。

コライダー(当たり判定)を全部削除したら処理が軽くなって多人数表示できるんじゃないかと思い色々といじってみたところ、32人表示で6fpsだったのが体、髪、スカートのコライダー、ダイナミックボーンすべて削除して16fpsぐらいでした。
3倍ぐらいになってますが、多数のコライダーを削除しての結果なのでとても実用的とはいい難いです。

そんな中ふと思いついたのが、それほどパフォーマンス変わらないのなら逆に足元にコライダーを追加して擬似的に床の当たり判定を再現する事です。
本来なら処理が増える邪道な方法ですが、床に個別にコライダーを仕掛けなくていいのでMOD製作者としては楽ちんです。もちろん、床にコライダーを設置してそれを処理の対象とする方法がわからないのがおおきいんですけどね。
コライダー追加の方法は他でみたことがないんで書いておきます。
※例のごとく探り探りな状態です。より良い方法、間違いあるかもしれません。
ダウンロードだけしたい方は一番下へ。

■作り方概要
まずコライダーがどこにあるかというと本編用とスタジオ用の2つあって、本編用が
Koikatu\abdata\chara\oo_base.unity3d内のp_cf_body_bone
ここに入っています。そしてスタジオ用が
Koikatu\abdata\studio\base\00.unity3d内のp_cf_body_bone
に入っています。

赤で囲んだところがダイナミックボーンコライダー、つまり髪とスカート用の当たり判定です。
ここの他にもcf_hit~というのに全てコライダーがついています。

コライダーの設定値。Radiusが半径、大きさです。Heightが高さで通常球状の当たり判定になっています。
上はRadiusが0.1、ボーンの大きさz(cf_hit~の設定値)が2の時、つまり大きさ0.2の時のコライダーの大きさ目安です。スタジオのスフィアで再現してみました。

Heightをおおきくするとコライダーが2つに分裂します。0.5ぐらいで上のようになると思われます。値を大きくしすぎると完全に2つの球になります。Dynamic Bone Colliderの仕様です。

コライダーを新設してみましょう。

①workspaceを開いてworkspace上にcf_hit~を移動。②workspace上から追加したい場所に移動。ここではcf_j_root。③ ②で出来た場所にmonobehaviourを移動。
※これで出来たコライダーには保存後開き直すとIDが割り振られています。補足①へ
※髪のDynamic boneと新設したコライダーは本来、干渉する設定にしないといけないはずですが、機能しています。これがなぜかは分かりません。


名前を変更。適当でも可。画像は命名規則通りリネームしようとして失敗した図。でも問題なし。
位置回転拡縮をベーシックな値に変更。
保存後、スタジオでキャラを位置0,0,0で表示させShortcutsKoi等で該当オブジェクト(作ったcf_hit~)を表示して位置調整。そしてその値を位置回転拡縮に反映して再度保存。
※設置するコライダーは親ボーンの大きさで範囲が大小変化しますので、キャラメイクでの差異を考慮する必要はありません。ただ、後述するおっぱいのDynamic Boneはボーンの大きさで範囲が変化しない設定(位置は変化する)になっているようなのでキャラメイクでの差異を考慮する必要があります。

オブジェクトを探してz軸調整で大きさ調整。位置も調整可。この値目安にをSB3Uで反映します。


今回作った床当たり判定のイメージ。実際のコライダーは不可視です。

アニメで正常位などを表示させると髪、スカートがコライダーに接触。

立ったアニメで角度を変えると上のようになってコライダーに接触しません。その為、ポーズを自分で作る場合はベースになるアニメを選択してから作ると良いです。ただしFKを適用すると消えます。IKは大丈夫です。
パフォーマンスに対する影響はそれほど大きくなく、16体表示させて通常より5fpsぐらい低下していました。

補足①おっぱいとコライダー

コライダーには保存後開き直すとIDが割り振られています。これを利用しておっぱいのDynamic Boneとコライダーを干渉するようにします。

囲んだ2つがおっぱい用のDynamic Boneです。
揺らし用Dynamic Bone(受け)と、それと対応するDynamic Collider(攻め)という受け攻め構造です。
Dynamic Collider同士が反発することはないので沢山設置して隣接しても問題ありません。

Colliders vectorにコライダーIDを入れてやると干渉する設定になります。通常ここにはなにもありませんがInsert Belowで空の枠ができ、IDを追加できます。

Dynamic Boneにもコライダーの大きさ設定があるので設定しましょう。
コライダーの大きさは見えないのでトライアンドエラーの繰り返しです。
画像では2箇所ですが片側3パターン分、左右ありますので12箇所修正しています。
今回入れた数値は当てずっぽうで、何か根拠があるわけでもなく試行錯誤の結果ですより良い設定値があるかもしれません。

Dynamic Boneについて
Dynamic Boneは揺れるボーンの一般名詞ではなくてDynamic BoneというUnity用のスクリプトです。今回私が色々設定をいじくり回せたのはUnityでDynamic Boneを使いエロゲーを作ろうと思って勉強していたが故です。
設定をいじる場合はDynamic Boneの記事がネットに沢山あるのでそれらを参照するといいかと思います。
※おっぱいに使用されているDynamic Bone ver2の詳しい仕様は見つかりませんでした。カスタムスクリプトなのかな?でも機能全然使ってないけど……

ダウンロードはこちら
疑似床コライダーボディ
疑似床コライダーボディ自作すじMOD版
疑似床コライダー+おっぱいコライダーボディ標準版
疑似床コライダー+おっぱいコライダーボディ自作すじMOD版
疑似床コライダー+おっぱいコライダーボディ自作すじMODv1.3版for puffy nipples
疑似床コライダー+おっぱいコライダーボディ自作すじMODv1.3版normal
※v1.3 アナルの形状を修正、乳首が服を貫通しないように修正、腕がタイツを貫通しないように修正、乳首の盛り上がりを100以上にしても乳上部が変形しないように修正
すじMOD版は新バージョンあります。

ABMで38,cf_d_kokan,True,1,1.5,1.4,1等数値を変えるてもっこりさせてあげるとなお良し。個人的に強く推奨


パフィーニップルにする際、どうしてもこのウェイトのゴミが邪魔になります。そこを消したのがパフィーニップル版。ただし、この場所の下着などが貫通します。

※ファイルの置き換えです!上書きされるファイルのバックアップを忘れないように!以下2つ上書きされます!
本編       Koikatu\abdata\chara\oo_base.unity3d(すじ版はmm_base.unity3dも)
スタジオ Koikatu\abdata\studio\base\00.unity3d

自作、手持ちのボディMODへ適用したい方
手持ちのボディMODに適用したい場合、当MODの00.unity3dから手持ちのoo_base.unity3dへ5枚目の画像のように移植するとOKです。
cf_j_root_hit
cf_s_forearm02_R_hit
cf_s_forearm02_L_hit
cf_s_arm02_R_hit
cf_s_arm02_L_hit
cf_s_hand_R_hit
cf_s_hand_L_hit
これらを新設して(名前は任意)、補足①のようにおっぱいに関連付けし、おっぱい側のコライダーの大きさを調整が必要です。
チンMODとの合成はこちらの記事で。
それができない!めんどくさい!っていう場合は標準版の00.unity3dだけ上書きすると、現状のボディMODのままスタジオで当MODが遊べます。

使用上の注意、説明
パフォーマンスの影響は少ないと書きましたが、あくまで当方の環境での話です。
少なからず負荷は上がっています。

中途半端な胸の大きさで、胸の位置が下にあるキャラは胸の形が破綻しやすいです。変なラインが出ます。これはアウトラインとメッシュの変形の性質状どうしても出ます。つるぺたと巨乳は比較的破綻しづらかったです。また、極端に上腕と胸が近づいても破綻しやすいです。それが気になるようでしたら
cf_j_root_hit
cf_s_forearm02_R_hit
cf_s_forearm02_L_hit
cf_s_arm02_R_hit
cf_s_arm02_L_hit
cf_s_hand_R_hit
cf_s_hand_L_hit
これらをABMでz軸を拡縮することによってコライダーの大きさを変えることが出来ます。
胸の破綻はarm02(上腕)で出やすいので小さくすると影響を少なく出来ます。
■追記
中途半端な胸の大きさでアウトラインが気になる場合、胸の開き、左右位置、上下を調整するとましになります。左右の胸が近い場合、それが原因で胸中央部にアウトラインが発生します。

立ったアニメで角度を変えると疑似床コライダーに接触しません。寝転がってるアニメからポーズを変えましょう。

コライダーは他のコライダー同様FKを適用すると消えます。

公式アップデートで上書きされる場合があります。その場合、公式アップデートのデータより新しいMODデータを作成する必要があります。2018/06/16最新版対応しています

最後に
今回のやり方は同様の構造をもったソフトウェアに使用できます。逆に言うと同様の構造をもったソフトウェアでないと使用できません。