したかみ ぶろぐ

Unity成分多め

Unity

水流による魚群制御の考察

始めに ここ最近は個人開発でQuest向けの魚群シミュレーションを開発しています。現状の進捗としては入れたい機能をある程度実装して動作確認して、Questでどれだけ動かせそうかの上限が見えてきたところです。 そんな中、テストプレイをしていただいた方か…

【Unity】線形補間を用いて力場から受ける力を求める

始めに これまでに何度か空間に力場を設定して、Boidsシミュレーションに組み込んで意図する挙動をさせてきました。 shitakami.hateblo.jp shitakami.hateblo.jp ブログには書いていませんでしたが、twitterに載せたこちらも空間に力場を作って魚群を円状に…

【Unity】Edit Mode 時に設定したテクスチャをマテリアルに反映するコンポーネントを作る

始めに uGUIを使わないUIを作るため、自作でテクスチャをマテリアルに設定するコンポーネントを作ります。 今回は備忘録的な内容なので結構あっさり目にまとめます。 始めに やりたいこと マテリアルの注意点 マテリアルを共有した場合、変更は別オブジェク…

【Unity】NativeMultiHashMapを使った近傍探索Boidsシミュレーション

始めに 前提 環境 Boids実装概要 Boidsの設定データ Boids実行クラス Boids計算クラス JobSystem 全探索Boids 実装 結果 近傍探索Boids NativeMultiHashMapについて 実装 結果 比較 まとめ 始めに 趣味でJobSystemを使ったBoidsシミュレーションを作成してい…

【Unity】JobSystemのサンプル作成と計測

始めに 作成するサンプル 動作環境 愚直な実装 + MeshRenderer JobSystem + Burst + MeshRenderer JobSystem + Burst + RenderMeshInstanced 計測結果 まとめ まとめ・感想 参考 始めに 並列処理が出来るJobSystemのサンプルを作成して、どれほどの性能なの…

【Boidsアルゴリズム】球体の障害物を回避させるアルゴリズムを考える

目次 目次 始めに 障害物から"逃げる" 結果 障害物を"回避する" 1. 障害物を回避する範囲内にいる、かつ逃げる範囲外にいるか 2. 前方向に障害物があるかをチェック 3. 個体の速度ベクトル を延長して、障害物の中心点との距離 を求めて障害物から逃げる範囲…

【Vive Pro Eye】アイトラッキングのデータを取得する場合はコールバックを使った方が良い

始めに 前回アイトラッキングの情報をアバターに反映させました。 shitakami.hateblo.jp そのときにAnalyzerで処理を調べたところ、アイトラッキングの情報取得が重いことが分かりました。なので、取得処理をコールバックに変更してどれだけ軽くなるのかを調…

【Vive Pro Eye】アイトラッキングで取得した瞳の位置をモデルに反映させる

始めに 半年前ぐらいにVive Pro Eyeを触りましてちょっとしか遊んでなかったので、今回は取得した情報をモデルに反映させてみました。 今回使用するモデルはこちらです。 booth.pm Vive Pro Eyeについては過去記事を参考にして下さい。SDKについて簡単にまと…

ComputeShaderとDrawMeshInstancedIndirectでGraphicsBufferを使う

始めに 去年にこの記事を拝見し、GraphicsBufferなるものの存在を知りました。 zenn.dev また、この記事内にて遠い将来ComputeBufferが無くなり、GraphicsBufferに切り替わる予定とのことでした。 (GraphicsBuffer, Mesh vertices and Compute shaders - Un…

Riderのブレークポイント機能メモ

始めに ブレークポイントを設定する ブレークポイントで設定できる項目 有効 / 無効の設定 一時停止する条件の設定 状態の評価、出力 Unityの一時停止ポイントに変換 プログラム一時停止中に出来ること 変数の値を見る 任意の処理を実行する(変数の値の変更…

Unityで映画Matrixになれるシェーダを作る

始めに 前回、前々回の記事です。 shitakami.hatenablog.com shitakami.hatenablog.com 今回の内容はこの2つを組み合わせたものです。特に目新しいことはないかもしれません。 また、今回の内容もリポジトリに追加しました。 github.com シェーダの作成 やっ…

Unityで平面マッピング・Triplanarをする

始めに shitakami.hatenablog.com 前回作成したマトリックスの模様をどうにかオブジェクトに貼り付けたいなと思い、調べたところ見つかったのが平面マッピングとTriplanarでした。 今回はこちらについてまとめようと思います。 平面マッピング(Planar) 「…

Unityのシェーダーでマトリックスの流れる暗号を書く

始めに 前回マトリックスのパーティクルを作成しました。 shitakami.hatenablog.com このままノリで映画の画面などで表示される模様をシェーダーで書いてみようと思います。 また、今回の内容はこちらのリポジトリに入っております。 github.com やったこと …

UniRxのオペレータCombineLatestとWithLatestFrom

始めに 2つのストリームを合成する際に、CombineLatestとWithLatestFromを混同していたので一度自分なりに調べてみようと思います。 始めに CombineLatest 1. 複数のIObservableをまとめられる 2. すべてのIObservableから1回以上、値が流れたら後続に流し始…

Unityで映画Matrixの暗号パーティクルを作る

始めに つい先日「マトリックス リザレクション」のPVが公開されました。 滅茶苦茶楽しみです。 www.youtube.com で、マトリックスと言えばあの意味の分からない文字の羅列が印象的ですが、それってパーティクルで作れない?ってことでノリと勢いで作ってみ…

【UniRx】オペレータのSwitchについて

始めに UniRxのオペレータでSwitchを見かけたのですが、コードの挙動を追うことが出来ていなかったので勉強してまとめてみようと思います。 Switchとは? Switchは簡単に言いますとIObservable<T>を切り替えるオペレータです。 IObservable<IObservable<T>>の拡張メソッドで、</iobservable<t></t>…

Vive Pro Eyeを使って見た個所にポインタをつける

始めに 前回、前々回の記事です。 shitakami.hatenablog.com shitakami.hatenablog.com 記事を書きながらなんとなくで使い方がわかったので、実際に自分でプログラムを書いてVive Pro Eyeで遊んでみようと思います。 実行環境 Windows10 Unity2020.3.7f1 Eye…

アイトラッキングのSDKで使用できるメソッドについて

始めに 前回、Vive pro eyeを簡単に試してみました。 shitakami.hatenablog.com 今回は解説しきれなかったSDKに用意されているメソッドについてまとめようと思います。 バージョンはv2です。 途中、だらだら書いているので簡単に見たい方はまとめをご覧くだ…

Vive Pro Eyeを触ってみる

始めに Vive Pro Eyeを購入したので、Unityでアイトラッキングを試してみようと思います。 セットアップ 基本的なセットアップはフェイシャルトラッカーと同じなのでこちらを参照してください。 shitakami.hatenablog.com アイトラッキングを試す 始めにVive…

【UniRx】IObserver, IObservable, ISubjectについて

始めに UniRxを勉強すると必ず3つのインターフェースIObserver, IObservable, ISubjectが登場します。 勉強仕立てのときはこれらの関係性どころか覚えることすらできませんでした。 今回はその反省を踏まえ、自分なりにこれら3つをまとめていこうと思います…

Viveフェイシャルトラッカーを触ってみる

始めに 4月9日にHTC ViveからViveフェイシャルトラッカーが発売されました。 これまではIPhoneとかで口のトラッキングしてみようかと考えていましたが、HTC公式から発売されたデバイスなので買ってどんなものか試してみたいと思い、勢いで買ってしまいました…

近傍探索の実装とまとめ

始めに 今回の内容は次の記事を参考にして実装した内容になります。解説する内容は大体同じになってしまうかもしれません。 qiita.com Boidsアルゴリズムを改良したいと考えていた際にこの記事を見つけました。どんなものか調べるために自分で実装してみまし…

ベクトル場を使った衝突回避Boidsアルゴリズム

始めに 前回のブログで作成したベクトル場を使って衝突回避をするBoidアルゴリズムを実装したいと思います。 今回のサンプルです。 github.com 過去記事です。 shitakami.hatenablog.com shitakami.hatenablog.com やったこと 始めにベクトル場を計算します…

人型モデルの周りにベクトル場を生成する

始めに Boidsアルゴリズムで衝突回避の実装について考えた結果、周りにベクトル場を生成すればいいのではと思いました。 そこで今回はSkinnedMeshRendererでアニメーションをするオブジェクトの周りにベクトル場を生成してみようと思います。 今回のサンプル…

ML-Agentsの訓練設定ファイルを生成するEditor拡張の作成

始めに ML-Agentsの訓練設定ファイルをUnityで編集できるエディタ拡張を作成致しました。 github.com ※まだ開発途中です!今後更新又は修正していく予定です TrainingSettingFileEditor 機能 各パラメータを設定して.yamlファイルを生成することが出来ます。…

ML-Agentsでシューティングゲームを学習させる

始めに ML-Agentsの本を大体読んだので自分で簡単なシューティングゲームを作って、それを学習させてみようと思います。 注意としてML-Agentsの解説は少しありますが、この記事を読んでML-Agentsを動かせるようにはならないのでわからない箇所がある場合は以…

アニメーションするオブジェクトを大量に表示する(VAT + GPUInstancing)

始めに 前回はVAT(Vertex Animation Texture)についてまとめました。 今回はVATとGraphic.DrawMeshInstancedIndirectを組み合わせるサンプルを作成してみました。 過去記事 shitakami.hatenablog.com shitakami.hatenablog.com shitakami.hatenablog.com …

VAT(Vertex Animation Texture)を使用してシェーダーでアニメーションをさせる

始めに 野球ゲームの観客だったり、最近ではVtuberのライブの観客だったりで多くのNPCを表示させてかつアニメーションもさせています。 どうやれば実装できるかと思っているとき、VAT(Vertex Animation Texture)という技術を知りました。 このVATを使うこ…

ML-Agentsのサンプルを動かしてみた

始めに 本屋でテキトーに本を見てた時にML-Agentsの新しいバージョンの本があり、秒で買ってしまいました。 Unity ML-Agents 実践ゲームプログラミング v1.1対応版 (Unityではじめる機械学習・強化学習)作者:布留川 英一発売日: 2020/08/14メディア: 単行本 …

ComputeShaderでGPUパーティクルを実装する

始めに ComputeShaderについて調べてみますと「GPUパーティクル」という単語を何度か目にしました。 今回はこのGPUパーティクルについてまとめようと思います。 こちらのサイトを参考に実装を行っています。 qiita.com また、今回の内容は以下のリポジトリに…