なおしのこれまで、これから

学んだこと・感じたこと・やりたいこと

Unity

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

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

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

始めに 前回アイトラッキングの情報をアバターに反映させました。 shitakami.hatenablog.com そのときに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 また、今回の内容は以下のリポジトリに…

群れの表現(Boidsモデル)をUnityで実装する

始めに 前回はDrawMeshInstancedIndirectとComputeShaderを使って動くcubeをたくさん表示しました。 shitakami.hatenablog.com 今回はBoidsモデルを実装しようと思います。 もし、DrawMeshInstancedIndirectやComputeShaderについてわからないことがあれば過…

Graphics.DrawMeshInstancedIndirectまとめ

始めに 去年ちょっとだけGraphics.DrawMeshInstancedIndirectを触りました。 shitakami.hatenablog.com 今回はその復習も兼ねてこの機能についてまとめていこうと思います。 Graphics.DrawMeshInstancedIndirectについて このメソッドを使用することによって…

VRでオブジェクトを掴む処理を自作する

始めに 過去記事です shitakami.hatenablog.com 開発中にオブジェクトを掴むプログラムを探してた際にほとんどがAssetStoreのライブラリだったので、自分が使いやすいようにするため自作しました。 また、このプログラムを書くのが2回目だったのでブログにま…

Gray-Scottモデルで遊ぶ(頂点アニメーション、テクスチャ書き込み等)

始めに 過去記事です。 aizu-vr.hatenablog.com shitakami.hatenablog.com 色々触ってみてもうちょっと面白いことが出来るんじゃないかと検証してみました。 半分今までの復習みたいな感じです。 プロジェクトはこちらです。 github.com VTF+テッセレーショ…

CustomRenderTextureで実装するGray-Scottモデル

始めに つい最近、部活のブログでComputeShaderを使用したGray-Scottモデルについて紹介しました。 aizu-vr.hatenablog.com このブログを書きながら、「これってCustomRenderTextureでも実装できるんじゃね?」と思ったのでやってみようと思います。 今回の…