e.blog

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

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

Unityで簡易TexturePackerを実装してみた

はじめに 概要 実装のフロー コード全容 シェーダによる書き込みと読み込み シェーダによる書き込み シェーダによる読み込み 最後に はじめに こちらの記事を参考にUnityで簡易的なTexturePackerを実装してみたのでそのまとめです。 blackpawn.com ちなみに…

World SpaceのCanvasにWorld SpaceからRaycastする

概要 ARやVRなどの開発を行っているとGUIも3D空間に配置する必要があります。 しかしUnityのuGUIは2Dで扱うことを想定しており、通常のGraphicRaycastはスクリーンスペースの位置から判定を行うものになっています。 つまり、3D空間に置かれた(World Space…

Compute ShaderとGraphics.DrawMeshInstancedIndirectを使ったレンダリングを理解する

概要 ComputeShaderを準備する コード システム全体で利用する構造体を定義する C#コード側でデータを準備し計算を実行する コンピュートシェーダで利用するものと同じレイアウトの構造体を定義する 各データ用変数を定義 データのセットアップ Indirect(間…

Unityで簡易的なドローイングツールを作ってみたので実装についてまとめ

概要 Unityで簡易的なドローイング機能がプロジェクトで必要になったので作ってみたもののまとめです。 実装はシェーダを利用して描いていて、ブラシと色とサイズを変更できるようになっています。 実際の動きはこんな感じ↓ Unityで簡易的なドローイング機能…

Unityが起動しなくなってあれこれしたことを殴り書きしておく

概要 ある日突然、Unityが死んだ。 シーン読み込み時にフリーズして再起動したら、Unity自体が起動しなくなるという自体に遭遇。 結果的に4時間溶かしてなんとか解決した・・・。 ただ、正直謎が多すぎてこれで直るか分からないのだけど、同じ悩みを持ってい…

ネイティブテクスチャ経由で画面キャプチャ(RenderTexture)を保存する

概要 フロー RenderTextureを用意 CommandBufferを用意する ReadPixelsでピクセル情報を読み出す(※ 必要ありませんでした) RenderTextureのGetNativeTexturePtrを使ってネイティブテクスチャのポインタを取得 ネイティブプラグインへテクスチャのポインタ…

Unity AR FoundationでPeople Occlusionをやってみる

この記事はUnityゆるふわサマーアドベントカレンダー 2019 #ゆるふわアドカレの8/11の記事です。 概要 UnityのPackage Managerで提供されているAR Foundation。最近はARKit3のサポートが入ってだいぶ熱くなってきてますね。 ということで、今回はAR Foundati…

ARで影を描画する(影だけをレンダリングするシェーダ)

概要 ARコンテンツを作っているとキャラやオブジェクトの影をつけたくなります。 ただ、通常地面はARKitの機能で認識した平面に対して透明(か半透明)のメッシュを配置して表現します。 そしてUnityの標準のシェーダでは透明なオブジェクトには影が落ちませ…

ソフトパーティクルの仕組みを応用した表現

概要 コード解説 ComputeScreenPos 余談 COMPUTE_EYEDEPTH UnityObjectToViewPos デプスの算出 UNITY_PROJ_COORD SAMPLE_DEPTH_TEXTURE_PROJ LinearEyeDepth 余談 デプスを用いたフェード処理 depthTextureModeをオンに 最後に 概要 ソフトパーティクルの仕…

Magic Leap One開発入門

概要 まずはCreator Portalにログイン UnityのプロジェクトをMagic Leap向けに設定する Settingsを調整 ライブラリ・ツールをインストール The Labをインストール パッケージをインストール MLRemote用ライブラリをインポート パッケージのインポートとPrefa…

Swiftでネイティブプラグインを作る

概要 SwiftからObjCを呼び出すためのBridge用ファイルを生成・設定する Objective-CからSwiftのメソッドを呼び出す Objective-CからSwiftのクラスをイニシャライザを使って生成する Tips その他気になったところ Swift Versionの設定 概要 以前、Objective-C…

uGUIの背景をぼかしてオシャレに見せる

概要 最近、Apex Legendsにハマって毎日のように時間が吸われていってます。(まずい) さて、今回はこのApex LegendsのUIで使われているような「背景がボケているUI」を作る方法を書いていきたいと思います。 ↓こんな感じで、背景が透過+ボケている「すり…

Scriptable Render Pipeline(SRP)についてちょっと調べてみた

概要 いつもお世話になっている凹みさんの記事を参考にさせてもらってます。 基本的には凹みさんの記事を見ながら、自分の理解やメモを書いているだけの記事となります。 tips.hecomi.com なお、SRPについてはUnityのGithubアカウントから提供されているもの…

UnityのARKit Pluginのカメラ映像を利用してなにかする

概要 UnityのARKit Pluginを使えばARコンテンツを手軽に作ることができます。 しかし、当然ですがARは外界をカメラで撮影し、それを元に姿勢を判断しています。 つまり、QRコードリーダーやOpenCVなどを利用した画像認識など「カメラを利用した処理」をする…

特定のUIを除いて画面のスクリーンショットを撮影する

概要 ゲーム画面のスクリーンショットを撮影したい、というのはよくある要望でしょう。 そしてさらに「特定のUIだけを除いて」撮影したい、というのもわりとある要望だと思います。 例えば操作用のUIは非表示だけども、ステータス表示などは表示しておきたい…

揚力を計算して滑空する

概要 今モックで作成しているVRコンテンツに、滑空の要素を入れたかったので揚力の計算について調べてみたのでそのメモです。 ちなみに適当に飛行機っぽい形状を作って適用した動画はこんな感じです↓ Unityでグライダー風のものを作ってみた。 https://t.co/…

UnityのCamera#ScreenToWorldPointを自前で計算してみる

概要 Screen Spaceの座標をシーンのワールド座標に変換して、その位置になにかする、というのはよくある処理だと思います。 (例えば画面をタップしたらその先にレイを飛ばしてなにかする、とか) そのあたりは当然、Unityは準備してくれているのだけど、中…

Unityの行列の扱いとベクトルのオーダー周りについてまとめておく

概要 自分で直に行列変換周りの処理を書くときに、掛ける順番やオーダー周りについていつも混乱するのでまとめておきます。 座標系の向き これは、行列のオーダーには直接関係はありませんがよく混乱するので書いておきます。 Unityでは「左手系」の座標系を…