渋谷ほととぎす通信

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

Unity

UnityのシェーダLODを試す

今回は実は使ったことなかった機能シリーズ、「シェーダLOD」を試してみます。 Unityでシェーダを書いているとよく目にするLOD 200のような値。 これはシェーダ自身でLODを使用する際に使うLOD値です。 例えばLOD 200のサブシェーダが実装されているなら、Sh…

Riderのコードフォールドをデフォルトで解除する

Rider小ネタ。 Riderのデフォルト設定がコードフォールドを適用しています。 ※このような左側の+,-ボタンでフォールドされる 僕自身あまりコードフォールドをしない方が作業効率が良いです。 (いちいち閉じたものを開くのが面倒くさい & コードを隠すメリッ…

Unityちゃんシェーダを読んでまとめた

最近3Dキャラの肌の表現に興味が湧いていて、とりあえずちゃんと読んでいなかったUnityちゃんシェーダの肌部分を読んでみました。 以下、その備忘録となります。 読んだ部分というのは、Unityちゃんアセット同梱のCharaSkin.cgのfrag関数内です。ここに肌の…

transformの取得に最適化がされていた件

最近多い、ふと気になったシリーズです。 昔(2~3年前)はtransform.localPosition = Vector3.zero;のようにtransformプロパティは直接アクセスすると、GetComponent()が内部的に実行されていて、処理負荷的に重いからキャッシュした方が良いよ!っていう話を…

UnityEngine.MathfとSystem.Mathどっちを使うのが良い?という話

ふと気になったシリーズです。 Unityを使っていると、ありがたいことに様々な便利関数がラップ、または拡張追加提供されています。 例えばC#の算術関連クラスであるSystem.Mathをラップ & 拡張しているUnityEngine.MathfというものがUnityでは提供されていま…

UnityタイムラインのAnimationEventを受け取る方法と罠

UnityのタイムラインとAnimationEventを組み合わせた場合の備忘録。 AnimationEventを仕込んだAnimationClipを用意 AnimationTrackに先のAnimationClipをセット この場合、どうやってAnimationEventを受け取るか? PlayableDirectorではなくAnimator側で受け…

Unityのスケール1とMayaで書き出したFBXのスケール1を一致させる方法

ゆっくりとMayaを勉強していますが、あらためてMayaで書き出したFBXファイルをUnityにインポートした際のスケールのルールについて確認しようと思います。 Maya Unity 上図のように可能であればMayaの1とUnityの1を同じサイズにできたら、Maya Unity間のワー…

良い使い所求むC#の変換演算子

C#にはimplicit変換演算子というものがあります。 これを使用すると型をキャストすることなく変換できます。 テストコードはコチラ Hoge型 が int型 へ int型 から Hoge型 へ キャストすることなく変換しています。

Unity SetTargetBuffers、Blit、SetRenderTargetの関係性の謎にせまる

世界ふしぎ発見を見ながら記事を書いていたのでタイトルが影響を受けております。 2017年も残りわずか、この記事が今年最後の投稿になるかもしれません。来年もよろしくお願いいたします。 では本題へ camera.SetTargetBuffers Graphics.Blit Graphics.SetRe…

Unity2017.3のAssembly Definitionがコンパイル時間短縮の救世主になりそうな予感

Unity2017.2までは、各ソースはディレクリ命名ルールから以下の4種類のAssemblyファイルが生成されていました。 Assembly-CSharp-firstpass.dll Assembly-CSharp-Editor-firstpass.dll Assembly-CSharp.dll Assembly-CSharp-Editor.dll 詳しくはコチラをどう…

UnityARKitPlugin使用時uGUIが使えない問題

uGUIではなく3年ぶりくらいにNGUIを一時的に使うことになったのだけど、よく出来てるアセットだ。。。(今更orz— bao_bao_ni (@bao_bao_ni) 2017年10月12日 本記事は私のこのツイートについての詳細を紹介します。 UnityARKitPluginはiOS11から提供されている…

Unityでバイブレーションネイティブプラグインを書く

UnityからiPhoneのバイブレーションを扱うAPIを調査しました。 Handheld.Vibrate (); このようなメソッドが用意されています。 しかし、バイブレーションの長さを制御する機能はリファレンスにありません。 https://docs.unity3d.com/ScriptReference/Handhe…

Unityの動画アセットのポストプロセス方法

複数の動画ファイルをUnityプロジェクトにインポートしたタイミングでトランスコードしたくなる時があると思います。はい、先日の私の状態です。 動画ファイル未同梱 のgit管理されたUnityプロジェクトをアプリビルドした時の話です。 ジェンキンスのジョブ…

UnityとObjective-Cのやりとり文字列編

本記事は前回からの続きに当たります。 Unityでネイティブプラグインを作る上でint型のやり取りは、すんなり成功したのですが、String型でハマってしまったのでメモ。 やりたいこと ネイティブプラグインの関数を実行すると文字列を返却してログ出力する 失…

SVGImporterをUnity2017で正常に動かす方法

おそらくUnity5系までは正常に動作していたSVGImporter。 SVGImporterとは、SVG1.1形式保存したSVGファイルをベクターデータとしてUnityに取り込み、メッシュ化し、ベクターデータのように扱うことが出来るアセットです。

EditorSceneManagerのGetSceneManagerSetup関数挙動

GetSceneManagerSetup関数は公式でこのように説明されています。 SceneManager の現在の SceneSetUp を返します。 もう少し噛み砕くと、ロードされているシーンの状態オブジェクト(SceneSetupクラス)の配列を返却します。

UnityとObjective-Cのやりとり

UnityとSwiftのやり取りを進めていたのですが、なかなかうまく行かなかったので、一旦初心に帰り、Objective-CとUnityのやり取りを確認しようと思います。 とても簡単なUnityのネイティブプラグインの作り方 - 渋谷ほととぎす通信 この辺りの記事を思い出し…

アセットバンドルの破棄について

アセットバンドル関連の続きになります。 アセットバンドルのアンロード処理について調べておきます。 以下はStreamingAssetsに格納されたAssetBundleをロードするサンプルコードです。 ※エラーハンドリングなどの処理は無し

そろそろUnity2017のTimelineの基礎を押さえておこう

Unity2017.1.0で正式リリースを迎えたTimelineをそろそろちゃんと理解しようと思います。 最初に大雑把な概念図を作ってみました。 ◆Timeline全体 ◆各種Trackの中 TimelineはPlayableDirectorコンポーネント、Playableオブジェクト、各種Trackで構成されてい…

Unity2017.1.0f3ではConsole Enhancedが対応していません

以前紹介したとても便利なアセットConsole Enhanced。 残念なことに2017.7.27段階ではUnity2017.1.0f3には対応していないようです。

最初理解しづらいReplaced Shadersの仕組み

Unityには結構前からReplaced Shadersという機能が提供されています。 これは特定のシェーダを置き換えてくれる便利機能です。 Unity - マニュアル: Replaced Shaders でのレンダリング 私自身結構前からこの機能の存在は知っていたのですが、リファレンスを…

アセットバンドルに複数のアセットを格納して取り出す

今まであまりアセットバンドルを作る事がありませんでした。 個人で小規模ゲーム作る時にわざわざアセットバンドルを用意することはありませんでしたし、仕事でもそういう担当になることはありませんでしたので、試しにやってみておきます。

Unity2017.2.0b2, b3の気になる更新

Unity2017.1.0が正式リリースして間もないですが、ベータバージョンは粛々と更新が入っています。 本記事では私個人が気になる修正内容をピックアップしています。 Unity - What's new in 2017.2.0 Beta 3

【解決済】Unity2017.1f1ではMissing ComponentをGUIから解決できない件

※本件は先日リリースされた Unity2017.1f3で修正されていることを確認しました。 The referenced script on this Behaviour (Game Object 'Hoge') is missing! Unity外でファイル名を変更などするとmetaファイルが書き換わり、上記のMissingコンポーネントと…

DOTween v1.1.605アップデート時の注意

DOTweenが2017.6.3に1.1.605にgithub上でアップデートしています。 [bugfix] Fixed Shake and Punch tweens returning NaN values if duration was set to 0 (now they just warn you and don’t create any tween) というバグ修正です。 ShakeとPunchがdurat…

Unity2017.1.0f2のリリースノートf1との差分確認

Unity2017.1候補版の第2弾がリリースされました。f1との差分を見ていきます。 unity3d.com

Unity2017.1.0f1のリリースノート日本語訳 その3

正式リリース候補版2017.1.0f1がリリースされました。 前回に引き続きAPI Changesを見ていきます。 リリースノートの2017.1.0f1 Release Notes (Full) API Changesを上から順番に確認していきます。 ※理解していないものは理解していないと記述しています。 …

Unity2017.1.0f1のリリースノート日本語訳 その2

前回記事に続きUnity2017.1.0f1のリリースノートを確認していきます。 リリースノートを読むだけでは分かりづらい事を調べて画面キャプチャなどで紹介するという趣旨もありつつ、読んでも全く理解出来ていないものもあります。 今回はImprovemets(改善項目)…

Unity2017.1.0f1のリリースノート日本語訳 その1

正式リリース候補版2017.1.0f1がリリースされました。 改めて何が追加・修正・変更されたのかを確認していきます。 リリースノートを読むだけでは分かりづらい事を調べて画面キャプチャなどで紹介するという趣旨もありつつ、読んでも全く理解出来ていないも…

Unity GameObjectRecorderが面白いかもしれない

先日Unity2017.1の正式リリース候補バージョンがリリースされました。 改めてリリースノートを読んでみました。 気になった追加機能GameObjectRecorderを調べてみます。 Animation: New GameObjectRecorder in UnityEditor.Experimental.Animations リリース…