すぎしーのXRと3DCG

主にXR, Unity, 3DCG系の記事を投稿していきます。

2020-01-01から1年間の記事一覧

【Moq】UnityでのMoq導入方法 と MoqのTips集を紹介!

概要 Moqの導入 Github Moqの依存ライブラリとそのライセンスについて MoqをUnityに導入する方法 Moqおよび依存ライブラリのダウンロード nupkgを展開 dllファイルの取り出し .NET Standard 2.0 .NET 4.x or .NET Framework dllのプラットフォームの指定 Sys…

【Extenject】AsTransient, AsCached, AsSingle を使い分けよう!

概要 動作環境 関連 前知識 ContractType と ResultType について Zenjectによるインスタンス生成 コンストラクタが複数ある場合 WithArguments の引数の数について Scope (AsTransient, AsCached, AsSingle) Scopeの違い AsTransient AsTransient の 利用例…

【Unity】Shader Graphで走査線っぽいもの

概要 動作環境 今回作るもの 実装機能 シェーダーテクニック UVノード と 分離(Split) Fraction Time + UV + Split + Fraction 三角波 三角波 + Step 三角波 + Smoothstep 余談:Time + Fraction + Smoothstep 波の出現の周期を変える 完成形 サンプルプロジ…

【C#】え、Generic Interfaceでメソッド引数を設定すれば構造体のBoxingを回避できるの?

C#

概要 Constraints on type parameters について 例:structで制約を付けた場合 interfaceを継承した構造体のboxing intefaceを引数としたメソッドに渡した場合のBoxing なぜBoxingが発生したのか Generic Interfaceによる構造体のBoxingの回避 Generic Inter…

【Unity】指のポーズをブレンドしてハンドジェスチャーを作ろう

概要 動作環境 使用アセット ポーズの用意 ポーズの条件 用意するポーズ HandOpened ThumbClosed, FingerClosed ポーズの簡単な作り方 パーからグーを作る方法 Blender グーから一部の指をデフォルトに戻す アニメーションをExport UnityでFBXをImport 非ル…

【UniRx】UniRxのDelayFrameが初回だけ1フレーム余計に遅延する問題と解決方法

概要 UniRxについて DelayFrameの問題について 現象の確認方法 問題の原因 簡単に言うと 詳細に言うと バグではないの? 制限事項とする理由 余談:修正できないの? 問題の回避 方法1. MainThreadDispatcher.Initialize()をコール 方法2. Scheduler.SetDefa…

【Unity】Physics.Raycast のパフォーマンスはシーンに存在するColliderの数に影響するのか

概要 動作環境 Raycastについて 検証の集計に関して 検証 検証方法 使用するCollider 検証1. ボックス状にコライダーを複数配置し、Raycastの時間を検証 2 x 2 x 2 合計1000の結果 10 x 10 x 10 合計1000の結果 40 x 40 x 40 合計8000の結果 検証1での考察 G…

【Unity】Boltなどのビジュアルスクリプティングで気づきにくいミスパターン

概要 Boltについて Boltの参考動画 補足 問題 答え 要注意ポイント 処理の流れ 解決策 Set Variable のOutput から取得 変数から直接取得 複雑なグラフでの例 雑感 概要 Boltが正式に無償化したということで、今回はBoltなどのビジュアルスクリプティングで…

【Unity】Unity向けDependency Injection講座

概要 環境 今回の主目的 DIの種類 Method/Property Dependency Injection Constructor Dependency Injection Awake を使った Dependency Injection Awake を使ったDIのメリット RequireComponentで指定したコンポーネントが追加されていない場合 Script Exec…

Dependency Injection解説 と C#における実装例

C#

概要 DIの本質 DIに関連の深いキーワード Dependency Injection の例 DIを使用しないパターン DIを使用するパターン Loggerを実装して注入 Console.WriteLineを実施するLogger ファイルにメッセージを追記していくLogger メッセージを無視するLogger 依存注…

【Unity】シーンからCubemapを作成してpngファイルで出力するツールを作ってみた

2021/06/19追記 概要 環境 前知識 テクスチャ形式 Texture2D.SetPixels Cubemap.GetPixels Camera.RenderToCubemap 実装方針 実装までの流れ CubemapFileGeneratorWizardの作成 テクスチャ形式に合わせたConverterを作成 Texture2DとCubemapの差異を補正する…

【Unity】バグ?Tex2DArray型RenderTextureにVRTextureUsage.TwoEyesが指定されている場合にGraphics.Blitが機能しないパターンがある (2021/06/05 追記)

概要 環境 機能しないパターン 関連 機能しないときにRenderTextureDescriptor 機能しないときのGraphics.Blit どうなるのか 期待する結果(TwoEyes以外の場合) 雑感 追記 追記(2021/06/05) 概要 タイトル通りです。 単なる共有なので簡素に書きます。 ※一応U…

【Unity, XR】左右のビューで異なるテクスチャをサンプリングするシェーダー (unity_StereoEyeIndex使用)

概要 実行環境 今回作るシェーダーの特徴 前知識 ステレオカメラ Tex2DArray型RenderTexture Tex2DArray型RenderTextureの注意点 unity_StereoEyeIndex (シェーダー内変数) 使用する左右の画像 スクリプト実装のポイント Tex2DArray型RenderTextureの作成 Te…

【Unity】Zenject (Extenject) を使った自動テストを紹介

Extenject Thumbnail 概要 環境 Extenjectのインストール Zenjectにおける自動テスト種別とそのポイント 共通 Unit Test Integration Test Scene Test テストシチュエーション 登場クラス テスト対象コードの作成 Scripts直下にTestTargets AssemblyDefiniti…

【Unity】Camera.RenderはOutput Textureがある場合はUniversal Render Pipelineでもサポートされているっぽい?(Unity 2020.1.0b11時点)

概要 Camera.RenderはOutput Textureがある場合はUniversal Render Pipelineでもサポートされているみたいです。 以下のドキュメントでは"Camera.Render"項目は"Not Supported"になっていますが、完全にサポート外というわけではなくOutput Texture (targetT…

【Unity】鏡に映るは鏡の世界なり (Unityで鏡の実装)

概要 タイトル訳:Unityで鏡を作りたい! 今回紹介する考え方は応用が利くので、何かのお役に立てばと思います。 ※Qiitaの記事と全く同じです 動作環境 Unity 2019.4.0f1 原理 まず初めに、鏡に映るものをどうやってレンダリングするかを考えましょう。 発想…

本ブログ紹介

概要 記事作成のテストを兼ねて、本ブログの紹介します。 投稿者について 大阪でエンジニアとして働いていましたが、現在はXR, ゲーム、3DCG関連の仕事にジョブチェンジするために活動しています。 現在は主にUnityについて学習しています。 もともとはバッ…