渋谷ほととぎす通信

新しいこと、枯れたこと問わずサムザップ大庭が興味を持ったものを調査、生活の効率を求める完全趣味の技術ブログ。基礎を大事にしています。※あくまで個人ブログであり所属組織とは関係ありません

Unity

【Unity】Rider機能の使用頻度ランキングとそのショートカット設定

僕はUnityでC#を書く時はRiderを使っています。 言い換えると「UnityでC#を書く時にRider以外使えない体」になっています。旧UnityのソースコードEditorであるMonoDevelopからRiderに移行して数年経ちますが、もはや体の一部のように馴染んでいるように感じ…

【Unity】必ず設定しておくべきPreferencesのVisual Effectsの設定項目

Visual Effect GraphをインストールするとPreferencesにVisual Effectsという項目が並びます。 その中で何を設定しておかなければならないかについて紹介していきます。 各設定項目の設定可否について 表にまとめました。 項目 設定の可否 Experimental Oper…

【Unity】シーンビューからVisual Effectに対してカスタムイベントを呼ぶ方法

Visual Effect Graphではデフォルトで用意しているOnPlay、OnStop以外にカスタムイベントを定義できます。 そのイベントをわざわざソースコードを変更することなく実行する方法紹介です。 先日Visual Effect Graphのイベントについて執筆していますのでどう…

【Unity】Visual Effect GraphのイベントIDはShader.ProperyToIDで取得する

先日Visual Effect Graphのビルトインイベントについて記事を書きました。その関連記事です。 SendEventメソッドはオーバーロードで引数をint型も受け付けます。 int型で渡す場合、文字列のイベントをint型に変換する必要があります。 ShaderPropertyでID変…

【Visual Effect Graph】PointCacheToolで出力されるメッシュのサイズを修正する方法

PointCacheを使うとVisual Effect Graphの表現が広がります。 例えば下のような牛モデルを用意して、Visual Effect Graph付属のPointCacheToolでPointCacheを作成します。 それをVisual Effect Graphに食わせてやれば、パーティクルの発生源を以下のようにメ…

Visual Effect GraphはWebGLでは動かない件(2020年11月執筆時)

「まあ、そりゃそうだ」 という記事なのですが、せっかくやったことはアウトプットしておきたい派です。 Visual Effect Graphはコンピュートシェーダに依存 コンピュートシェーダはOpenGL ES 3.1以降に実装されている技術でVisual Effect Graphはそれを使っ…

【Unity】Visual Effect Graphでパーティクルを指定した座標を向くようにする方法

ParticleSystem(Shuriken)では出来なかった事シリーズです。ParticleSystemでは放出したパーティクルをあとからどうこうするということは出来ませんでした。 Visual Effect GraphではUpdate Particle Contextノードを使って毎フレーム処理を仕込む事ができま…

【Unity】Visual Effect Graphのデフォルトで定義されているイベント

Visual Effect Graphでは任意のイベントを作成することが出来ますが、デフォルトで定義されているイベントも存在します。 OnPlay OnStop この2つはVisualEffectAssetクラス内で定義されています。 ソースコードのコピペ(一部抜粋)は以下です。 例えばOnPlay…

【Unity】Visual Effect Graphを生成直後に再生させない方法

ParticleSystemでいう所のPlay On Awake(Awake時にパーティクルを再生させるフラグ)をVisual Effect Graphでどうやって実装するか?という話です。 OnStopをInitial Event Nameにセット 上記のようにOnStopイベントをInitial Event NameにセットするとVisual…

【初心者向け】Visual Effect Graph面白いなと思った事3点紹介というLTをしてきました

先日エンジニアLTで最近勉強中のVisual Effect GraphについてLT発表してきました。その資料を共有したいと思います。 最後までご覧頂きありがとうございます。 もしスライド中の動画やリンクが気になった方は以下がオリジナルスライドになりますので、そちら…

【Unity】Universal Render PipelineでVisual Effect Graphの始め方(ポストエフェクト付き)

High Definition Render Pipeline(以下 : HDRP)使用時にはVisual Effect Graph(以下 : VFXGraph)はデフォルトでくっついてきますので、特に追加の準備をすることはありません。一方、Universal Render Pipeline(以下 : URP)使用時にはデフォルトでインストー…

【Visual Effect Graph】StartとStopに同名のイベントを設定してはいけない件

久々のブログです。 最近Unityの次世代パーティクルシステムVisual Effect Graph(以下:VFXGraph)で遊んでいます。 VFXGraphとはGPUパーティクルシステムです。ノードベースで処理をつなげることが出来るため、エンジニアからアーティストまで幅広く使われそ…

Verdaccioでローカルのnpmサーバーを立ててUnityPackageManagerにプライベートリポジトリを使う

前回からの続きで、プライベートリポジトリをUnity PackageManagerで使うためにnpmサーバーをローカルに立ててみます。 有名なVerdaccioを使います。Verdaccioは無料でnpmサーバーを作ることが出来ます。 ※nodejs、npmのインストールについては割愛します。 …

UnityのPackageManagerプライベートリポジトリの調査

結論 プライベートリポジトリは専用のレジストリサーバーを立てる必要がある。 ※レジストリサーバーを立ててプライベートリポジトリをUnityPackageManagerで使用する記事を書きました。 経緯 UnityのPackageManagerを使うにあたって、プライベートリポジトリ…

OpenUPMからDOTweenをインストールする

OpenUPMはおそらく個人で開発のパブリックレジストリを提供しているプロジェクトです(多分)。 今回はこのOpenUPMからDOTweenをインストールして、UnityのPackageManagerで管理することにします。今までだとAssetStoreやgithubからダウンロードしてProject内…

ShaderGraph テクスチャの参照をシェーダに渡す部分でハマる。_MainTexはどこ?

Unityにて、 UniversalRP ShaderGraph この2つを使った描画の検証をしています。 ShaderGraphで書いたシェーダに外からテクスチャをスクリプトで渡す際に軽くつまづいたので共有します。 作っているもの カラーテクスチャとマスクテクスチャを渡したマスクシ…

macOS CatalinaとUnityの相性悪いんじゃないか説

macOS Catalinaに先日アップデートしました。 それ自体に問題はありません。 しかしUnityで開発中時々登場するダイアログ↑。 Developer Tools Accessは、デバッグを続行するために別のプロセスを制御する必要があります。これを許可するには、パスワードを入…

AndroidがUnityProfilerにつながらない時にチェックした5つの事

環境 Windows10 Unity2019.3.15f1 Pixel3XL UnityProfilerに実機のAndroidをつないでテストしたいときにつながらない!!っていう時が発生したので、その対応をログっておきます。 ※有線(USBケーブルにつないで)テストです そもそも実機ビルド出来ない時の対…

uGUIのCanvasGroupがしている事とは何か?

全子要素のアルファを一括で操作できるため、uGUIのCanvasGroupコンポーネントはUnityでUIを作る上で重宝しています。 ところCanvasGroupはどのようにしてアルファを適用しているのかを確認しました。 というのもuGUI用のシェーダを開発する上でCanvasGroup…

シェーダバリアントが多く作られるシェーダの最大使用メモリを計測する

Unityでキーワードを追加して処理を分岐させながらシェーダを書いていくと、知らず知らずのうちにシェーダバリアントが大量に増えることがあります。シェーダバリアントを作成するためには#prgama multi_compileまたは#pragma shader_featureを追加だけなの…

UnityからiOSビルドしてXcodeで実行したらトラブったのでそのメモ

環境 macOS HighSierra 10.13.6 Unity2019.3.0f6 Xcode10.1 iPhone6s iOS10.3.1 はじめに 久々にXcodeの実機デバッグをやりたくなりました。 そこでUnityからiOSビルドしてXcodeで実行すると期待通り?1発では上手くいかなかったので、今回の対応ログを残し…

知っておいた方が良いUnityのProject検索窓の小技

最近ブログを書いていなかったので、リハビリがてら小ネタを投下します。 僕はそこそこの頻度でUnityのProjectの検索窓を使用します。 HogeButtonというファイルを検索する場合 みたいな感じで入力します。 HogeShibuya24Buttonというファイルを検索する場合…

TexturePackerで画像を追加する際のちょっとした効率化Tips

Unityでゲーム開発中アトラスを作成する際によくTexturePackerを使用します。 アトラスとは複数の画像を一枚の画像と座標情報をセットにして書き出したもので、CPU負荷削減のために使用されます。 本記事ではTexturePackerで画像追加時の効率化アップTipsを1…

Unityからmicro:bitへ無線通信する方法

以前micro:bitを入力デバイスとしてUnityに無線通信で送信するサンプルを作りました。 今回はUnityを入力デバイスとしてmicro:bitへデータを送信してみます。 準備するもの Unityインストール済みパソコン micro:bit 2個 処理の流れ C#側からUSBにつながった…

RiderがUnityの.NET4環境を認識しない場合の対処法

UnityのPlayer Settingsの.NET4.xに設定を変更すると、Rider側が認識せずコンパイルエラー状態になりコード補完が効かなくなりました。 ※ただし、Unity側は正常にコンパイルは通ります。 Unityの設定画面で解決 UnityのPreferences > Riderから、Override Ta…

開発初期に暇を持て余しているUnityエンジニアができる42のTips後編

※前編はコチラ 開発初期に暇を持て余しているUnityエンジニアができる42のTips前編 - 渋谷ほととぎす通信 ※2020年版のアドベントカレンダー書きました!! 【Unity】新規ゲームのUI開発で気をつけた39のTips前編 - Qiita 【Unity】新規ゲームのUI開発で気を…

Prefabモードのまま再生すると編集中のPrefabも実行されてしまう気がした件の検証

Prefabモードのまま、シーンを実行するとPrefabモードのスクリプトが動いているような気がしたので確認しました。 手順 条件付きで動く時がありました。 Prefabモードにする [ExecuteInEditMode]をくっつける シーンを再生する すると、Prefabモードのスクリ…

DOTween実行時警告 : An error inside a tween callback was silently taken care of ~~► Index was outside the bounds of the array.の対処法

DOTWEEN ► An error inside a tween callback was silently taken care of (Void \<HogehogeMethod>b__21_0(Int32)) ► Index was outside the bounds of the array. DOTweenでこういう警告が出て困っていたのですが、DOTweenが悪いわけでありませんでした。(大抵悪いのはコー</hogehogemethod>…

開発初期に暇を持て余しているUnityエンジニアができる42のTips前編

本記事は、サムザップ Advent Calendar 2019 #2の12/11の記事です。 ※後編リリースしました 開発初期に暇を持て余しているUnityエンジニアができる42のTips後編 - 渋谷ほととぎす通信 ※2020年版のアドベントカレンダー書きました!! 【Unity】新規ゲームのU…

Unity PolygonCollider2DのEditColliderができなくなる条件

UnityのPolygonCollider2Dはインスペクタからドラッグで感覚的にコライダーのメッシュを作ることができます。 ピンクの枠部分をクリックすると、シーンビューにコライダーのハンドルが表示されます。 このようにSpriteRendererで表示している2Dオブジェクト…