へきらくおきらく

Unreal EngineやSingle Board Computerでのゲーム開発メモ

【第10回ぷちコン】UE4 プリン ぷるぷる させ方 [検索]

4テーマ「ぷち」を与えられて最初に思いついたのがプッ○ンプリンでした。

第10回UE4ぷちコン|株式会社ヒストリア

プッチ○プリンを作ることばかり考えていました。期間中に8個たべました。

 

最終的にこの動きになりました。皿に落ちる瞬間で何度も一時停止してみてください。

 

それでは、ぷるぷるプリンができていく様子を書いていきます。

 

理想とするプリンの条件を考えました。

・揺れて、ぷるぷるする。

 ・外力によって凹んだり凸ったり、変形する。

 ・変形し外力が失われた後、徐々に振動しながら元の形状に戻る。

 ・エモい揺れ方をする、乗ってぽよんぽよんしたい。

 

実装方法を考えました。

・アニメーションを作成して再生する。

 ・ いろんな方向から力を受けたときにどうしたら良いかよくわからなかった。

 ・頑張ってブレンドすればできるのか・・・?

・BlueprintからScaleを時間で変化させる。

 ・実装は簡単だが、折れ曲がる挙動なんかができない。

・なんかいい感じの物理に任せる。

 ・これが理想だなあ。なんか無いかなあ。

 

たどり着いたのが、NvidiaのGameWorks。

Flexというパーティクルベースのシミュレーション技術

  www.youtube.com

 ・クッションのような球体と四角のメッシュが出てきます。

 ・いい感じに使ったら、ぷるぷるできるんじゃないかと考えました。


・たどり着いたというより、心当たりがありました。

 ・NVIDIA、「VR Funhouse」がMODに対応、開発キットも公開 - GAME Watch

 ・このキットを使ったゲームジャムに参加したことがありました。そのとき、ちょっと調べました。

 

UE4 Flexの開発環境を揃える

・こちらにとてもわかりやすい導入記事があります。

・2018年9月頭の段階で、私は4.17.1ブランチを使用しました。

 ・https://github.com/NvPhysX/UnrealEngine/tree/FleX-4.17.1

 ・4.19.2のブランチがありましたが、私の環境では自分のStatic Meshに

   Flex Assetをアサインできないバグがあったため使用できませんでした。

 

余談:ぷちコンに提供されているツールライセンス

UE4のエンジンビルドは時間かかるのでここらで休憩。

ぷちコン期間中にIncrediBuildさんのライセンスが提供されていました。

エンジンのビルドはもちろん、シェーダのコンパイルも分散されます。

導入自体は簡単です。使った方が得だと思います。

今回の自分のプロジェクトと相性が良かったです。なんだかんだ4.19.2ブランチの中で何度もリビルドしたので。。。

 

他にも、つよいライセンスが提供されていました。

第10回UE4ぷちコン 協賛社ライセンス一覧|株式会社ヒストリア

 

UE4 Flexのデモプロジェクトを見てみる

・導入のところでソリューションをのビルドが完了していれば、

 FlexProject以下の.uprojectが開けるはずです。

f:id:wakanya:20180919222105p:plain

・Maps以下の「flexSoftTestMap」を開いて、実行してみましょう。

 フォルダがごちゃごちゃ。このままぷちコンに使っちゃったの。許してね。

f:id:wakanya:20180919224345p:plain

 

・輪っかやタコがふにゃふにゃしている様子が見えます。

 

デモプロジェクトのタコを見てみる

・TestPackages/Flex 以下の 「flexOctopus」を開いてみましょう。

・うわっ、タコが赤いつぶつぶで埋め尽くされています。イクラかな?

 ・このスライドの30ページの図を見れば、

  つぶつぶの集まりで何をやりたいのかがなんとなくわかると思います。

ツールバーFlexのvisible切り替え、詳細欄にFlexの項目があります。

f:id:wakanya:20180919233225p:plain

 

FlexカテゴリのFlex Assetには「Flex Soft Asset」がアタッチされています。

 ・Softはふにゃふにゃする物体のためのアセットです。

 ・他の選択肢として、Cloth(布)、Solid(個体) があります。

 ・パラメータはこちらを参照(丸投げ)。Assets — Flex Artist Tools 1.0 documentation

f:id:wakanya:20180920002211p:plain

・また、Container Templateには「flexSoftContainer」がアタッチされています。

 ・Containerはパラメータ設定用アセットのようなものです。

 ・こちらを参照(丸投げ)。Containers — Flex Artist Tools 1.0 documentation

f:id:wakanya:20180920003328p:plain

 

・プリンのメッシュを作成する前に、タコのメッシュを見てみました。

・けっこう細かく作られています。

f:id:wakanya:20180920003939p:plain

 

自分のメッシュを入れてみた。

・気持ち的にはタコに負ないくらい分割したメッシュを作りました。

 後で使われるかもしれないので進捗と一緒に寒いギャグを言うのはやめようと思いました

・最終的には以下のようなパラメータになりました。

・タコより大きいので、つぶつぶや動きを大きくしたりという感じでしょうか。

f:id:wakanya:20180920010927p:plain

f:id:wakanya:20180920010839p:plain

 

・設定によっては簡単にこんな挙動になります。

・設定の試行錯誤で2日くらいかかりました。なにしろ反映が重いので設定を変えるたびにPCが悲鳴をあげるのです。。

 

跳ね返ってほしい

・わたあめのような雲に乗ってみたいという願望は誰しも持っているはずで、

 プリンに乗ってぽよんぽよんしたいという願望も誰しも持っています。

 

・メッシュとFlex Softを適用しただけの状態では、自キャラに潰される一方です。

 

・シンプルにコリジョンを作ってキャラクターをジャンプさせました。

・やっといつものUE4って感じですね。実家のような安心感。

f:id:wakanya:20180920012333p:plain

・Delayを入れることで、わずかにめり込んでから跳ね返ったように見えます。

f:id:wakanya:20180920012339p:plain

 

心がぴょんぴょんするんじゃぁ^~

 

そうしてこちらのゲームを作ることができたのです!

www.youtube.com

以上となります。ここまで見ていただいてありがとうございました。

パラメータなど無駄なところがあるかもしれません。詳しい方教えて・・・

 

その他の苦闘は気が向いたら・・・