太郎Work

Unityとかで困ったこと等を残しておきます

GenerateHLSL完全に理解した

GenerateHLSLとは? RenderPipelineのコードを見ているとあちこちで見かけるAttributeで、名前からして自動生成? 便利そうなので調べてみたのですが一切記事が出ず、公式リファレンスもほぼ説明がないのでまとめました Unityは2021.3.14を使用していますdoc…

Unity2021.2のOverlay機能を使う

Overlay機能 Unity2021.2からSceneView上の要素はOverlayというものに置き換わり、自由に配置を動かせるようになりました。 ParticleSystemを選択したときのウィンドウも↓こんな感じになっていて左上をドラッグすることで自由に動かすことができます Particl…

フレア処理を高速化した話

この記事はQualiArts Advent Calendar 2020の20日目の記事になります。 昨日は 無料のDataformでBigQueryにおけるデータ加工のDXを改善して幸せになろう - Qiita でした はじめに 現在開発中のプロジェクトではUniversalRenderPipeliene(以下URP)を使用し…

ShaderGraphのPBRMasterNodeを拡張してみた

UniversalRPには標準でPBRMasterNodeがありますが、Fogの処理を変えたかったりほんの少し処理変えたかったりしたかったので自作のMasterNodeを作ってみました 速攻で仕様変わっていたらすみません... Unity2019.4+ShaderGraph7.5.0+UniversalRP7.5.08/24追記…

Timeline関連メモ

何かあったら追記していきますTimelineでカスタムトラックを作成したときにcurves編集ボタンを出す条件 AnimatedParameterUtility.cs内に実装があった IPlayableBehaviour を実装したクラスのフィールドを必ず持つ必要がある static FieldInfo[] GetScriptPl…

EnterPlayMode時にNativeArrayのエラーが発生する

Unity2019.3.1f1の時点です再生までの時間が早くなるEnterPlayModeを使用すると NativeArrayアクセス時に↓このエラーが発生しますInvalidOperationException: The NativeArray has been deallocated, it is not allowed to access itExecuteAlwaysを指定して…

UnityTimelineのTrackをスクリプトから入れ替える

現在Timeline関連の実装をしているのですが、Trackの順序をスクリプトから入れ替えたくなったのでメモ 多分こんなことしたい人いないと思うので需要ゼロです入れ替えたい理由はPlayableOutputの接続順をプログラム的に変えたかったためです本来はWindow内でT…

VFXGraphで星空を描画してみた

はじめに 本記事は QualiArts Advent Calender 2019 24日目の記事になります。 昨日は @ogrszk の 「Spineでできること〜エディタのTipsとAPI使用例〜」でした 星空Unity2019になり、UniversalRenderPipelineなど新機能が追加されましたが、その中の一つであ…

Unity2019時代のパッケージ管理

今までのUnityでは .unitypackage を使用したり Assets 以下にGitのSubmoduleで管理するといった方法がありましたが、やっとPackageManager周りが実用的になったので個人的に良いなと思ったフローを紹介します今回の記事は2019.1.3で作成しています。今後仕…

UnityEditorのGameViewが更新されない時の対処方法

非実行時にEditorスクリプトからHierarchey内のオブジェクトに変更を加えても UnityEditor全体に対しての更新通知が行かないため、SceneView,GameViewの描画更新が行われないViewサイズを変える、Inspectorから変更をする等をすれば更新されるがすぐに確認し…

GetComponentの負荷検証

気になる内容の記事があったので検証してみました qiita.com 気になる点 Dictionaryのインデクサを使用している←TryGetValueを使用しないと負荷が高い(ソースは忘れた…) transform.Rotationの実装次第ではあまり検証になっていない…気がする ちょっと修正…

Unityを使って水っぽい表現作ってみた

今GravityDAZE2をやっているのですが、水表現が面白いことになっていたので自分でUnityを使って実装してみました水https://t.co/nvvfGaXU1g pic.twitter.com/fxkgM5oWpV— 渡邉太郎 (@taro_b19) 2017年1月29日 背景が殆ど無いので分かりにくいと思いますが… …

UnityEditor再生開始時のイベント取得

UnityEditor再生時のイベント 実行、非実行時でモデルプレビュー出来るツールを作成しているのですが、再生時にモデルを一旦リセットして再生成するスクリプトを作成したい ということでこんなスクリプトを書くと ここのボタンを押す度にOnPlayModeStateChan…

Unity5.3でExecuteInEditModeとDontDestroyOnLoadを同時に使用した際の挙動

Unity5.3にアップデートしてかなり発見しにくいバグ?を見つけたのでメモ 問題 [ExecuteInEditMode] public class Test : MonoBehaviour { void Awake() { DontDestroyOnLoad (gameObject); } } こんなクラスがあった時にEditor上でHierarchyにスクリプトを…

ScriptableObjectのメンバリネーム

ScriptableObjectを使用している時に変数定義を変えたくなることがあると思います。 例えばpublicで定義していたけどやはりprivateのSerializeFieldにしてスクリプトからは読み込み専用にしたくなった等 その時は [System.Serializable] public class Data {…

コマンド引数を指定しつつUnityを複数起動する方法

クローン後の初プロジェクトオープン時PC&Macでプロジェクトが開かれてしまい、そこからiOSにswitchPlatformするのも時間がかかりすぎるのでコマンドラインから起動する方法 そして複数起動も出来る方法です open -n /Applications/Unity/Unity.app --args -…

ターゲットの周りをくるくる回るサンプル

なんとなく作ったので記事にします gist.github.comターゲットの周りを常に一定間隔で回るサンプルです。カメラのコンポーネントに付けてみてください クォータニオン先輩使えば回転量定義できて座標変換が簡単に実装できます。

UnityEditorのObjectFieldでフォルダのみ入れる

もっと簡単な方法あれば教えて下さい>< Object folder; var newFolder = EditorGUILayout.ObjectField (folder, typeof(Object), false); var path = AssetDatabase.GetAssetPath (newFolder); if (AssetDatabase.IsValidFolder (path)) { folder = newFol…

AssetBundleメモ

Unity5.1.0での話 AssetBundle.CreateFromFileはエラーになって動かない ビルド時は出力フォルダの.manifestファイルを参照しているためファイルをリネームすると再ビルドが走る AssetBundle本体のファイルが存在しているかどうかのチェックはされていないの…

MementoBeta使ってみた

Mementoというサービスを使用して適当なフィギュアから簡易的に3Dモデル化してみました。 WebPlayer版 Unity Web Player | Figure Memento 少し前ですがMementoというサービスがベータ版で公開されたので少し試してみました。 Autodesk Memento 簡単に言うと…

Vector3.magnitudeの負荷について

きっかけ とある実装でC#処理負荷が非常に高く困っていたのですが、C#の実行速度が遅いからと考えていました。ふと、magnitudeの平方根計算が非常に高負荷になっているのではないかと思い、検証してみました。A,B2点間の距離を出す式は以下のようになり、公…

SetReplacementShaderの使い方

公式の説明が全く意味不明だったのでメモ Unity - Manual: Rendering with Replaced Shaders Unity - Manual: Rendering with Replaced Shaders カメラに映る全体を単一シェーダで描画したい場合は呼び出すだけ。 camera.SetReplacementShader (shader, null…

UnityのArialフォントがAndroid実機上で表示されない場合がある

問題 Unity上のシステムフォントテキスト設定でデフォルトのArialのままAndroidビルドを行った場合、 確認できただけですが、LG-02E, GalaxyS5で日本語フォントが表示されない問題があります。 理由 どうやら挙動的にはDroid Sansというフォントがロードされ…

Unityの端末向き設定

随分前に調べて忘れないようメモUnityiOS,Androidで横向きのアプリを作成する際、PlayerSettingsから回転設定を指定しますが、 一方向固定又は自動回転しか設定ができません。Landscape Right Left 的なものが欲しいのですが複数選択できません。その場合最…

Sublime Textで改行を置換する

Sublimeで改行コードを置換したかったが日本語の情報が見つからなかったのでメモ二通りの方法がある1. Regular Expressionにチェックを入れて\nを入力 2. Command+Enterで改行を直接入力 あとは置換後の文字列を入れてReplaceするだけ

Unityステンシルでポストエフェクト

前回の記事ではステンシル情報を用いてアウトラインを表現しましたが、 せっかくステンシル情報を書き込んだのでポストエフェクトにも応用してみました キャラクターだけモザイク処理 ステージのみモノクロTerrainの草にシェーダを指定する方法が分からなか…

Unityでステンシルを用いたアウトライン表現

最終的にこんな感じになります。 WebPlayer版 Windowsで見ると表示がおかしい可能性があります Stencil Test はじめに なぜ急にアウトラインかというときっかけは白猫プロジェクトでした。 遊んでいて真っ先に気になったのがタイトルにもあるキャラクターの…

NGUIではないオブジェクトをNGUIの手前に描画するスクリプト作ってみた

以前の投稿でNGUIではないオブジェクトをNGUIの手前に描画する方法 - 太郎Workこのような記事を書きましたが、ParticleSystemやメッシュを手前に持ってきたい場合や任意の場所に挟みたい場合は非常にめんどうでした。やはりNGUIのdepthで管理したくなったの…

WWWクラスでBASIC認証

WWWを用いてBasic認証をする場合少しつまずいたのでメモ https://docs.unity3d.com/Documentation/ScriptReference/WWWForm-headers.htmlここにまさにBasic認証の方法が書かれているがこのまま書くとPOSTリクエストになってしまう GETでリクエストを送る場合…

ノイズエフェクト作ってみた

とある理由で思い立ったので勉強も兼ねてモニターノイズ風エフェクトを実装してみました https://googledrive.com/host/0BzRQHdfTLNehbVRHaF9DVElDYzA/NoiseWeb.html手順 RenderTextureなのでPro必須まずはユニティちゃんに登場してもらいます OnRenderImage…