Raspberlyのブログ

Raspberlyのブログ

Unityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。そろそろブログタイトル決めたい

勉強会レポ : Roppongi.unity #3

勉強会のレポート(メモ)です。
参加したのはこちら、「Roppongi.unity #3」
会場提供は「メルカリ」さんです。

roppongiunity.connpass.com

ハッシュタグ : #roppongiunity

f:id:Raspberly:20190626015329p:plain

 

 

動画はこちらから視聴できます。
後日Unity Learning Materialsにも掲載予定です。

t.co

learning.unity3d.jp

 

 

 

 

LT1. Unityで作ったゲームをDLカードで配布してみた話

なぜDLカード?

同人ゲームは即売会がメイン。
ダウンロード販売のみだと即売会で配布できない。

シリアルコードの認証機構

同じ話を過去にしてるのでこれを見てね。

www.slideshare.net

ダウンロード方式

ダウンロードそのものを縛る方法

シリアルコードを持っている人のみDL可能
違法アップロードに対応できない

ゲーム内の機能解放でやる方法

ゲーム自体は誰でも落とすことができ、シリアルコードで機能を解放する方式

機能解放にはユーザの認証機能が必要です。
ニフクラと自前のサーバーを用意してやりました。

こういう方式は手間がかかるのでオススメしないです。

ダウンロードカードの話

カードどう作るのか、Adobe製品でやるのが正攻法。
今回はUnityでやりました。

結果

手でやるより業者に任せた方がよい。

Unityでごり押しするよりAdobe製品に頼りましょう。

 

 

 


LT2. UnityでARアプリを作る時に面倒なことを解決する

ペチャバトというARゲームを会社でやっています。

ARアプリは主観的な体験なため、アプリ上で起こっていることを全て把握することはできません。

・基本的に動作確認はプレイモードでやりましょう
・ログ出力を積極的にしましょう

客観的にAR空間を見る方法

Photonを使ってプレイモードと同期させて確認する方法をとりました。
プレイモードで動作確認できるときはできるだけデバックしないようにしましょう。

 

これをPhotonを使わずに同期できるライブラリを開発中です。 

 

 

 

 


LT3. ML-Agentsの簡単な環境構築

一番の挫折ポイントは環境構築

ML-Agentはインストールしなければならないものがたくさんあります
そこで環境構築はDocker Composeを使いましょう
ML-Agentは機械学習フレームワークです

Docukerとは

PCに依存せずLinux環境を作れるツールです。

そしてDocker Composeとは複数のDockerを管理するツールです。
立ち上げるDockerは2つです。

開発環境の構築

やることが3つあります。

1.必要なファイルのコピー

必要なファイルが3つあります
公式リポジトリからコピーしましょう

2.Dockerファイルの準備

公式リポジトリから落としてきましょう
ただし最後のエントリーポイントだけ削除しましょう

3.Docker_Compose.ymlの準備

ここまでやれば、後はコマンドを打ち込むだけで動きます
ただし、コンテナのリソースに依存するため学習パフォーマンスは落ちます
勉強目的ならDocker Composeはオススメです

 

 

 

 


LT4. ReorderableListのすすめ

ReorderableListとは

UnityのEditor拡張の1つ、
GUIでListや配列を操作することができます。

あまりメジャーじゃないし、少し扱いづらい
ドキュメントもない。

Simple Reorderable List

便利だけども扱いづらい、そこでラップして使いやすくしました。

github.com

要素の入れ替え、追加削除が自由にできる。
独自クラスも大丈夫で色も変えれる。

汎用的に使え、シンプルさと見やすさを思想としました。
詳しい使い方はブログの方を参照してみてください

synamon.hatenablog.com

Editor拡張の知見

・EditorGUIはとSerializedPropertyを組み合わせると良い

・SerializePropertyの注意点
Countメソッドを使うとイテレーターが勝手に動いてします。
Copyを作ってそっちをカウントするといいでしょう。

・EditorSkinの考慮

Pro版とPersonal版どっちを使っているのか判定できます
それぞれ色を用意してあげるといいでしょう

 

 

 

 

 

LT5. 無線ジャイロコントローラを自前でUnityに実装

 

会社ではモフバンドを開発。
その中核にあるのがM5Stackというモジュールになります。

M5Stack

ESP32を備えた開発モジュール
Bluetoothで通信ができる

やったこと

M5Stackに書き込むファームウェアの作成
送られてきたデータを受け取るdllの作成
dllを組み込んだUnityプラグインの作成
UnityEditorで実行できるよう受け取ったデータをJSonに加工しやり取りするProxy作成

まとめるとこうなります

f:id:Raspberly:20190626003327p:plain

使ってみた感想

送信受信両方書くので敷居が高い

全プラットフォーム対応がつらい

 

 

 

 

 

 

LT6. Androidビルドを自動化しようとして挫折した話

ゼルダはすばらしいゲームです、ぜひともやってみてください。

Unityをやるうえでテラシュールブログさんはとても助かっています。

結論

CloudBuildを使いましょう

Douckerの話

DocukerImageを用意するのが大変
こちらを使うといいでしょう

Docker Hub

他にもめちゃくちゃ手順があり大変
Androidビルドもつらい・・・

そこで私はどうしたかというと、私はCIをあきらめました。

しかし楽はしたいため、エディター拡張でAndroidビルドをする機能を作りました。

まとめ

CIが必要ならCloudBuildを使うといいかも

 

 

 

 

 

 

LT7. Shortcut Manager の仕組みについて

ShortcutManagerとは

Unity2019.1から入った機能
ショートカットを編集できる機能です
View部分はUI Elementで動いています

できるようになったこと

・自由に設定できるようになった
・他のライブラリのショートカットも変更できる
・プロファイルで設定を切り替えることができる

仕組みとしてはプロファイルからマッピングを読み込み、
イベントトリガーに関数を渡しています。

ショートカットの種類

アクション
 普通のショートカット

クラッチ
 押している間動くショートカット

より進化したショートカット

直前の操作の繰り返しや2段階入力のショートカットなど。

二段階入力

入力Aと入力Bで実行されるもの。
(VisualStudioの例で補足すると、Ctr+K、Ctr+Cでコメントアウトができるようなものを指す)

これをやると何がいいのか

・ショートカットの体系化ができます
・外部のショートカットに対応できる

実装方針

キューさえ用意すれば、実装するのは難しいかというとそんなことはなさそう
将来的にはn段階のショートカットもできそうだが、クラッチと競合しそうではある

 

 

 

 

 

 

 

LT8. MagicOnionでマルチプレイゲームを作ってみる

サンプルを作ってみました。触ってみてください。

リアルタイムネットワークエンジンの選択肢はいろいろあります。
これまではモノビットやPhotonを使っていました。

MagicOnionについて

MagicOnion勉強会の資料などを参考にしてみてください。

https://ykimisaki-my.sharepoint.com/:p:/g/personal/y_kimisaki_kimisaki_jp/EX9J_lb_fj1GptYDZ4tX_ZcBanQZ_FfNDIpQDT4wOrZueQ?rtime=5l3fIoX51kg

 

MagicOnionならリアルタイム通信もAPI通信も同じくC#で書けるのが強み。

チュートリアルが容易されているので動かしてみるといいです。
しかし次のステップはどうするか・・・
そこでMagicOnionを使ったアクションゲーム風サンプルプロジェクトを作りました。

作ったサンプル

ルーム管理
キャラクターの同期
テキストチャット

作ってみて

かなり自由だが、Photonなどで用意されていたサクっと作れる機能はないので自作が必要。

 

 

実は今月初頭にMagicOnion勉強会というものがありました。
そちらのレポも残っているので興味のあるかたはどうぞ。

raspberly.hateblo.jp

 

 

 

 

 

 

 

懇親会

今回はお菓子持ちより制です。

f:id:Raspberly:20190626015416p:plain

f:id:Raspberly:20190626015514p:plain

f:id:Raspberly:20190626020553p:plain

 

 

 

 

 

 

 

 

 

告知タイム

書籍発売「Unityサウンド エキスパート養成講座」

前から告知されていました、一条さんの手掛けるUnityオーディオ完全に理解できる書籍が発売です。
会社に1冊、自宅1冊置きましょう。Amazonのページからドシドシ予約注文してください。

Unityサウンド エキスパート養成講座

Unityサウンド エキスパート養成講座

 

 

Gotanda.unity#13

次回の会場はサイバーエージェントさんになります。
既に埋まっていますが、もしかしたら増員できるかもしれないの参加登録よろしくおねがいします。

meetup.unity3d.jp

 

Unity++ 〜ショートセッション勉強会 presented by Unity部〜

豪華メンバーによるショートセッション勉強会です。

meetup.unity3d.jp

 

Unite2019 前々夜祭

Uniteの週の月曜日(祝)にLT大会を予定しています。
(まだ調整段階なので内容が変更になることもあります)

 

 

 

 

これまでのRoppongi.unityはこちら

raspberly.hateblo.jp

raspberly.hateblo.jp

 

 

 

 

間違っている所、消してほしいツイートなどがありましたらコメントにお願いします。