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

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

プログラミング

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

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

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

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

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回以上、値が流れたら後続に流し始…

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

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

アイトラッキングの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つをまとめていこうと思います…

近傍探索の実装とまとめ

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

C++とOpenMPによるバイトニックソート

始めに 今回はバイトニックソートについてまとめていこうと思います。 参考にした記事がUnityとComputeShaderやJavaScriptでの実装だったので同じ言語だとあまり面白くならないのでC++を使用しました。 今回は図が多く長いので目次を用意します。 始めに バ…

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

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

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

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

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を使うこ…

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でも実装できるんじゃね?」と思ったのでやってみようと思います。 今回の…

Viveコントローラーでマウスを動かす (Unity)

始めに 前回の記事です。 shitakami.hatenablog.com VTuberで勉強会をする際にDiscordをいじったりしたかったので、Viveコントローラーでマウスを動かす機能を作成しました。 あと、マウスの入力に関する記事はたくさんありますが逆にマウスを動かす内容の記…

Unityで雪を作ってみる by Compute Shader

始めに 過去記事です。 shitakami.hatenablog.com shitakami.hatenablog.com shitakami.hatenablog.com 前に雪のシェーダーを作成しました。前回はカメラの深度を使用しましたが、今回はComputeShaderを使ってテクスチャに雪の凹凸情報を書き込み、それを元…

Behavior Designer使ってみた

始めに ちょっと昔に敵を作っていた時にBehaviorDesignerというものを知りました。 正直、モンスターを作るのって滅茶苦茶大変だしやること多いしデバッグも大変だしで難儀な工程だと思います。 しかし、それでも作っていると楽しかったりします。 雑談が長…

ComputeShaderを勉強してみる その2

始めに 前回ComputeShaderの基礎を簡単に勉強しました。 このときはXJINEさんのブログを参考にしています。 shitakami.hatenablog.com neareal.com 前回はComputeShaderの基礎、実行、データの受け渡しを行いました。 今回はテクスチャをComputeShaderに渡し…

ComputeShaderを勉強してみる

始めに 前回、雪のシェーダーを作成しました。その時「波も作れるんじゃね?」と思い勉強をしてましたが、ComputeShaderに出会いました。 一度前に、こちらの本を見たときに簡単に触れましたが、難しいすぎて理解できませんでした..... https://indievisuall…

ReorderableListを使って敵の動きを編集する

はじめに これまでの記事です。 aizu-vr.hatenablog.com shitakami.hatenablog.com shitakami.hatenablog.com ReorderableListを使って敵の動きを簡単に編集したいなーと思いながらエディタ拡張に苦労して時間をかけすぎました。まずは取り合えず完成させる…