manahiyoの気まぐれ

備忘録を兼ねたブログです。

UNITYでグラフ描画にEzChartを使ってみた

はじめに

 RTL-SDRで受信した信号のスペクトル表示をどうしようかと考えました。

AndroidStudioではMPAndroidChartというのが有名でフリーで使えるというのでこちらで行いましたが、UNITYでは同じようなものが見当たりませんでした。

AssetStoreにはグラフ表示用のものがいろいろあったのでそこから探すことにしました。

あくまで私の主観による選択と感想ですのでご了承ください。

 

EzChartを購入

3Dでかっこいいものもたくさんありましたが、スペクトルを表示するので、高速で何度も描くため、確実に処理が重そうだなぁと懸念を持っている中、有料でしたが結局EzChartを購入しました。

assetstore.unity.com

これを選んだ決め手は、「Display massive data」というのが特徴として書いてあったことです。大量のデータが表示できるのであればスペクトル表示くらい余裕だろうと予測。

さらに面白かったのは下記サイトで実際にサンプルを試せることです。

ququie.gitlab.io

こちらでmassivedataのデモを動かして、この速度なら大丈夫だろうと購入を決めました。現在$19.99でちょっと出費が発生してしまいましたが、これで簡単にスペクトルが表示できるのであればしょうががないかなと。

 

使ってみる

グラフの種類などはデモを見ればわかるので、ここでは実際にインポートしたあとをちょっと紹介してみます。

 

インポート後はこんな感じ

f:id:manahiyo831:20201212185455p:plain

デモとGUI上でいろいろ設定が可能なExampleとスクリプトからchartを生成するExampleがありました。

チャートではグラフの種類、チャートオプションでは色の設定、X,Y軸の設定などたくさんの設定があり、普通に使う分には困らなさそうです。まぁこの辺は使いこんでみないと何とも言えませんが。

f:id:manahiyo831:20201212190211p:plain

データのオプションではデータのサイズや種類を設定でき、GUI上でもデータを入力できるのでちょっとデータを設定して表示を試すこともできます。ふつうはスクリプトからの設定になるとは思います。

f:id:manahiyo831:20201212190256p:plain

気になるMassiveDataのexampleはこんな感じ。

f:id:manahiyo831:20201212191635p:plain

 

マニュアルは簡単な説明しかないのですが、基本的にはいろいろ設定をいじればどのように変わるかわかりますし、exampleも豊富なので、使うのにさほど苦労はしませんでした。

 

スペクトル表示をやってみた

無事RTL-SDRで受信した信号をFFT表示できました。スピードも全く問題ありません。

ちなみにピーク表示は自分で追加しました。

f:id:manahiyo831:20201212194201p:plain

なおグリッド線の太さが違うように見えるかもしれませんが、画像によるもので、実際はきれいに表示されています。

 

おまけ

実は使っている中で表示がグラフ領域外にも描画されるというバグが見つかったのですが、片言の英語で作者に連絡を入れたところ、その日のうちに修正したものを送ってくれました。

こういう対応をいただけると購入してよかったと思います。