渋谷ほととぎす通信

完全趣味でやってるUnityメモ。説明できないところを説明できるようにするための個人ブログ。昨日の自分より少しでも大きくなれるように。。。 ※所属団体とは一切関係がありません

渋谷ほととぎす通信サイトマップ

サイトマップは移動しました。 www.shibuya24.info 以下古い情報です。 シェーダ関連 シェーダ表現実験系 GLSL Sandboxを移植して遊ぶシリーズ シェーダ仕様調査系 動的にメッシュを作るシリーズ DOTween関連 チューニング関連 UI関連 アセット紹介 その他

Unityのアルファテストがレガシーなものになっていた件

アルファテストとは、ピクセルのアルファ値で判定して描画可否を決めるコマンドで描画される直前で行われます。 AlphaTest "比較文字列" "比較するアルファ値" という構文で比較文字列は以下の8種類あります。 Greater : ピクセルのアルファ値が AlphaValue …

SubShaderとPassの中で使用できるTagリスト

Unityのシェーダ ShaderLabのSubShaderセクション、Passセクションには、どちらもTagを設定することができます。 ただ、どちらも専用Tagです。 目次 SubShaderの中でしか使えないTag DisableBatching CanUseSpriteAtlas PreviewType Passの中でしか使えないT…

Importing small Assetsでいつまで経っても起動できない

Unity5.6.0f3で作っていたものをUnity5.6.1f1で開き直した時のトラブルメモです。 Importing small Assetsで必ずフリーズして起動できない事案が発生しました。とても深刻です。

Unityで輝度を考慮しないBloom

前回に引き続きイメージエフェクトやります。 今回はBloom(ブルーム)です。 Blooming (ブルーム)とは明るい光源(例えば、閃光のような)からの光が周囲の物体に漏れるように見える光学効果である。 Unity公式より 個人的にはBloomは画作りには欠かせない…

横にずれるノイズ風イメージエフェクト

前回からの続きで、今回はノイズのイメージエフェクトを作ってみます。 ノイズと言っても様々なものがありますが、今回はこのようなノイズを作ってみました。 ※名前が分かりません 画面トランジションや、キャラの登場などで使えなくもない気がしています。

イメージエフェクトドリル : カメラブラー

以前から読もう読もうと思っていた、コチラの西川善司さんの本。 「ゲーム制作者になるための3Dグラフィックス技術」 最近詐欺が横行しているAmazonマーケットプレイスで無事に購入しました。 ゲームの3D技術の歴史から、各機能の実装方法について分かりやす…

Unite 2017 Tokyoの後から見ておきたいスライドまとめ

※動画リンク追加する上でレイアウト修正中です。 Unite2017Tokyoお疲れ様でした。 全部で60以上のセッションがあったようで、ありがたいことに、ほとんどのセッションスライドと動画が公開(または後日公開)されるので、トレンドを掴む、技術向上のために、特…

Unity デプスシャドウ技法を自前で書いて影を落としてみる

オブジェクトの影を落とす時、ShadowCasterを設定する、または、設定されているシェーダ(Standardシェーダ、Diffuseシェーダなど)を使うことがUnityでは最もお手軽な方法だと思います。 影の描画って実際どうなっているかを調べました。 デプスシャドウ技法 …

お手軽ソフトボディ制作アセットVertExmotionの紹介

環境 Unity5.5.2p2 VertExmotion 1.4.2 セールの時に購入したまま寝かせていたアセットVertExmotion Proをようやく触りましたのでその感想を共有します。 VertExmotionとは?

ToArray、ToListを呼ばない工夫をする

今回も小ネタです。 時々以下のようなコードに出会います。 void Foo () { List<int> list = new List<int>(){0, 1, 2, 3, 4,5, 6}; Convert(list.ToArray()); } void Convert (int[] arr) { // Do Something.... }</int></int>

なぜドローコールバッチングされないか、理由を知る方法

Unity5.6からフレームデバッガに現在の描画と1つ前の描画が、ドローコールバッチングされない場合にヒントが表示されるようになりました。 ちなみにドローコールバッチングとは、複数のメッシュまとめて、1回のドローコールで描画することを指します。 ※全て…

UnityでOSCを使って通信する

UnityでOSCやってみます。 ググればこういった先人たちのありがたい情報が出てきますが、本ブログは知らないこと・分からないことは自分で書いてやってみることを重視しているので、参考にさせて頂きつつ自分で動かしてみます。 Unity OSCを使いOSCを送受信…

LINQとfor文のコスト検証

C#を使う上でLINQは非常に便利な機能なのは言うまでもありません。 しかし、実際のプロダクトへ組み込む際の負荷は知っておくべきということで、改めて調べてみたという記事です。 今回の検証対象は使用頻度が高いフィルタ系関数です。 FirstOrDefault Any W…

Unityエディットモード中にコルーチン処理を走らせる

エディットモード中(再生していない状態)にサーバーからファイルをダウンロードしてゴニョゴニョしたいことがあります。 例えば、特定のキャラクター情報を保持したJSONをダウンロードして、ローカルに保存し、それを元にキャラクターのアニメーションや設定…

Unityシェーダのマクロとマルチコンパイル

シェーダ内で#define マクロ名(引数) 処理という文法でマクロを書くことが出来ます。 マクロとはCやC++でよく出てくるインラインで展開されるアレです。 UnityCG.cgincの中身を眺めているとよく出てきます。 眺めることはあっても書いたことはなかったので、…

自分の書いたC#がどのようにコンパイルされてDLLになっているのかを確認する方法

自分が書いたC#コードはdllにコンパイルされる前に変換処理が入ります。 どのような形でDLLにされているのか気になると思いますので、MonoDevelopで確認してみます。 View > Pads > SolutionからSolutionパネルを開きます。

ShurikenにSkinnedMeshRendererとNoiseを適用した表現

ParticleSystem(以下:Shuriken)には、Unity5.3からShapeモジュールにSkinnedMeshRendererを設定できるようになりました。これによりアニメーションするMesh上からパーティクルを発生させることが出来るようになりました。

ヒエラルキー内で特定のコンポーネントがアタッチされているオブジェクトの検索方法

完全に忘れやすい私のための記事です。 下記の案件をいつも忘れてしまいます。 Unityエディター豆知識:Hierarchyビューの検索窓に「t:クラス名」と入力すると、シーンにあるその型のコンポーネントがアタッチされたオブジェクトだけが表示されるようになる…

スクロールをアルファブレンドしたイメージエフェクト

環境 Unity5.5.2p2 前回に続いてイメージエフェクト記事です。 今回は前回のスクロール処理にアルファブレンドを加えたら面白い表現になりましたという内容です。 まずは成果物から

無限スクロールイメージエフェクト

環境 Unity5.5.2p2 以前にもGLSL Sandboxを移植してイメージエフェクトを書いて遊んでいたのですが、あまり深く理解せず、とりあえず触っていただけでしたので、今年はじっくりと理解しながら書いていく年にしていきたいと今は思っています。 今回は私が尊敬…

Unity Profiler小技集

検証環境 Unity5.5.2p2 Unity5.5.1p2 Unity5.4.1p4 Mac OS 10.11.6 先日公開されたテラシュールブログさんのProfilerについての有用な記事。 tsubakit1.hateblo.jp 乗っかる形で私が知ってるProfilerについての小ネタを紹介します。 任意の処理のCPU負荷を調…

serializeObjectを使用しないReorderableListを作る

環境 Unity5.5.2p4 あまり頻度高くは使用しいないけど超絶便利なReorderableList。 このような結構複雑なUIをサクッと作れるのには感動すら覚えます(これをフルスクラッチで書くとか…)。 ReorderableListとは、公式リファレンスには載ってはいませんが、ネッ…

Unity Prefabの中身を読んで参照関係を正しく理解する

環境 Unity5.5.2p2 先日Prefabファイルのテキストの中身を読む機会がありました。 じっくりと読んでみて自分自身理解が出来ていない部分があったので、調べながらまとめてみます。

Unity タイムラインエディタPreview版を触ってみる

Unity2017版を執筆しましたので、こちらをどうぞ↑↑ 環境 Unity5.6.0b6 Expremental TimelineEditor Preview Release1 tsubakit1.hateblo.jp テラシュールさんの記事で知りましたが、タイムラインエディタ がExperimental Preview Release1としてリリースされ…

シェーダプロパティアクセスが2.5倍早くなるPropertyToID関数

Materialの任意のプロパティを操作をする際に、 SetFloat SetTexture SetInt SetColor… などの関数を使用します。 文法的には material.SetFloat("_Prop", 100f); のように、第一引数にプロパティ名をString型、第2引数に値を渡します。また、オーバーロード…

DOTween1.1.570リリース Restart関数に追加パラメータ

DOTween1.1.570からRestart関数の第3引数にDelay値を入力できるようになっている模様。0より大きい値を入れると遅延実行されます。 "Added optional "changeDelayTo" param... https://t.co/OicUDLVKAQ pic.twitter.com/jsUnDq9nJX— bao_bao_ni (@bao_bao_ni…

BindingFlagsは一旦これだけ覚えておこう

環境 Unity5.5.1f1 Unityの隠蔽関数を調べたい時がよくあります。 そんな時リフレクションを使って関数や変数を調べることが多いです。 リフレクション使用時にBindingFlagsを使うわけですが結構種類があり、どれを使ってよいのか忘れてしまうので整理してお…

Unity5.6からBuild PipelineのAPIに変更が入ります

Unity5.6.0b6のリリースノートにこのような修正が含まれています。 Build Pipeline: Changed ‘Application.bundleIdentifier’ to ‘Application.identifier’ and ‘PlayerSettings.bundleIdentifier’ to ‘PlayerSettings.applicationIdentifier’. These now ap…

Unity パラレルコルーチンの実装方法

環境 Unity5.5.0p4 複数同時にコルーチンを実行して終了を待つといった処理をしたいときがあります。 そんな時、私は以下のようなコードで実装します。 軽く説明をすると、9行目のStartParallelCoroutineの引数にIEnumerator型の配列を渡すだけです。 第2引…