TensorFlow Lite Unity Sample
開発当初はTensorFlow Liteの公式モデルをUnityで動かすサンプル。で開発をはじめましたが、今では、Unity向けに最適化されたTensorFlow Liteのライブラリと C# バインディング 、各種Delegate (GPU などを使った高速化オプション)を取り揃えたリポジトリ になってきました。UPM(Unity Package Manaer)対応したのも大きいです。
2019年12月から始めて安定期。今年は大きな機能追加はなかったものの、地道な機能追加をしてました。
github.com
MITライセンスなので使ってくれている会社さんを、私に連絡頂いた方のみですが紹介します。
DeNA 配信アプリ IRIAM
10月に開催された Unityイベント内の講演でも使っていることを発表していただきました。TensorFlowの全ライブラリをCircle CIでビルドするという PRもいただきました。ありがたい。
events.unity3d.jp
NEX Team Inc.
www.nex.inc
TGS でも話題になった 、Starri を開発している会社です。最初はGitHub のIssue経由でしたが、直接フリーランス としての依頼を頂き、私のリポジトリ へ優先的に機能追加をしたりしています。ソースコード 非公開のプロジェクトでTensorFlow Liteを導入する案件もちらほらあるのですが、Unityのバージョンアップで動かなくなって、私が抜けたあとメンテできなくなったりするので、公開のリポジトリ への依頼はありがたいです。
Augmented Robotics
現実のラジコンをスマートフォン で認識してAR上のものとインタラク ションが起こる。という面白いアプリを開発しています。Berlinがオフィスとのことで一度オフィスにもお邪魔しました。
https://augmented-robotics.com/
VIDEO www.youtube.com
MoveAhead
Dublin City Univからの大学内スタートアップ。子供のためのモーション解析xゲームを作っているチームです。直接連絡をもらい、サポートもしていました。たまにオンラインで質問を聞いたりしています。
moveahead-project.com
他にも個人、企業含めいくつかの方から連絡をもらっています。誰も使わないだろ、と思うようなニッチなやつでも全世界に公開すると、使ってくれる人がいるんだなぁという。
keijiroさんがiOS , macOS で動画のレコーディングができるリポジトリ を公開していたので、フォークして機能追加。任意のバイナリデータを動画に同期して記録、再生が可能です。普段の案件でUnityで動画レコーディングするのはNatCorder にお世話になっていて、非常のクオリティの高いライブラリではあるのですが、有料サブスクリプション モデルなので、ライブラリとして公開したい場合に気軽に使える動画レコーディング機能がほしいと思っていました。
github.com
これ、Unity 2021 LTS, 2022.1 までは動くのですが、2022.2からUnityのビデオプレーヤーに更新があり、可変fps の動画が再生できなくなりました。Unity側にバグレポ を送り、2023アルファ版では修正されましたが、2022版へもバックポートしてくれと連絡してます。果たして対応してくれるのか。
unity-texture-curve
andydbc さんのリポジトリ をフォークして機能追加。
Animation CurveをRGBAの最大4チャンネル 、テクスチャにエンコード することができるライブラリ。シェーダーでアニメーションをさせたいということが多いので、自分で欲しかった機能を足しました。
一つは、UPM対応。もう一つは、ScriptedImporter をつかって、エディタ読み込み時にテクスチャにしてくれる機能です。ランタイム時はただのテクスチャとして扱われます。ScriptedImporterは独自拡張子をUnityに読み込むときに便利な機能なので、積極的に使ってます。
github.com
TextureSource
UnityのWebCamTexture、使うの大変ですよね…。スマートフォン で使うと回転したテクスチャが帰ってくるし、macOS では最初の数フレーム10 x 10の小さいTextureが来たあと、正しい解像度のTextureになる…。初学者には罠しかありません。普段は上述のNatDeviceを使うのが最適解だと思いますが、いかんせん有料サブスクリプション モデルなので、オープンソース で使いたいときに気軽に使えるやつを作りました。WebCam だけでなく、VirtualTextureというコンポーネント 経由で、動画とWebCam をコード変更無しに切り替えられます。主に私がComputer Vision 案件をやるために作りました。WebCamTextureは遅延が大きいので、いつかネイティブプラグイン 用意したいなーと思ってます。
github.com
ml-slack-bots
Slack上で色々OpenAIや、 OpenAI, Hugging Face, Replicateのモデルを試せるSlackボットです。DALL·E 2や、Imagenが出てきて、まだStable Diffusionが公開される前に、自分でも色々モデル試さなきゃ!!と思って、作りましたが、Stable Diffusionモデルが公開されて、M1 mac でもローカルで動くって状況なので、しばらくは使わなそうです。Slackのボットを初めて作りましたが、Slack API のGraceful Retries という、3000ms以内に一旦レスポンスを返さないと、3回同じリクエス トをリトライして送信してくる機能が、画像生成で時間がかかるモデルをAWS LamdaとSlackでやるのが相性悪すぎました。Graceful Retries切るオプション欲しいのは私だけではないはず。
github.com
URP Post Effect
URPでカスタムポストエフェクトを書く際に、RendererFeatureを追加して、ほにゃらら。って面倒くさいですよね。なので気軽にShaderGraphやら、ComputeShaderやらを組み込める機能を作りました。
github.com
Unity 2022 (URP 14以降)では、Full Screen Render Pass が追加されて、気軽にできる!と思いきや、これ、Render Settingにマテリアルをアサイ ンするので、一つのエフェクト追加するたびにパスが追加されるし、enable/disableを切り替えるのがめんどくさい。
ので、URP Post Effect的にな手法なほうが手軽で良いなーと個人的には思っています。
Sponsor @asus4 on GitHub Sponsors · GitHub
GitHub Sponsor、嬉しいことに毎月$100以上を支援して頂いてます。このおかげでGitHub LFS などの有料機能も帯域が足りなくなったときにも遠慮なく追加出来ています。ありがとうございました。
Zenn Scraps
2022年は公開しても良いときは開発記録をZennのScrapsにだら〜と書きなぐっていました。ブログにまとめなきゃと思いつつ出来てなかったので、ハードル低く、文字に残せるScrapsは個人的にはありがたい機能です。
zenn.dev
以上です。
今年も作ったもので公開して良いのがあれば、積極的に公開していきます。