テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

何の役に立つのかよく分からんシリーズ

【Unity】Unityエディターを拡大表示する

文字が小さくて読めない UIのサイズを変更する 変更方法 感想 文字が小さくて読めない Unityで文字が小さくて読めんという話を稀に聞きます。実際文字が小さい事もありますし、Pro Skinは色的にサクッと認識出来ない事も多いです。また、異様に小さいボタン…

【Unity】構造体のデータを異なる型に「再解釈」する

DOTS…特にECSで色々とやっていると、内部のデータは同じなのに型が違うせいで変換しないといけないというケースがあります。 例えば float のバッファを流し込んでバッチ処理を行うAPIがあった時、ローカルのデータで NativeArray<FloatData> のような構造体の配列は直</floatdata>…

【Unity】LWRPで特定のモデルのみポストプロセスがかからないようにする

一部のモデルにだけ、色あせるポストプロセスをかけない 昨日の応用で、一部のモデルにだけポストプロセスがかからないようにします。 一部のモデルだけポストプロセスの影響をかけないようにする 手順 注意点 一部のモデルだけポストプロセスの影響をかけな…

【Unity】2019.2で追加されたTryGetComponentについて

Unity 2019.2から、TryGetComponentというAPIが追加されました。何時も通りGetComponentで取得する際、なんか見覚えがないAPIがあってビビったのはここだけの話。 TryGetComponent パフォーマンスは? TryGetComponent 今まで「コンポーネントが割り当てられ…

【Unity】LWRPのライトで †暗黒の光† をしたかった

今回は昨日チラっと書いた、暗闇をライトで表現するアプローチについてです。 意図的に暗い空間を作る ライトの減算設定を登録 実際に暗黒の光を発する発光体を配置する 注意点 意図的に暗い空間を作る ステージを作るとき、 重要である事を示すために明るく…

【Unity】IJobParallelForFilterというAPIについて

UnityPackageのJobについてくる2つのAPIの内の一つIJobParallelForFilterとは何ぞや? という事を追ってみました。 オチ Jobsパッケージの2つのAPI ScheduleAppendで要素をフィルタリングしてScheduleFilterで実行する程度の能力 IJob「ParallelFor」Filte…

【Unity】ImmediateWindowで複数のMaterialの設定を一括更新してみる

今回はImmediateWindow(Preview)を使用して、複数のマテリアルの一括更新をやってみます。 正しい使い方では無いっぽいですが、正直な所すごくシックリする使い方でした。 Immediate Windowは開発効率を上げるツールではない それでもエディターの作業効率…

【Unity】ジョブシステム上でも動かせるNavMeshの経路計算(Experimental)

ECSのデモで使用されていた、ジョブシステムでも動かそうと思えば動かせるNavMeshのサンプルです。 ちゃんと解説しようとも思いましたが、正直使い所が思いつかないので適当になります。 NavMeshQueryを利用した経路探索 サンプルコード 大雑把な解説 感想 …

【Unity】Multi-Scene Physicsで、物理演算の世界を分割する

Unity 2018.3の目玉機能(???)の一つである物理演算周りの更新、その一つであるMulti-Scene Physicsについてです。 Multi-Scene Physics PhysicsScene単位で物理演算の速度を変化させる PhysicsScene単位でRaycast 使い方 面白い機能だね!どんな時に使えるの…

【Unity】CinemachineのClear Shotという機能

自分はCinemachineの機能は結構好きで、色々と遊んでみたりしているのです。それでもなお首を撚る系の機能「Clear Shot」についてです。 Clear Shot キャラクターが隠れた時に、見える位置にカメラを動かす 手順 キャラクターが近づいてきた時にカメラを切り…

【Unity】Enumeratorを使用して、List<string>から文章を一つずつ取り出す

今回はEnumeratorを使用して文章を一つずつ取り出していきます。余りに使わない技術なのでよく忘れるのですが、その度に思い出すのも面倒なのでココにメモしておきます。 リストから要素を取り出す そうだ、Enumeratorを使おう 使えるのはList 感想 関連 リ…

【Unity】Monobehaviourを継承したクラスをAddComponentボタン経由で追加出来なくする方法

「なんの役に立つのか分からない」裏技です。 Monobehaviourを継承したクラスは割と問答無用でAddComponentで追加することが出来るようになります。サンプルでコレを回避するコードを見かけたのでメモします。 やり方は単純で、[AddComponentMenu("")]をクラ…

【Unity】カメラを常に揺らしたり、だんだんと揺れを強化したりする演出

以前紹介したカメラを振動させるアプローチの少し異なるバージョンです。 tsubakit1.hateblo.jp 瞬間的ではない振動を表したい 連続した揺れはCinemachine Noiseを使う 振動の状態を切り替える(Timeline) 振動の状態を切り替える(Timeline以外) 瞬間的で…

【Unity】Unityでプレゼンテーション資料を作る

今回はUnityでKeynoteやPowerpointにあるようなプレゼン資料を作るプロジェクトの紹介です。 もはやPowerPointに切り替える必要はない… そうだ、Unityでプレゼン資料を作ろう 使い方を見てみる 発表者ノートは?プレゼンの残り時間の確認は? その他 もはやP…

【Unity】指定したCollider2Dへの最短座標を求める

今回は指定したCollider2Dへの最短座標を求める機能について紹介します。 指定したColliderへの最短距離の問題 指定したColliderへの最短距離を求める それで、これは何に使えるのかな? 関連 指定したColliderへの最短距離の問題 オブジェクトから指定したC…

【Unity】Terrainの負荷やらDrawCallやらを下げるポイント

Terrainは名前の通り地形を作る機能です。ちゃんと作れば、こんな感じのステージが作れます。…地面があり、草木が茂り、地面には段差がある。 パっと見、使い方は微妙な感じですが、メイキングは参考になります。 www.youtube.com さて、これを夢見て初期設…

【Unity】複数のオブジェクトの位置を元にオブジェクトを動かす、○○○Constraint系というオモシロ機能

Unity 2018で、Aim Constraint、Parent Constraint、Position Constraint、Rotatoin Constraint、Scale Constraintの5つのConstraint戦隊が登場しました。 この機能は、複数のオブジェクトの大きさや位置、向きを元に自身の位置を調整する機能です。 この機…

【Unity】IExposedPropertyTableを使った、アセット↔シーン間連携

今回はPlayableDirectorで使用しているIExposedPropertyTableを利用してみます。 正直言えば使える機能では無いように思いますが、この実装からTimelineのResolver運用周りを見直すことが出来たら幸いです。 IExposedPropertyTableはアセットからシーン内の…

【Unity】Timelineで敵の”出現タイミング”や”動き”を制御してみる

今回はUnity Advent Calendar 2017 のネタで、「Timelineがカットシーンを作るだけのツールではない事を教えてやる!という妄想を書きなぐる」内容です。要するに、TImelineでゲームの進行を管理してみようぜ!というお話 Timelineを動画作成以外に使用する …

【Unity】CPUプロファイラに表示されるの項目をスクリプトで取得する

プロファイラーに表示されるようなCPUの処理時間をスクリプトで取得する方法についてです。 プロファイラーは負荷の高い部分を観測する プロファイリングの結果をスクリプトで云々する RecorderでProfiler(CPU)の項目を取得 処理時間がやたら長くなったら…

【Unity】Audio MixerのSnapshotを殆どコードを書かずに変更する

やってみたら出来ちゃったシリーズ Audio MixerのSnapshotを、殆どコードを書かずに実行時に切り替えます。 Audio MixerのSnapshot Snapshotをコードを書かずに切り替える ボタン以外にも使ってみる 関連 Audio MixerのSnapshot 古の時代、Unity 5と呼ばれる…

【Unity】Animator Parameterというウィンドウ

何の役に立つのかよく分からんシリーズ 紹介する為に色々調べてみたけど、結局用途や使い道がよく分からん…という事でお蔵入りしてた項目も少しずつ紹介していこうと思います。 Animator Parameterというウィンドウ Animator Parameterウィンドウは何の役に…

【Unity】Position as UV1…とは

少し話題に登ったので、書いておきます。書かないと忘れる Position as UV1とは何ぞや Position as UV1は、UIに頂点情報を流し込むコンポーネント 実際にやってみる で、何の役に立つの? 関連 Position as UV1とは何ぞや Position as UV1というコンポーネン…

【Unity】AssetBundleをマネージコードのStreamから取得する

Unity 2017.2よりAssetBundle.LoadFromStreamとAssetBundle.LoadFromStreamAsyncが追加されました。 これで暗号化したAssetBundleをStreamから読み込んだり、独自圧縮したAssetBundleを読み込んだり…?うーん、出来るのかな サンプルコード 下のようなコード…

【Unity】CUIで行こう

ふと「Unityの操作はGUIがタルい」という話を耳にした。 宜しい、ならばCUIだ コマンドラインでいこう -batchと -quitと -nographicsは友達 プロジェクトを作ろう ソースコードやアセット群を用意しよう ソースコードを編集しよう シーンビューに物を置こう …

アプリ起動時に指定のメソッドを呼ぶ「RuntimeInitializeOnLoadMethod」に可能性を感じたが錯覚だった気が

追記版 tsubakit1.hateblo.jp Unityはゲームマネージャーを初めとした○○マネージャーを起動時にセットアップする事が出来ない為、多くの場合「○○マネージャーを作るマネージャー」をシーンに配置して、起動時にインスタンス化してもらう、起動用シーンを用意…

問題!Unityの「Projectビューのロック」は何に使う機能でしょうか?

UnityのInspectorにはロックボタンが有ります。このロックボタンでロックしている間、Hierarchyで他のオブジェクトを選択肢てもInspectorは変更しません。 これの応用で、三>Add Tab>InspectorでInspectorビューをもう一つ増やすと、2つのオブジェクトを比…