Hiko

xRエンジニア。テクノロジーで人生を楽しくしたい人。

Hiko

xRエンジニア。テクノロジーで人生を楽しくしたい人。

最近の記事

【Unity】OBSをWebSocketで外部から制御する

フリーの配信ソフトウェアとして知られているOBS StudioをUnityから制御してみます。OBSには外部から制御を行うための仕組みとしてWebSocketサーバが組み込まれています。このWebSocketサーバとUnityでやり取りすることで、ソースやシーンの切り替え、再生、停止など様々な操作を外部制御できるようになります。 環境Unity 2022.3.34f1 / OBS 30.2.3 1. 準備OBSのWebSocketサーバとはJSONフォーマットを使ってデー

    • 【Unity】URPのLitシェーダー改造

      前回の記事ではビルトインレンダーパイプラインのStandard Shaderの改造を行いました。一方、URPではStandard Shaderの代わりにLitシェーダーが光の影響を受ける標準的なシェーダーとして用意されています。今回はこのURPのLitシェーダーの改造を行ってみます。 改造する内容としては既存のLitシェーダーに対してグレースケールの効果を加えてみます。実用性よりは変更箇所の把握が趣旨となっています。 環境Unity 2022.3.34f1 / URP 1

      • 【Unity】StandardShaderを改造する

        StandardShaderはUnityに標準でビルトインされているシェーダーで、オブジェクトに対して光や影の計算を行ってくれます。今回はこのStandardShaderをカスタマイズする方法を解説します。 環境Unity 2021.3.4f1 Windows 10 1. StandardShaderのダウンロードStandardShaderはUnityにビルトイン(=組み込まれている)されているシェーダーのため、直接編集することができません。しかしながら、シェーダー自体

        • 【Unity】PPS v2 カスタムエフェクトを作る

          Post Process Stack v2(PPS)には予め用意されているいくつかのエフェクトを追加することで好みの絵作りをすることが可能になっていますが、自分で1からオリジナルのエフェクトを作ることも可能になっています。 PPSで色を調整する利点としては、カメラに映る全てのオブジェクトに対してエフェクトを適用できるため、既存オブジェクトのマテリアルやシェーダーに手を加えなくて良いという点が挙げられます。では早速やっていきましょう! 環境 Unity 2019.4.15

          【Unity】シェーダーブレンドモード一覧

          はじめに視覚的に把握できるようにシェーダーのブレンドモード一覧を作成しました。ブレンド要素は11種類あることから組み合わせとしては121種類あります。 環境 Unity 2019.4.15f1 Windows 10 条件 左側テクスチャ:Unlitの草のテクスチャ 右側テクスチャ:UnlitでRGB(255, 0, 0, 255) [赤]でここで使用しているシェーダーのブレンドモードをそれぞれの組み合わせで変更 (使用シェーダーは最後にあります) スクショ画像はG

          【Unity】シェーダーブレンドモード一覧

          【Unity】KlakNDIを使ってみる

          試してみたシリーズです。今回はKeijiro氏の「KlakNDI」を使ってネットワーク越しにUnityからカメラ映像を送ってみます。名前の通り、NDI形式で送るためNDIに対応している様々なアプリケーションにUnityの映像を送ったり、Unity側で映像を受け取ることができます。 環境Unity 2019.4.5f1 / Windows 10 1. 準備KlakNDIはSystem.Memoryをはじめとするいくつかのライブラリに依存しているため、scoped regis

          【Unity】KlakNDIを使ってみる

          【Unity】オーディオビジュアライザーをつくる

          前回に続き音シリーズです。今回はマイク入力の周波数成分を視覚化してUnityで表示してみたいと思います。いわゆるオーディオビジュアライザーです。 環境Unity 2019.4.5f1 1. スクリプト以下のスクリプトを適当なオブジェクトにアタッチし、同オブジェクトにAudioSourceもアタッチします。アタッチ後、AudioSource設定のLoopにチェックを入れます。AudioSourceには音声信号をスペクトラム解析してくれるGetSpectrumDataメソッド

          【Unity】オーディオビジュアライザーをつくる

          【Unity】マイク音量の検出

          音シリーズとしてUnityを使ってマイク音量を検出し、音量に応じてキューブの大きさを変えてみたいと思います。マイク入力を検出する方法はいくつかありますが、今回はAudioClipとAudioSourceの2つの方法を解説します。 環境Unity 2019.4.5f1 1. スクリプト : AudioClip編ヒエラルキー上にCubeを配置し、以下のスクリプトをCubeまたは適当なオブジェクトにアタッチします。スクリプトのm_CubeにはCubeオブジェクトをアタッチします

          【Unity】マイク音量の検出

          【Unity】LTC (Linear timecode)を使ってみる

          音と映像の同期を取る手法として、音声信号にタイムコードを乗せる方法があります。これによって音声信号をトリガーにすることができるため、サビに合わせた映像を流したり、パーティクルなどの演出を行うことができるようになります。 仕組み的には通常の音声信号と同じように送ることができるため、Unityからはタイムコードにエンコードした音声信号をマイク入力で受け取り、その信号をデコードすることでタイムコードを認識させることができます。では早速やっていきましょう! 環境Unity 201

          【Unity】LTC (Linear timecode)を使ってみる

          【Unity】Addressable Asset Systemをサクッと使ってみよう

          私も含めて「Addressable Asset System よくわからん!」という方のためにとりあえず使ってみて使い方を覚えていくというアプローチでいきたいと思います。では早速やっていきましょう! 環境Unity 2019.4.5f1 Addressables 1.19.4 1. Addressable Asset SystemパッケージのインストールAddressable Asset Systemを利用するためにUnityプロジェクトへパッケージをインストールします。

          【Unity】Addressable Asset Systemをサクッと使ってみよう

          【Unity】AnimatorのコールバックをUniRxで検知する

          Animator上でAnimationが開始したタイミングや終了したタイミングで何かしらの処理をスクリプトで行いたいとき、UniRxを使うと簡単に実現することができます。早速やっていきましょう! 1. ObservableStateMachineTriggerのアタッチUniRxをインポートすると、Animator上で稼働しているステートマシンのコールバックをObservableに変換するObservableStateMachineTriggerコンポーネントを使うことがで

          【Unity】AnimatorのコールバックをUniRxで検知する

          【Unity】Addressable Asset Systemのアセット登録の自動化

          アセット数が多くなると手作業で登録するのは大変なので、Unityエディタ上で特定のフォルダにドラッグアンドドロップするとデフォルトのグループに自動で登録するスクリプトです。 環境Unity 2019.4.5f1 Addressable Asset System v1.18.15 スクリプトusing System.IO;using UnityEditor;using UnityEditor.AddressableAssets;public class AutoAddres

          【Unity】Addressable Asset Systemのアセット登録の自動化

          【Unity】Addressable Asset Systemの全体像を掴む

          Unityでアセット(画像、音、動画、3Dモデル、Prefab)を扱う上で主要な機能であるAddressable Asset Systemが「なにもわからない」状態だったので、全体像を掴むために図解してみました。 設定がどのように関連しているのか繋がりを把握しやすくするために一枚画像にしてあります。noteに貼り付けると圧縮がかかり文字が識別しにくくなるため、Googleフォトに置いた以下のオリジナルサイズをご覧ください。 オリジナルサイズ (2.6MB) オリジナルサイ

          【Unity】Addressable Asset Systemの全体像を掴む

          【Unity】ボタンの派生クラス作ってインスペクタで設定する

          たくさんあるボタンの中で「キャラクターを変える」や「色を変える」など処理自体は共通で、どのボタンが押されたかでデータを変えたい場合があります。 それぞれのボタンに専用のメソッドを追加することで対応は可能ですが、ボタンの数が多くなるとそれも大変です。そこでインスペクタからボタン自体にパラメーターを設定できるようにして、クリック処理を共通の関数に引数付きで渡せるようにボタンを拡張してみたいと思います。 1. スクリプト (パターン1)方法としては標準のボタンクラスを継承したク

          【Unity】ボタンの派生クラス作ってインスペクタで設定する

          【Unity】VSCodeでUniRxの参照が切れる対策

          1. UnityのVSCode Editorパッケージをv1.2.3にするUnityエディタのメニューから[Window] > [Package Manager]を開き、Visual Studio Code EditorパッケージをVersion 1.2.3へアップデートします。 2. メニューから「Open C# Project」を実行プロジェクト構成が再読み込みされるので、VSCode上で名前空間の参照が解決されいるか確認してみてください。 3. 背景やら補足などのあ

          【Unity】VSCodeでUniRxの参照が切れる対策

          【Unity】FTDIのFTD2XX_NETを使ったシリアルポート通信(C#)

          FTDI社から提供されているFTDIドライバのラッパーライブラリ(FTD2XX_NET)を使ってUnityからシリアルポートで送受信を行ってみます。 このFTD2XX_NETはドライバを制御するという比較的低レイヤー層を扱うため、ラッパーライブラリといえどC#のような高級言語に慣れ親したんだ人からするとやや使い方が難解です。 しかしその分、使いこなせるようになると.NET FrameworkのSerialPort クラスよりもきめ細かい設定ができるようになるため、チャレン

          【Unity】FTDIのFTD2XX_NETを使ったシリアルポート通信(C#)