Hiko

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

Hiko

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

記事一覧

【Unity】StandardShaderを改造する

StandardShaderはUnityに標準でビルトインされているシェーダーで、オブジェクトに対して光や影の計算を行ってくれます。今回はこのStandardShaderをカスタマイズする方法…

Hiko
1年前
2

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

Post Process Stack v2(PPS)には予め用意されているいくつかのエフェクトを追加することで好みの絵作りをすることが可能になっていますが、自分で1からオリジナルのエフェ…

Hiko
1年前
3

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

はじめに視覚的に把握できるようにシェーダーのブレンドモード一覧を作成しました。ブレンド要素は11種類あることから組み合わせとしては121種類あります。 環境 Unity 2…

Hiko
2年前
7

【Unity】KlakNDIを使ってみる

試してみたシリーズです。今回はKeijiro氏の「KlakNDI」を使ってネットワーク越しにUnityからカメラ映像を送ってみます。名前の通り、NDI形式で送るためNDIに対応している…

Hiko
2年前
5

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

前回に続き音シリーズです。今回はマイク入力の周波数成分を視覚化してUnityで表示してみたいと思います。いわゆるオーディオビジュアライザーです。 環境Unity 2019.4.5f…

Hiko
2年前
9

【Unity】マイク音量の検出

音シリーズとしてUnityを使ってマイク音量を検出し、音量に応じてキューブの大きさを変えてみたいと思います。マイク入力を検出する方法はいくつかありますが、今回はAudio…

Hiko
2年前
5

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

音と映像の同期を取る手法として、音声信号にタイムコードを乗せる方法があります。これによって音声信号をトリガーにすることができるため、サビに合わせた映像を流したり…

Hiko
2年前
5

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

私も含めて「Addressable Asset System よくわからん!」という方のためにとりあえず使ってみて使い方を覚えていくというアプローチでいきたいと思います。では早速やって…

Hiko
2年前
15

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

Animator上でAnimationが開始したタイミングや終了したタイミングで何かしらの処理をスクリプトで行いたいとき、UniRxを使うと簡単に実現することができます。早速やってい…

Hiko
2年前
2

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

アセット数が多くなると手作業で登録するのは大変なので、Unityエディタ上で特定のフォルダにドラッグアンドドロップするとデフォルトのグループに自動で登録するスクリプ…

Hiko
2年前
2

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

Unityでアセット(画像、音、動画、3Dモデル、Prefab)を扱う上で主要な機能であるAddressable Asset Systemが「なにもわからない」状態だったので、全体像を掴むために図解…

Hiko
2年前
7

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

たくさんあるボタンの中で「キャラクターを変える」や「色を変える」など処理自体は共通で、どのボタンが押されたかでデータを変えたい場合があります。 それぞれのボタン…

Hiko
2年前

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

1. UnityのVSCode Editorパッケージをv1.2.3にするUnityエディタのメニューから[Window] > [Package Manager]を開き、Visual Studio Code EditorパッケージをVersion 1.2.3…

Hiko
2年前
2

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

FTDI社から提供されているFTDIドライバのラッパーライブラリ(FTD2XX_NET)を使ってUnityからシリアルポートで送受信を行ってみます。 このFTD2XX_NETはドライバを制御する…

Hiko
2年前
2

【Unity】MIDIコントローラーで遊ぶ

MIDIコントローラーの入力をUnityで受け取って値を反映させてみたいと思います。 動作環境Unity 2020.3.12f1 Windows10 1. MIDIコントローラーコンパクトでドラムパット…

Hiko
2年前
10

【Unity】DMX512データの受信

前回の記事ではUnityからDMXデータを送信する方法を解説しました。今回は逆にUnityでDMXデータを受信する方法を解説します。 使用環境Unity 2020.3.12f1 Windows10 1. 準…

Hiko
2年前
9

【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】KlakNDIを使ってみる

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

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

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

【Unity】マイク音量の検出

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

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

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

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

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

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

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

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

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

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

【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】FTDIのFTD2XX_NETを使ったシリアルポート通信(C#)

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

【Unity】MIDIコントローラーで遊ぶ

MIDIコントローラーの入力をUnityで受け取って値を反映させてみたいと思います。 動作環境Unity 2020.3.12f1 Windows10 1. MIDIコントローラーコンパクトでドラムパットとノブが付いているAKAI LPD8を使いました。MIDIコントローラーであれば何でも大丈夫です。 コントローラーをPCに接続し、デバイスマネージャーの「サウンド、ビデオ、およびゲームコントローラー」で認識されていることを確認します。 2. MIDIプラグインのインスト

【Unity】DMX512データの受信

前回の記事ではUnityからDMXデータを送信する方法を解説しました。今回は逆にUnityでDMXデータを受信する方法を解説します。 使用環境Unity 2020.3.12f1 Windows10 1. 準備検証として以下の機材を用意しました。 オス-メスのXLRケーブル 今回はあくまで検証目的ということで、送信側と受信側の1対1で通信を行うため、オス-メスのXLRケーブルを切断してメス側の切断面の被覆を剥いてコンバータと接続しました。 送信、受信共にケーブル付きの