円盤・SurfacePicking (Fantia)
Published:
2021-09-26 15:17:02
Imported:
2023-02
Downloads
Content
さて、体に設置するマシンというコンセプトから舐めまわすマシンを作成しました。前回の記事と重なる内容もあって、実装について話が長いので注意()です。 〇変更履歴 追加 ・舐めまわし円盤2種(SurfacePicking) ・会話シーンのメッセージ送りにマウスホイールを追加 内部変更 ・ファリタルテのボーンを一部削減・追加 〇舐めまわしマシン 要望から舐める感じのマシンです。もうちょっと動きに舐めてる感が必要かなと思いますけども・・・。 で、舐めるとしたら、体のうち膣クリ肛門さらには乳首、というのが基本であるかと思います。しかし、しかしです。舐めるという動作の性質上、自由度が欲しいと思いませんかみなさん。 〇TL;DR 始めはファリタルテのボーンに膣クリ肛門ヒップ左右乳首左右脇の下左右お腹背中ちんちん金玉左右足裏左右へ配置するための各ボーンを追加し、その位置へ移動させるという方法を取りました。 参考画像のダメUI参照。 これだけ選択可能だとこのように並べたときにもう選択なんかしたくならないわけです。 ダメだコレ!と思って別な方法を考えました。操作としては単純にマシンをクリックしたところへ配置するというところ。 体をクリックしたときにその位置を取得するにはどうしたらいいか。 ここでシェーダーの専門的なお勉強です。 DirectXでもOpenGLでもシェーダーを利用してスキニング・描画します。 CPU側、GPU側と表現しますが、CPU側では3Dモデルの基本姿勢時の状態の形状とその変形のための行列しか持っていません。その情報をGPU側へ送り、シェーダーで変形しポーズをつけ、描画を行います。 そしてその流れの中では、レンダリングされた結果の画像以外に取得できるものはありません。そのレンダリングされた画像にCPUからアクセスして色を取得するのはある程度のコストや制限がかかりますが可能です。 一応コンピュートシェーダやジオメトリシェーダのStreamOut(詳細は略)を利用するとCPU側で自由に使えるデータを取得することができますが、今回新たにそれを実装するのはキツいし、対応していないグラボもあります。 んでどうするか…と考えると、DeferredRenderingで描画しているG-Bufferのうち、Positionがあります。これはそのピクセルの3D空間上の位置を色として書いたものです。 つまりそれが丸々つかえるというわけです。マウスでクリックした位置からテクスチャ画像の色を取得し、3D座標に戻せばあら不思議、というわけです。 今まで画像からCPUへ情報を書き戻す処理はやったことがなかったのでアレでしたがどうにか実装。 シーン全体を描画すると余計な位置を取得してしまうのでキャラクターの体のみを対象にした処理をゴリゴリ作成。 つまるところ、これはスクリーンスペースの当たり判定処理というものに分類されると思います。なのでSurfacePickingと勝手に呼びます。 マウスで選択する以上、見えない領域は選択できませんし、レンダーターゲットにも表面の情報しかないのでできることの齟齬は特になし。 あとは法線などの情報もついでに取得してマシンの向きに使用。 参考画像はデバッグツールの画面ですが、このようなレンダーターゲットから1ピクセル取得して位置を取得しています。三次元の位置のXYZがRGBになって描画されているためこんな感じの色になります。 問題があるのは体の向こう側にマシンがあるとき、クリックすると向こう側にあったマシンがこっち側に出てきてしまうという点くらいでしょうか。何かマーカーを使うことで対処できなかなあ感。 また位置を取って配置するだけでは足りなくて、キャラクターが動いたときにそのくっつけた位置にくっつき続けないと空中に取り残されてしまう問題もありました。なのでさらに配置時に一番近い特定のボーンとオフセット行列を作成し、ボーン変形に追随して移動するように処理をゴリゴリと。 そしてもう一つ、マシンが当たっている部分に対するインタラクトです。乳を舐めれば乳は動くべきで、尻を舐めれば尻も動くべきなのです。 で、マシンの位置からボーンと当たり判定を取って、乳に当たる場合乳揺れ物理へ力を与える処理を実装。ここが苦労しました。暴れる暴れる乳が暴れる・・・。与える力を小さくしても、複数を同時に配置すると乳に伝わる力も大きくなり、ぶるんぶるん震えて痛そうな感じ。 そこからはパラメータ調整地獄。おかしくな動きをしない範囲に収まるように、動いてるということがわかるように。ムズイ。 〇マシン自由配置の可能性 一つのマシンでも、配置する箇所で効果を変化させられるわけです。まだ刺激についての処理が実装されていませんが、このマシン一つでいろんな箇所を刺激できるわけで。 これだとバイブもできそう。 「活性化マシン」みたいなもので、配置する箇所によってその部位の快感をブーストさせるということができそうです。膣周辺に置くと膣感度上昇、おっぱいに配置させると母乳を出せるようになどなど。 薬剤を定期的に注射する注射器マシンもできそう。 卵巣のあたりにピンポイントで置くとどうのこうのするマシンとか。 そんなこんなでアレがダメならこっちの方法と試行錯誤した機能をどうぞ。 機械姦の機能としては一つのブレイクスルーになりえるかもしれないと思いますがいかがでしょうか。 〇操作方法 祭壇設置後、「ピストンマシン追加」→「アクセサリ」のマシン2種から選択。 お腹のあたりにマシンが出てきますので、それをドラッグして体の上に配置、マシンスイッチで動作。 〇今回の制限 現バージョンでは配置制限を設けていないのでマシンスイッチが画面外に出ても配置できます。 ただ、ピストンマシンを二つ設置するとマシン配置ボタンがグレーアウトするので注意。 またマウスでマシンをドラッグする際、体の向こう側にあるものも選択されてしまうので、複数が重なると思うように選択できなくてアレかもしれません。 〇次 ピストンマシンの動作についてもうちょい見直しと、速度・ストローク可変マシンを作りたいと思います。現在のクランク式はストロークの可変が難しいのです。 あと刺激と絶頂システムの再構築。そしてちんちんまわり。GiantSpermもまだ実装してませんでしたね・・・。 気になるのはパフォーマンス。カクカクする可能性があり、いろいろ考えたのですが、マルチスレッドでのガベージコレクタが原因の可能性もあると思いました。ゲームのメインループでそこそこの数のスレッドを走らせていて、CPUの持つスレッド数内に収まっていれば遅延なく処理が行われると思うんですが、もし足りていないとガベージコレクタスレッドが走った際にスループットが結構低下するはず。ガベージコレクタの負荷を減らすのと、ゲームループで使用するスレッド数を減らすのがカギかも。結構根深い上にまだこれとはハッキリはしていないのが問題。 〇バグや変な挙動がありましたら コメントへ! 今回撮って出し状態なので祭壇シーン以外でなにかバグる可能性はあります。その場合でも報告はウェルカムです。 〇近況1 斜頸、涎と呼吸困難が発生した猫を病院へ連れていき、まず原因がはっきりしないため抗生物質などを注射しました。その後一日程度は症状が変化しなかったのですが、昨日の深夜ごろ少しずつ症状が収まってきました。 今はいつもの状態に。 あとは状態を医者に報告して、原因をさらに特定しなければなりません。 検査はしていませんが耳ダニの可能性も考えて駆虫薬のレボリューションというものを獣医師から購入。以前ブロードラインという駆虫薬は使用したのですがあれはお腹の虫が中心で耳ダニには効かないとのこと。 〇近況2 この夏にごりごりと作業していた本筋とは別の作業。二つとも新規プラットフォーム開拓というデカイ使命であり。 一つは以前にオファーを受けながら審査落ちで終了と書きましたが、粘って審査基準に適合させ半分完了。残りは別言語移植の作業。もう一つは新基準適合作業ののち契約などすませて審査中。それぞれうまくいって欲しいところです。 そして書き忘れていましたがDLSiteで天空神殿が5000本到達です。ありがたいおめでたい・・・!Fanzaのほうも肉薄。 なのでDLSiteでは天空神殿の60%Offセールを実施中。Fanzaのほうも達成した際にはやろうかなと。 〇近況3 というわけで夏とは?太陽はどこ?という感じの夏(かどうか不明)でした。いつの間にか秋って・・・。ドローン飛ばせてなさすぎる。 あとようやくコロナウイルスワクチンの予約ができました。来月末と再来月末はおそらく副作用で死んでいることでしょう。 感染者数的にここしばらくは10人台ないしは一桁の県ではありますけど。