こんにちは。もぐめっとです。
実は大樹という名も持ち合わせてたりします。実質SLですね。
今回は
Roppongi.unity #9 in YouTube Live & cluster に参加してきたので軽くまとめてみました!ご賞味ください!
Addressable Asset Systemをプロダクトで使ってみた https://twitter.com/azukiidx
- Twitter
Addressableの開発体制や小技を紹介します USでLeapTriggerというARシューティングゲームをリリースした 使用バージョンとして、1.8.3でとても不安定だった。 AR使ったアプリなので実機確認が大事。Editor上とで乖離があったりするjenkinsビルドで配布していた AssetBundleのDL方法に悩んだ 開発環境はS3にアップロードして、AssetBundleをDLするようにしている Profileを弄ると、ダウンロード先の環境先を変数で帰れる。 EditorでAssetBundleを落としてEditor拡張でS3に挙げれる仕組みを作ったslackを経由してjenkins経由でdeploygateやS3にアップロードしたりしていた 躓いたポイント キャッシュクリアとして、キャッシュクリアの機能があるが、実現するためにCaching.ClearCacheで消えないので、ClearDependencyCacheAsyncを使うと消せれる DL0%から始まらない問題として、最新版に上げたら治った。 AssetGroup画面が重い問題として、GroupWindowを極力開かないようにエディタ拡張を作った今はAddressableImporterを使うといいかも UIリソースが更新がかかってコンフリクトしたので工夫したりした まとめ つかいやすくなってきたのでリリースにはたえれるとおもう。 github actionsで作るUnity CI環境 https://twitter.com/mogmet
- Twitter
下記の話を体験談まじえて少し詳細にお話しました。
game-ciとfastlaneを組み合わせてgithub actionsでCI環境を実装したお話になります。
そしてiosは闇が深いので頑張ろうっていう感じのお話です。(自分の話なので割愛しがち)
ローカルテストは
act を使うといいです。
翻訳VR作ってみた https://twitter.com/okprogramming
- Twitter
音声認識比較 Cloud SpeechToText, Watson Speech to Text、Speech Recoginizer, Android Speech TTSをためした(細かい比較は資料参照) 翻訳API比較 DeepL, CloudTranslation, Microsoft Translatorを試したdeepLが一番精度良い 意地悪しない限りはDeepL最強 マルチ対応Tips Photon Voice2を利用。超簡単多民族同士のコミュニケーション円滑化にしたい オンライン英会話やってて、日本語話せない担当になったときに、何がわからないかを説明しようがないということになってしまう。そういう時に翻訳VRで翻訳結果をカンニングできるようにしたい 実装手順アセットストアからインポートしてIDを設定して、オブジェクトを設置するだけ 困ったこととして、音声認識機能でMicrophoneAPIをつかってるので、既に使ってると言われてしまうので、ボイスチャットにはPhotonのMicrophoneAPIを使う アバターにviewを設定するだけ DLL関連のエラーとして同名DLLが多数存在しているが削除すれば解決 レスポンスはどうか?実用には耐えられない。Speech to textは1,2秒かかる。 ボイスチャットもあるのでコミュニケーションは難しい Unity + MRTKでHoloLens2用音楽ゲームを作る https://twitter.com/tama_Ud
- Twitter
音楽が始まると億から戦艦が飛んでくるので手で叩き落として得点がたまるゲーム部屋の奥行きや位置をhololense使えるが、小さい部屋でやると小さい部屋に合わせてサイズも変わる 制作経緯としては、緊急事態宣言でゲームセンターに行きづらいので、楽しいことしたいというのと、HoloLensハッカソンに参加したのがきっかけ 仕様はランダムにGameObjectを生成してレーンに沿って移動させ、手と衝突したら得点を加算する 実装手順はMRTK Install UI実装、衝突判定、ビルド&デプロイMRTKはMixedRealityアプリ向けのクロスプラットフォーム開発キット。MR機能をUnityでお手軽に使えるツール。 ボタンのprefabをシーンに追加するだけで簡単にボタンをおせるようになったりする UI実装については、レーン配置Scaleは1が1mなので、10にすると10mとかの大きさになる MRでゲームを作ってみて、シンプルなゲームのほうが遊びやすいのと、UXが結構重要で操作が複雑だととっつきにくく、あきやすくなってしまう まとめ レーシングゲームにおける AI 設計 https://twitter.com/hashilus_jp
- Twitter
自律的に走るAIをのせることにより、重大な事故を起こさず完走するAIをつくったので、どのような考えで作ったかを紹介 プレイヤーやNPCがのるのをユニットとして表現してます。ユニットは液体の上にのり、急にはまがれないのでカーブでははやめにまがらないといけない コースには壁があり、ぶつからないようにする必要がある制約がある プログラムの構成Navigator: 液体状でのユニットの動きを計算する。水面での動きを計算する Manipulator: AIのプログラムを実行するランナー。アクセルと旋回力をNavigatorに渡して計算する ManipulationLogicには到達する情報などが入っている。 全てのAIの計算が終わったらManipulatorからUnitに渡す 目標に向かって走る。急旋回したらアクセルを落としたりなどをする目標地点はユニットが十分近くまできたら次の場所に向かうようにしている 左右のユニットを避けるのは、両方から接近してたらハンドルを制御する。 壁への衝突を未然に防ぐために、壁とは反対の方向へアクセルをふんだりするようにした 利点 拡張性が高い。 プレイヤーの操作、デバッグキーボード操作、レースの補助など、継承すれば実装できる実際にはNPCや、人間、場面などに応じて操作を変えてる FrameDebugger VS RenderDoc https://twitter.com/2tatuki4
- Twitter
Frame Debugger VS RenderDoc ふたつきFrame Debugger VS RenderDoc
- Google Docs
FrameDebugger/RenderDocって何? GraphocDebugToolの一つ FrameDebuggerはUnityにもともとある 比較結果 FrameDebuggerはUnityに付属していてUIがシンプル。覚えることが少なかった。 RenderDocは負荷計測値や頂点の値など細かい情報がみれるので、アプリの描画負荷チューニングするならこちら 機能の比較 FrameDebuggerはDevelopmentBuildにチェックすれば動く。動かしてる画面を上書きしてPreviewが表示される RenderDocは、Editor&Windows, Linux, Androidのみで、Macでは動かない。Development Buildを作る必要がないので、アプリそのままでみれる EventBrowserDrawCall一覧がみれる FrameDebuggerはEditroの場合そのタイミングであるScnee上のものをピックアップしてくれる RenderDocは時計マークをクリックすると、現在動いている環境での処理時間が計測されるが、Editorキャプチャーした場合はEditorUIのものも表示されてみづらいのでEditorで見るのはおすすえmしない MeshViewDrawCall内で描画されるModelの詳細が見れる FrameDebugger: ShaderProperties(テクスチャなど)がみれる。Editorの場合、リソースに飛べる RenderDoc: vertex shaderのIn/Outの値が数字でPreviewで見える。アプリでモデルが爆発したら一定の値になってshaderの値が悪いことがわかったりする。しかしそれ以外はつかいづらい TextureViewDrawCallでの各Textureの状態が見れる。Depthの状態を見れたりもする FrameDebugger: GameタブにRTの状況が表示され、アプリだとアプリに表示される・ RenderDoc: DrawCallで書かれたのをハイライトできる。右クリックでピクセル単位のDraw履歴が見れる。 その他FrameDebugger自体はシンプルinspector上でみれるので覚えることが少ない RenderDoc: より細かい情報が見れる。pipeline stateでの描画までの設定が見れたり、performance counter viewで並び替えができる どちらがいいか?さっとみるならFrameDebuggerEditorで開発して途中で気になる箇所のチェック チューニングするならRenderDoc RenderDocの仕組みは?directXなどのコマンドをgpuで直接見てるのではないか。 Unityで仮想通貨を取扱えるようにしてみた A presentation created with Slides.deck - Slides
UnityCipher, UnityDotenv, Bitabnk Unity SDKを公開してる unity使ってものを作るが、世界中からお金が集まるようにしたかった暗号資産は世界中どこでも使えるお金になる。 暗号資産交換業のライセンスをもってないと日本円と交換できない 仮想通貨の交換所は大体API公開されてるのでそれみればなんとかできる。 アカウント情報が漏れると大変なので考えないといけない UnityDotenvを実装した時の小ネタとして、AssetPostprocessorやEditroWindowなどを利用できるようにならない Bitbankのアカウントを作ってAPI Keyを発行して使う Unity EditorからADX2の出力データを直接いじる魔改造 https://twitter.com/Takaaki_ichijo
- Twitter
CRI ADX2とは、音の演出が組み込まれたライブラリツール音をカテゴリわけして制御情報を埋め込む AndroidなどのXR機器にも効果ある インディ向け無償エディションもある ADX2ではAtomCraftというものを使って音に設定を埋め込む。フルボイスのゲームや楽曲がたくさんあるときの管理、演出作りに集中したり、サウンドデザイナーと分業して作れる この音はフェードイン、繰り返しは2回までなど、metadata的に埋め込んでUnityに渡す ゲームの音をタグで分けたり、ツリーで管理しながら組み込むワークフロー ADX2で面倒なこと別ツール体制のデメリットとして、ゲームと音が密接に演出するとUnityといったりきたりしないといけない。サウンドの設定をみすっていると、AtomCraftを立ち上げて読み込ませないといけない 一人だと分業メリットはない サウンドデザイナーでもUnityEditorでやりながら調整する人も増えてる AtomCraft開かずに調整したいということで、ADX2 for Unity Change Cue SettingsというEditorExtensionを作った1回しか再生されないのを4回まで重なって再生させるなど挙動の変更ができるようになったりする 仕組みとしてロボット機能を使ってスクリプトの生成と、Processでexe実行してEditor上から操作可能なようにしている 関連情報python経由でなくてもいい。 python for unityとの併用でなにかやりやすくなるかも? adxツールを使ってる人がいる場合はパラメータが勝手に変わるのでワークフローをしっかり考えておきましょう 今回はyoutube以外にもclusterでも配信していて、観客の様子が視覚的に見えるのはなかなか面白い試みで、オフラインでもオンラインに近い感じで勉強会を参加することができたのがよかったです。
また、もぐめっとてきにはAddressable Asset Systemを昔導入しようとして、非同期でしかロードできなかったのでうまく組み込めず断念したのですが、最近同期的でもよみこめるようになったとの話があったので、機会あったら導入チャレンジをまたやってみようとおもいました。
View Comments
I may need your help. I've been doing research on gate io recently, and I've tried a lot of different things. Later, I read your article, and I think your way of writing has given me some innovative ideas, thank you very much.
I don't think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.
U5e5jHQ4MFT
I don't think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.