RaspberlyのブログRaspberlyのブログスマートフォン用の表示で見るRaspberlyのブログUnityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。勉強会/イベント-Roppongi.unity勉強会のレポート(メモ)です。「メルカリ」さんです。roppongiunity動画はこちらwww.youtube.comメリカリさんには一昨日も「VRM勉強会」の会場提供をしていただきました。Imotowww.slideshare.netごたゆに10で話せなかった、スライドの後半にフォーカスした内容になっています。HumbleObjectPaternについてテストが書きたくて手が震えているテストのしにくさには原因があります密結合な話や入力イベントが絡んだ時などはしにくい。リファクタリングしてもテストしにくいことがある。テストを書けない理由は明らかにすべき。2019ピラミッドの境界をまたぐような書き方はしんどい。分割したような書き方をする必要があります。Paternはテストしやすいものとしにくいものをすみ分ける実装パターン。MonoBehaviourがからむとめんどくさい。テストが書きにくい原因はだいたいMonoBehaviour。ロジックから抽出します。話す内容プロジェクトにある大量のアセットを消したい。消せないものはどこで参照されているかを知りたい。簡単にいうとゴミデータを削除したい。ViewerもともとReferenceViewerを使っていました。これは初回実行時に参照データ生成を行います。小さいプロジェクトならまだしも、大きいプロジェクトだとまあまあ時間かかる。ブランチ切り替えでもおきちゃう。早くしたい、プログレスバーを表示してメインを止めないようにした。結果的に早くなったがもっと早くしたい。最終的にチェックツールを作成しました。UnityAPIを使用した普通の実装、15秒くらいでおわるくらいまで早くなりました。GUIDについてmetaの中にはGUIDが入っていて読むことができます。Scene、Prefabも中で使われているGUIDも読めばわかります。r_ngtmwww.slideshare.netノードをつないで音をつくるおもちゃを作りました。音の周波数を変えたり、それらを加算したりできます。いう風に実装したかxNodeというフレームワークを使うと、ノードベースのエディタが簡単に作れるんです。作ったものはgithubで公開しています。データサイエンティストから見たUnityの可能性なぜデータサイエンティストがunityをやっているのか最初やっていたことフライトシュミレーターの整備をやっていました。当時、上司からARデバイスについて調べて何か作れという指示がありました。この時、いろいろ調べましたが、いろいろなデバイスでいろいろなものが作れるんだと気づきました。今はデータサイエンティストとして働いています。可視化の部分を専門にやっています。ビッグデータを地図上に可視化し、VRでも見ることができます。UnityではVRのガンシューティングゲームを作っていました。Unityは物理挙動もかってにやってくれて、Assetも充実していたのですごくびっくりしました。次は何をしたいかUnityでビッグデータの可視化をしたい。GoogleMapのAPIでいろいろできそう。今は申請制のようで作るハードルがやや高い。今までは地図上にデータをマッピングしたりしていましたが、これからは3Dの街並みにデータをマッピングしたり、ビックデータとのインタラクション。ビッグデータの理解というものも広がるんじゃないかなと思います。ML-Agentで企業の取引最適化も。(今と最適化の違いを見て、分析ができる)まとめUnityのおかげで開発のハードルはだいぶ下がり、個人でも作れるようになった。異分野(ゲーム以外でも)でUnityを使えるようになったいままでビッグデータとかやってる人がいなかったので自分がやっていきたいなと思います。Zenjectのススメスライドnotargs.hateblo.jpZenjectはいいぞZenjectとはオブジェクト同士の依存関係を簡単に定義できるアセットです。依存関係はZenjectを使いましょう。FindやGetConponentだったところを変数にように定義し、シーン内でバインディングするだけ。疎結合にしたい時はインターフェースを挟もう。シングルトンのマネージャークラスシングルトンの記述はなんかダサいし、使うときがっつりインスタンスしている。ここもZenjectに治せます。普通のクラスのように作るだけ、シングルトンの情報も持たせない。Unityでオニオンアーキテクチャスライドhttps://niconare.nicovideo.jp/watch/kn4031オニオンアーキテクチャとは何か設計指針としてはドメイン駆動設計(DDD)が根幹ドメイン駆動設計とは何か今から作るアプリが本質的にやりたいことをドメインといいます。このドメインを中心に考えるやり方がドメイン駆動設計です。実装する時に仕方なくそうなったところをわける。セーブデータの保存だと、データの保存と復元がドメイン。他の部分はどうでもいい。実装を置くところ、機能追加や修正などはここで変更する。処理の手続きを書くところ・Presentation層UnityとApplication層そうをつなげるところDIがないとまわらないのでZenjectは必須。クリーンアーキテクチャとは本質的にはまったく同じ。とっつきやすいほうからやりましょう。層ごとにディレクトリをわける。AssemblyDefiniionを使うと便利なのでオススメ。Domain名前が大事、名前には意味をもたせましょう。構造体とクラスどっち使うかはよく考えて。インターフェースだけ定義(こういう操作ができますよというもの)Infra実装を書く。Application手続きを書く、まあ薄くなる。PresentationUnityでUIとかとつなぐ。自動でインスタンス化してくれるようにします。仕様変更がきてもいじるところは少ない。デフォルト値は定義この言葉の意味はよく議論すること。まとめメリット・機能変更修正にめちゃくちゃ強い。・アウトゲーム部分と相性がいい。・レイヤーがわかれているので明確。・テストとも相性がいい。デメリット・インゲームには適応しにくい。・処理に対しコード記述量が増える。・Domainの設計が難しい。・インタフェースなど知らないとだめ。・Zenjectがむずかしい。Ichijowww.slideshare.net8人同時にしゃべるといわれた、これは何がやばいのか。・ボイスデータの管理ボイス再生時には制御が必要、同時再生数を制限したりとか。これはどこで判定するのか・・・ボイスデータの管理の問題エクセル管理の場合、管理用と実際のデータで差異が生まれてしまう。ここでADX2ADX2ではAudioClipを再生とはやらない。キューというものを作って情報を埋め込み、キューを再生して動かす。・同時再生時の負荷軽減もできる・冒頭の無茶ぶりにも対応できます書籍もでます、よろしくお願いします。みんなに使ってもらうUnityライブラリの作り方スライドdocs.google.comいままでいろいろ作ってきたのでそのノウハウを共有します。Exampleをまず作るドキュメントやテストよりも大事。ゲーム買ったら説明書とか読まないよね、それと同じでライブラリを落とした人はドキュメント読まない。Exmapleを動かしてみてみる人が多い。動かすことができるように整えておきましょう。一応テストやドキュメントも大事、書いてあると動くという証明になります。UnityPackage化しようつまりエクスポート。ダウンロードしてすぐ使うので簡単にしたほうがいい。インストールに手間取ることもない。Namespaceを作ろう開発中はいろいろなライブラリが入る、なので明示的にわかるようにするために必要。処理の衝突をさけるためでもある。ディレクトリは1つにまとめるいらなくなったらすぐに消せるようにするバージョンアップさせる時の依存関係がわかりやすくなり、バージョンアップするとき楽。Qiita使ってるライブラリが他にあると、本家が更新されたらライブラリも更新しなければならない。メンテナンスも大変、そのまま使うようにした方がいい。まとめ上の5点は守ろう。2019技術選定の方針ExampleやSampleがある最新更新されているStarの数が多い。2019namespaceをつけよう!これ大切。他のライブラリと名前衝突するとめんどいから。2019今日のMagicBlockのランキングです!結果画面からツイート、アンケート等できます。2019VRM勉強会の時はドミノピザでしたが、今回はピザハット。VRM勉強会の時にも展示していたおもちゃラボさんの展示レポートです。toylabo.techLT7の@Takaaki_Ichijoさんは昨日の「ゲーム開発におけるサウンド実装の勘所」についても講演いただきました。raspberly.hateblo.jp間違っている所、消してほしいツイートなどがありましたらコメントにお願いします。#14勉強会のレポート(メモ)です。Track)勉強会のレポート(メモ)です。#5勉強会のレポート(メモ)です。#4勉強会のレポート(メモ)です。#13勉強会のレポート(メモ)です。アーカイブおすすめアセット参加グループUnityUnityゲーム開発者ギルドリンクはてなブログブログをはじめる週刊はてなブログはてなブログProはてなブログをはじめよう!Raspberlyさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。