渋谷ほととぎす通信

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

Unity

CinemachineVirtualCameraが認識されなくなったときに見落としがちな2つのチェックポイント

UnityのCinemachine使用中に時々CinemachineVirtualCameraがCinemachineBrainに登録されなくて、アクティブにならないということが起きました。 そんなときにチェックしておきたいポイント2点をメモしておきます。

Unityとmicro:bit間のシリアル通信におけるResource busyトラブル

この辺りの文脈から最近micro:bitを触りだし、自分の子供と甥向けになにか作ってやろうと思っている次第です。 microbitで娘と夏休みに電子玩具をつくってみよう。とりあえず、サーボモーターあたり注文done #大人の夏休みの宿題— bao_bao_ni (@bao_bao_ni) …

SpriteAtlas、SpritePackerどちらも一括でアトラスサイズを変更できるわけではなかった話

僕の勘違いの共有みたいになりますが。 最近のUnityの主流?のSpriteAtlasでは個別に書き出したSpriteをアトラスにパックした後、アトラス全体のサイズを変更できるのかなって思っていたんですが、そうではなかったんですね。

SpriteAtlasは引き続きAllow RotationとTight Packingは使用できません

SpriteAtlasの不具合が引き続き継続中のようで、Unity2018.2.0f2でもAllow RotationとTight Packingにチェックを入れると表示が崩れます。チェックを外せば表示崩れは起きなくなります。 今回はUnity2018.1.0f2から2018.2.0f2にアップデートした際に、Sprite…

Unity2018.2.0f2にアップデートした際のエラー対応

Unity2018.1.0f2からUnity2018.2.0f2にアップデートした際のエラー対応備忘録です。 ※皆が皆起こるエラーではありません。環境によっては起こります。 An error occurred while resolving packages: Package com.unity.cinemachine@2.1.12 has invalid depen…

Unity スクリプトでMultipleのSpriteを取得する

このようなテクスチャを用意し、 Texture TtypeをSprite (2D and UI)に設定。SpriteModeをMultipleにします。 Projectブラウザを見るとこのようにテクスチャにぶら下がる形でSpriteが並びます。 ※Sprite Editorでスライス処理は割愛しています このようにテ…

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コンポーネントと…