e.blog

主にUnity/UE周りのことについてまとめていきます

アニメーション

ComputeShaderで動かす様々な形に変化するパーティクルシステム

概要 今回は1/7〜1/10にかけて開催されたCES2020でMESONが展示した『PORTAL』の中で、メインの演出となったパーティクルシステムについて書きたいと思います。 このパーティクルシステムの特徴は、指定したモデルグループの頂点位置にパーティクルをまとわせ…

Unityで流体シミュレーション ~粒子法編~

はじめに 以前に、格子法を用いた2次元の流体シミュレーションについて概念編と実装編に分けて2つの記事を書きました。 しかし格子法は、その定義領域の範囲を越えてしまうと計算ができなくなってしまうという問題があります。特に今回は3Dに拡張し、AR/VR内…

ドメインワープをテクスチャフェッチで実装する

概要 以前、フラクタルブラウン運動とドメインワープという記事を書きました。 ここで紹介した方法は、ドメインワープの計算のためにランタイムでノイズを計算する方法でした。 ちなみにドメインワープによるアニメーションはこんな感じのものになります↓ が…

Unityで流体シミュレーションを実装する 〜 実装編 〜

概要 前回は流体シミュレーションの概念編を書きました。 edom18.hateblo.jp 今回は前回説明した内容を元に実際に実装したプログラムに関して解説していきたいと思います。 ちなみに実行したデモ動画はこちら↓ 前のやつ、ちょっと計算間違っていてちゃんと動…

Unityで流体シミュレーションを実装する 〜 概念編 〜

はじめに 今回の実装をするにあたってナビエ・ストークス方程式を解いて実装していく必要があるのですが、正直、数学・物理としての正確な意味の理解や方程式のしっかりとした理解には至ってません。 式の内容やどういうことを行っているのかというのは理解…

CustomRenderTextureを使って波紋エフェクトを作る

概要 ダウンロード CustomRenderTextureとは CustomRenderTexture用のcgincがある CustomRenderTexture用シェーダを書く 波動方程式を解く 波動方程式を解くシェーダ(for CustomRenderTexture) CustomRenderTextureのセットアップ CustomRenderTextureの生…

カールノイズを使ったパーティクル表現

概要 前回の実装ではパーティクルはすべて常にアップデートされていた 連続してパーティクルをエミットする パーティクルをプールして管理する プールの状態を初期化するInitカーネル Append Buffer、Consume Bufferを利用してプールを管理する パーティクル…

UnityのCompute ShaderでCurl Noiseを実装(衝突判定編)

概要 今回は「衝突判定編」です。 前回の「流体編」の続編です。 edom18.hateblo.jp さて、今回は論文で発表されたカールノイズの『衝突判定』について書きたいと思います。 実際に動いている動画↓ やったー。カールノイズの衝突判定もちゃんと動いた。 pic.…

UnityのCompute ShaderでCurl Noiseを実装(流体編)

概要 ソースコード 今回の記事で書くこと 大まかな解説 非圧縮性を確保する 用語解説 ベクトル場 カール(Curl・rot) ramp関数 本題 ノイズを生成する カールノイズのカーネル 次回予告 - 衝突判定 概要 今回は「流体編」と題しました。 というのも、発表さ…

ランタイムでAvatarを生成してアニメーションに利用する

今日の記事は、UnityのAdvent Calendarの9日目の記事です。 qiita.com 概要 VR開発をしていると、キャタクター(アバター)を表現する方法として頭と手だけの簡易的アバターか、通常のキャラクターモデルを用いたアバターの2種類から選ぶことになります。 そ…

SkinnedMeshとBoneWeightについてメモ

概要 とある実装をしていて、アニメーション周りをわりと触ったのでそのメモです。 具体的には、メッシュカットを利用してメッシュを分断したあと、分断したメッシュもボーンアニメーションさせたくて実装したメモです。 実際に切断してアニメーションさせた…