KYな雑記帳

個人的なメモ帳

社内アプコンに参加した感想とか反省とか

先日社内で行われていたアプリコンテストの提出日でした。
提出して一区切りついたので、その反省とかまとめておこうかと。

テーマ

今回のアプコンにはテーマがありました。

  • Unityを使う事
  • 位置情報を使う事

自分の場合はさらに、以下のテーマを加えてチャレンジしました

  • 一人で企画・実装・デザインにチャレンジしてみる
  • 一人で遊んでも楽しめるものにする

結果

いやまぁ、結果はひどかったですね。
なんとか完成したけど、Android用にビルドしてみると、Unity上では動いていた仕組みが動かなくなったり、バランス調整ができていなかったり。
作ったものは、ゲームをする場所の3DCGを背景に使ったステージで、インベーダーゲーム的なシューティングゲームを作って、
クリアした場所をセーブデータとして保存して、「○○を×回守った」という結果をライフログのように残して移動やプレイの記録を後から見れるようにした感じのものです。

企画面での反省点

まず、「何をつくるか?」というのを決めるのに時間をかけすぎたというのが反省点なんですよね。
既にいくつか位置情報ゲームをやっていたせいでそれに引っ張られて、うだうだ悩んでいて時間を浪費してしまいました。
この反省を書いていて、昔大学の先輩に言われた「スタートダッシュを決めることができるともっとよくできるよ」という言葉が思い出されました…
最初思いついたのは位置情報を使うという点では親和性は良かったと思うのですが、「あ、これ間に合うの無理だ」と感じてボツにしたり、
二つ目に思いついたのは、実際にゲーム画面を実装するところまでやってみると「なんか合わないな…」と感じてボツにしたり、
ここでいろいろと紆余曲折して時間を無駄にしていた感あります。

実装面での反省点

Unityだと仕方ない面はあるのですが、べた書き実装になってしまったのが反省点です。
企画面で時間をとりすぎて、Unityで使えるアーキテクチャとか調べずに、雑にコードを書いたり、アセットをインストールしてシーンに雑に突っ込んだりしていました。
調べてもいないのですが、よさげなのあるんですかね?
とりあえず知っているこのあたりを試してみたいなと思っているぐらいですが…
github.com

github.com


また、Unity上で動かしている段階では意図通りに動いていて、Android用にビルドしたら一部が思った通りに動かないという事態にあって、結局解決できないまま提出してしまいました。
テーマの位置情報に関わってくる部分だったので、そこを直せなかったのが反省点のひとつです。

デザイン面での反省点

インベーダーゲームを意識して作っていたので、フォントやボタンなどのUIやBGMを昔ながらのファミコン風な感じで統一するということを意識してやっていたのですが、全然手が回らなかったのが反省点です…
デザインの作り方や組み方や意識する個所を調べる暇もなく、自分の感性だけでやってしまったのが反省点ですね。
また、締め切り間際まで実装していたので、レベルデザインや操作性もほとんど調整できませんでした。

まとめ

反省点のまとめとしては、

  • スタートダッシュが遅かった
  • やり残した項目がいくつかある

が大きいかなと。
特に「スタートダッシュが遅い」に関しては、思い返してみると生活のいろんな場面で見受けられるので早く行動することを意識して生活していこういかと。

企画をじっくり一人で考えるのだったり、テーマを持って画面構成を作ってみるというのは、今まで個人開発でやってこなかったのでいい経験になったので、参加してよかったと思います。
途中脱落しないで、できは不格好でも完走できてよかったなと感じています。

運営してくれた先輩方には感謝です。

「Gotanda.mobile #1」に参加してきた感想など

5月20日(金)に行われたGotanda.mobileに参加してきました。
イベントの詳細はconnpassを参照で。
gotandamb.connpass.com

Talk 1. Full Kotlin をプロダクションで使い、リリースした話

この勉強会唯一のtalk枠。
募集していたけど、参加がなかったので唯一のtalk枠になったらしい。
(決して自分一人だけで話したいからというわけでないらしいw)

Kotlinとは?

Kotlinで開発したアプリの紹介

  • 位置情報連動型ゲーム
  • Model, ViewModel, Viewの3層アーキテクチャ
  • Full Kotlin
    • コードは基本的にKotlin, ライブラリも積極的にKotlin製
  • RxJava使っているよ

Full Kotlinで開発してみて

  • ファイル構成は、93%ぐらいKotlin(ほぼすべてのファイル)
Kotlin辛かったこと
  • Kotlinの破壊的変更
    • v1.0.0 以前の話
  • メソッド数が増える
  • Javaが書けなくなる
    • kotlinが素晴らしすぎるんや…
Kotlinで良かったこと
  • コードが短くなる
    • 同じような挙動でも、Kotlin 4行、Jva15行ぐらいの差
  • null 安全
  • コレクションメソッドが充実
    • 良くなかった点よりも圧倒的にKotlinで良かった点が多かった

まとめ

  • Kotlinは十分成熟した
  • Java共存できるので、ひとまず導入してみては?

資料



LT 1. Application Architecture for Unity UI

  • GameJamとかでUnity使っても使い捨てになるので辛い
  • なのでアーキテクチャを適用してみた!という話
  • 資料

  • Unity Reduxのサンプル

github.com

  • 自分もUnity使うので今後に期待しています!

LT 2. UniversalLinkの挙動調べてみた

  • Universal LInkの調査結果の話
  • 資料

slasla

LT 3. RxSwiftと愉快な仲間たち

  • RxSwiftを使うときに便利なものの紹介するよ!っていう話
  • Unit
  • Driver
    • モデルとUIのつなぎ役
    • ovserableでできるけど、役割を明確にしてくれて、便利にしてくれる
  • Variable
  • ControlEvent/ControlPropaty
    • UIパーツとRxを繋いでくれる
  • 使うと地味に便利だよ
  • 資料


  • RXよく知らない人なので便利さがよく分からなくて残念な自分だった…

LT 4. Android Emulator 2.0

  • Android Emulator がよくなったよという話
  • 今までは?
    • とにかく遅い(起動前、起動後も…)
  • Android Emulator 2.0
    • めっちゃ早くなっている
  • DEMO
    • 非力なMacでの実演
    • 数十秒ぐらいで起動した
    • 通信状況の良し悪しもエミュレートできる!
    • 電話やバッテリーも!
  • まとめ
    • 使えるものになっている!
    • Play StoreやChromeなどこみいったことを調べたいのならGennymotionや実機というすみ分け

LT 5. Kotlinのlet/run/applyのちょっとした話

  • Kotlinっぽくなる let/run/applyの使いドコロの話
  • 資料

www.slideshare.net

  • 説明を消し飛ばして笑いをとるLTだったw
  • let/applyを使うとすごくKotlinらしくなるらしい

LT 6. みんな好きだろ、補完。ハードコードをなくすライブラリをつくってみました

  • 自作ライブラリを作ったよという内容

github.com

  • みんなstarをつけましょう!

LT 7. SpriteKitで遊んでみよう

  • SpriteKitとは?
  • 資料


  • 関連

qiita.com

  • SpriteKit楽しそう、でもmac持っていない勢の私…

LT 8. Firebaseのcrashを試してみる

  • Firebase
    • モバイルアプリ開発専用のプラットフォームとSDKを提供
    • crashレポートを導入してみるという話
  • 資料


  • 関連

qiita.com

  • build.gradle に追加するだけで導入が終わる。簡単!
  • 実際にクラッシュしなくてもログを飛ばせるのよい。でも、数時間のラグがあるっぽいのがちょっと残念。

LT 9. TBD

  • アーキテクチャの話(おや、最初に似たような話を聞いたような…)
  • MVCの時代は終わっている
  • Fluxを紹介する話
  • Fluxに関する設計はたくさんある
  • Mobile界隈でViewに困っている人はFluxの考え方を試してみては?
  • 資料

感想

いろんなジャンルの話を広く浅く聞けてモチベーションが高まりました!お疲れさまでした!
さっそくAndroid Enulator 2.0 を試してみたのですが、自分のsurfaceだとなぜか起動しないという事態…

slackのチームもあるので、気になる方は参加してみてはどうでしょう?
Gotanda.mobile Slack

「JXUGC #13 東京 緊急開催 Xamarin のすべて!」に参加してきた感想

5月7日というGWの終わりに開催されたXamarinの勉強会、「JXUGC #13 東京 緊急開催 Xamarin のすべて!」に参加してきました。
のでその感想です。
イベント概要は、compassのページを参照で。
既に資料もいくつか上がっていますね。素晴らしいと思います。
jxug.connpass.com

Xamarinについて

そもそもXamarinって何?という人も多いと思います。
Xamarinとは、無料のクロスプラットフォーム開発ツールです。
Xamarinを使えばAndroidアプリもiOSアプリもC#で書け、ある程度コードの共通化もできるようです。
今回の勉強会の「Xamarin実践投入時に気を付けたいあれこれ」という講演がXamarinの初心者向けの非常にいい資料・講演だったので、そちらを確認してもらえるとどんなモノなのかよくわかると思います。

各講演について

はじめに + JXUGについて + なぜXamarinなのか

www.slideshare.net

  • コード例を交えたXamarinの紹介
  • JXUGというXamarin専門の勉強会の紹介
  • Android開発やiOS開発で見慣れた感じのコードで、C#の良いところを取り入れた開発ができるらしい
  • 若いプロダクトなので人柱募集中とのことw

ちょまど、Xamarinへの愛を語る

blogs.msdn.microsoft.com

  • Xamarin社の歴史の紹介
  • パワポを使わずにホワイトボードやブログ記事を利用した発表スタイルが斬新だった
  • 自分は前の方だったから問題なく見れたけど、後ろの人とか見えたのだろうか?

600件のプルリクエストから見たXamarinのはまりポイント

speakerdeck.com

  • Githubはいいぞ
    • すべてプルリクエストでレビューできる
    • 記録に残るので振り返りができる
  • Xamarinを使ったプロジェクトを開発していく中で辛かったポイントの紹介
  • Garaxy S4 4.2.1 の端末が特にヤバいので検証端末の一つに入れておくとキッチリテストできる
  • iOS8で最初のシャッター音がならないというiOSのバグがあるので、アプリの方で鳴らすようにコードを入れた
    • シャッター音は1108番

ネイティブアプリをXamarin.Formsに移植してみた

speakerdeck.com

  • iOSAndroidでUIの見せ方が違うの対応
    • Viewを三つの区間に分けて、iOSAndroidでどれを表示するかCustom Rendererで設定
  • ネイティブ特有の機能を使う場合は、個別の実装が必要そう
  • UIは?
    • Xamarin.Formsの標準の部品だけである程度再現可能
    • 独自実装はCustomRendererで実装
  • ビジネスロジックは基本は共通化可能
    • デバイス固有機能はDependecy Serviceで個別実装
  • 7割弱ぐらい共通化できていた

Formsで使えるライブラリやテクニックをご紹介

speakerdeck.com

  • 開発テクニックの紹介
    • ListView + Cell で ListView の中に Cell、Cell の中に Button という事ができる
    • Custom URL Schema の実装
  • 使えるライブラリの紹介
    • FFImageLoading で画像関連を良い感じに使える
    • ACR User Dialogs でポップアップを実装

DoroidKaigiアプリをXamarinへ移植

speakerdeck.com

  • 最新の Android ネイティブアプリを Xamarin.Android でどこまで再現可能か?という試み
  • 画面はxmlがそのまま使えた
  • 処理はコピペしてエラーをつぶしての力技でなんとかなった
  • ライブラリが一番の壁で、同等機能のライブラリを探したり、バインディングしたり、諦めたりした

Xamarin実践投入時に気を付けたいあれこれ

www.slideshare.net

  • Xamarin初心者、Xamarinに興味を持っている人向けの非常にいい発表だった
  • これから使い始めるなら、進化中のFormsをおすすめ
  • ゲームも作れる

windows.Forms アプリを Mac に移植するベストプラクティス

speakerdeck.com

  • 発表慣れしているのか面白く引き付けるような発表だった
  • 不遇な扱いを受けているXamarin.Macについての発表内容
  • Gochiusearchという検索ツールをXamarin.Macに移植してみた
  • 一番盛り上がった発表の気がする

Prism.Formsについて

www.slideshare.net

  • PrismとはXamarin.Formで使えるライブラリの一つ
  • MVVMパターンをサポートしている
  • プロジェクトテンプレートがあるので使うとよい

Xamarinでもクラウド監視したい

www.slideshare.net

  • 開発・デプロイした後の運用とか監視の話
  • 運用の話
  • HockeyAppに監視・運用を集約できる

LT

  • 端末のバッテリーが切れたのでメモなしです…

全体的に

全体的に濃い内容の勉強会でした。
初心者向けの講演も多かったので、自分みたいなXamarin分からない人でもついていけたのも良かったと思います。
しかし、「闇」「人柱」「頑張らなければ」という言葉が何度も出てくる勉強会は初めてな気がします。
日本でXamarin使っている人は今まで少なかったけど、無償化によって人が増えてくるはずなので、これからも進化し続けると期待しています。
個人で使ってみたいと思うけど、まずは容量を数十GB空けるところからだなぁー。

Xcodeにフォントを追加しようとしたらフリーズした話

アプリを作っていると、デフォルトのフォントだけでなく様々なフォントを使いたいと思いますよね?
特に今だとネットで探せば多くのフォントが探せて使えます。
今回は、Xcodeを使ってフォントを追加したら問題が起きたのでその備忘録です。

起きた問題

Xcodeiosアプリの画面レイアウトを実装しているときにフォントの指定があったので、Xcodeからinfo.plistを編集してアプリに新しくフォントを組み込みました。
そうしたらアプリがフリーズするようになってしまいました…

原因

相談したらある程度どのあたりでフリーズしているのかメドがついたので、ブレークポイントを使ってどの部分でフリーズしているのか確認しました。
そうしたら、 CGFontCreateWithDataProvider という関数で処理が止まっていました。
この関数は、サーバーなどにおいてあるフォントファイルをダウンロードしてきて、アプリで使えるように登録する部分で使われていました。
どうして、そんなことをしているかというと、フォントファイルであるttfファイルは重いので(1Mぐらいある)いくつもフォントを使おうおするとその分アプリの容量が増えてしまいます。
しかし、App Storeでは50Mを超えるとwifi環境でないとアプリをダウンロード・インストールできなくなります。
それを避けるために、サーバーに多くのフォントファイルを置いて、起動したら画面を出す前にフォントファイルをダウンロードして使えるように登録している、というわけです。
しかし、Xcodeからもフォントを組み込んでいると、Xcodeから組み込まれたフォントが読まれる前にこの関数が呼ばれるとフリーズしてしまうみたいです。

解決方法

解決策としては簡単で、この CGFontCreateWithDataProvider が呼ばれる前にIUFont関数を実行して、Xcodeから組み込まれたフォントを読み込めばいい感じでした。

Unite2016で受けたセッションたち

4レンダァ!

4月4日5日に2日間開催されたUnite2016 Tokyo に参加してきました。
今回はそれでうけたセッショの軽いまとめです。
一部を除いて資料は公開されるし動画も公開されるので、特に印象に残ったセッションや資料が公開されないセッションを中心に載せます。
今回のUniteで行われたセッションや公開されている資料はこちら。
japan.unity3d.com


Unity+スマホで3Dゲーム開発/最適化するための考え方

開発実績を通じて、ゲーム開発の現状を紹介や最適化の考えやポイントを紹介が主な内容でした。
中々にディープな内容でした。
主に企業が多くの人・端末向けに出すときに様々な端末の性能に対してどうチューニングするか?といった内容のように思えました
この3Dゲームは60fpsを目標にしていたが、端末によって性能が違うのでユーザーで設定できるようにした。
CPUの負荷測定にはFPSは目安程度に使って、特定の処理にどれくらいの時間がかかっているかという実時間を計測した。
Directシーンを活用して、測定しやすい専用の環境を用意しておくのがポイント。
GPUの負荷測定にはGPU Profilerを利用するのがおすすめ。
もし○○したらどうなる?という観点は大事なので、各要素を簡単にon/offできるようにしておくといろいろ試せて開発効率は上がる。
原理を知らないとどこが悪いのか、どこまでリッチにしてもいいのか、という事が分からないので、エンジニアの皆さんは原理を勉強しましょうという言葉が印象的でした。
その際に、「ゲームアプリの数学」と「Computer Graphics Gems JP 」の二つの本をおすすめしていました。

実践!Oculus Rift - VR開発テクニック

Unityを使ってOculusで動くVRゲーム・アプリを作って、プラットフォームに出してみましょう、といった内容でした。
開発を行うには、以下のサイトから登録して、SDKをゲームに導入する。
developer.oculus.com

SDKでは、非同期タイムアウトのサポートやプラットフォームのSDKやoculusリモコンのサポートができるみたいです。
利用するためには、Unity5.3.4.p1以上のバージョンにして、OVRPlugin for Unity5のプラグインの導入が必要との事でした。
多くの場合、すでにあるものをVR化してもVR酔いなどで快適ではない。
まずは、Oculus Sample Framework や VRのサンプルを体感してノウハウを体感するのが良いとの事でした。
また、VRコンテンツを配信するプラットフォームですが、α版β版の配信の際にはユーザー指定での配信ができるて実際に本番(?)環境で試せるのが魅力的に思えました。

Unity x PlayStation VR コンテンツを作ってリリースするまでのお話

Unityで作ったものをPSVRに対応させる方法の話と、それをPSVRのストアでどうやって販売するかという話でした。
アピール面のほうが強い印象でしたね。
Unityで作られたものならば、設定を変えたり、スクリプトを少したしただけで、簡単にPSVRに対応させることができるようです。

  • Player Settingsから解像度を変更
  • Virtual Reality Supportedにチェック
  • AudioOutからAudioOuot3Dに変更
  • カメラ構成をTarget EyeをBothに
  • スクリプトを修正する

という手順でした。
ただし、PSVR用の開発機材が必要なので、「まずは契約を」とのことでした。
UnityコンテンツをPSVRのストアで売るためにも、「まずは契約」が必要とのことでした。
契約できるのは、日本に法人登録されている企業が条件とのことでしたが、個人で出したい場合はインディパブリッシャーを通して配信できるようです。
どちらにせよ、個人で配信したいのなら、企画案やデモを持ち込んで相談してくださいとのことでした。

Unity上級者を目指すなら知っておくべきデバッグテクニック集

このセッションは資料が上がっているので、詳しくは資料を見た方がいいです。
http://japan.unity3d.com/unite/unite2016/files/DAY1_1900_Room1_Yamamura.pdf

バグの検証は「入力の方法」→「参照しているデータ」→「ソースコード」→「OSやソフトなど動いているルール」の順で確認すると楽に検証できるとのことでした。

"Age of Empires: World Domination" 開発の創意工夫

このセッションは資料が上がっているので、詳しくは資料を見た方がいいです。
http://japan.unity3d.com/unite/unite2016/files/DAY2_1400_room2_SatoYuichi.pdf

工夫として以下のポイントを挙げられていました。

  • 多言語対応の判断を早めにして、画像にテキストは埋め込まないようにする。
  • プロパティの変更→AssetBundleの流れを自動化しておくと、調整のフェーズが楽
  • 自動化を見越した命名規則を初期に決めておく
  • 描画負荷の設定は、Unityの設定やプロパティの変更で対応可能にしておくと作り直しが発生しない

Fate/Grand Orderにおける、ディライトワークス流Unity活用術

FGOのバトルアニメーション、宝具演出でのUnityの活用を紹介されていました。
バトルアニメーションは、PlayMakerやuSequencerを利用して作成し、それを動画・アニメーションの知識・ノウハウのある人に監修してもらって、そのフィードバックから修正をしてブラッシュアップしているとのことでした。
バトルモーションは、クラスごとに共通化して量産しやすい形にしたかったそうですが、やっぱり批判があったようですね。
(低レアはともかく、高レアのキャラのモーションも共通化する案もあったみたいです…)
実装の際には、横方向に振り回すなど立体的な動きを出すために、Mayaで2Dのキャラを作ってモーションを付けているとのことでした。
バトルモーションのエフェクトはUnityのパーティクルを利用しているようでした。
エフェクトを載せる可能性がある部分にダミーノードを載せ、ノードにエフェクトのプレハブを載せるスクリプトを書いて、エフェクトを出しているようです。
このゲームはキャラを再臨させるとイラストが大きく変わるため、バトルキャラの見た目も大きく変える必要があります。
ただし、その分キャラデータを用意すると容量がすごく大きくなるため、1枚のテクスチャに再臨分のテクスチャを埋め込み、共通のボーンを利用してMayaの方でテクスチャを重ねてモーションを出力、プログラムで表示・非表示を制御しているとのことでした。
「努力と根性です」の言葉でセッションをまとめていました。
巨大なIPを借りて作っているので、クオリティ関連はいろいろとあったんだろうなぁと、言葉にはしていませんでしたが、そう感じられましたね…

Unityを使った個人ゲーム開発における「収益化」の現状と未来

このセッションも資料が上がっていますので、詳しくは資料を見た方がいいです。
http://japan.unity3d.com/unite/unite2016/files/DAY2_1700_Room2_IchijoTakaaki.pdf

タイトルに収益化とうたっていますが、実際はそのために、完成させる・販売するために人に知ってもらうために、開発経験からくるポイントの内容でした。
技術面に関しては、ブログに書いたからブログを読んでね。とのことでした。
歪んだコードは投げ捨てろ

資料をみれば全部書いてあるのですが、以下のことが印象に残っています。

  • 仕事:7・個人開発の創作:3、あるいは半々ぐらいの力の入れようでもいいのではないか
  • 自分に鞭を打つために、コワーキングスペースで作業、休日を殺せ、展示会ドリブン開発
  • 自分の狂気を見つけ、狂気を軸にした作品を

感想

講演中にもっとうまくポイントを抑えたメモをとれるように意識してとっていかないと、あとからまとめるときに大変だ…

Unite2016に参加した感想

サンレンダァ!

4月4日5日に2日間開催されたUnite2016 Tokyo に参加してきました。
今回はそれに参加した感想です。

Uniteとは?

年に一度のUnity関連のお祭りです。
Unityというのはゲームを作るための環境などを提供する、俗にいうゲームエンジンですね。
国内外から様々な人が参加されていました。
詳しくは公式ホームページを。
japan.unity3d.com

ユニティちゃんについて

ユニティちゃんというのは、Unityを使用するときにライセンス表記すれば誰でも使える素材集、そしてそのキャラクターです。
今回のUniteのユニティちゃんは、和服だったのですが、メチャクチャ可愛かったです!
http://japan.unity3d.com/unite/unite2016/images/goods/01.jpg
(今回のユニティちゃんの衣装のアセットでないかな~)
各セッションの前にユニティちゃんが注意事項を読み上げるのですが、その「アテンションプリーズ」って言葉がかわいかったw

講演資料について

Uniteのセッションは一部を除いて、発表資料を公開してくれるのですが、今回の資料の公開速度が半端なく早かったです。
即日公開というか、セッションが終わった瞬間に資料をアップロードしているのかよ?ってなぐらいに早かったと感じました。
公開されている資料は下から
japan.unity3d.com

また、デモを交えた発表の場合は資料だけ見てもあまり分からないかもですが、セッションの様子を動画で撮影していたので、その動画も公開されるようです。
ホームページをみると4月下旬に公開されるようですね。
楽しみですし、嬉しい配慮です。

S席チケットについて

今回からS席チケットというものを販売していました。
これは500円で買える優先席みたいなものです。
どうしても見たいけど、参加者多いし入れるだろうか?といった心配を解消するためのものだと思います。
席だけなら500円は高いと思う人がいるかもしれませんが、S席を買った人だけが使えるラウンジがあって、軽食やコーヒーを利用できるので、そこまで高いとは思いませんでした。
買おうと思ったセッションは売り切れでしたが…

体験ブースについて

体験ブースではUnityで作られた作品の体験や、Oculus Rift や PSVR の体験もできました。
残念ながら、Oculus や PSVR の体験整理券は手に入らなかったです。
去年はお昼から受付に行っても体験できたし、GearVR は整理券なくても体験できたので、この一年でVRへの関心度がかなり大きくなっているのだろうなと感じました。

カメラのシャッター音について

カメラのシャッター去年のUniteで目立った問題でした。
参加者の皆さんも去年のカメラのシャッター音が気になっていたことや、
今年はセッション資料の公開の速さや、各セッション前の注意事項で「このセッションの資料は公開されるから、カメラでスライドを撮る必要はないよ、撮る際は無音アプリ使うなどで周りの人に配慮してね」とか「このセッションは撮影・録音禁止だよ」といったものが流れこともあって、
今年はほとんどカメラのシャッター音はしませんでした。

全体的に

Uniteには去年も参加したので、今年で2回目になりますが、やっぱり楽しかったです。
興味のあるものに関する様々な人のセッションを聞けたり、いろいろな作品を体験出来たり、モチベーションがあがりますね。
また、今回は有給をとって自腹を使って参加したので、かなり気楽に見たいものを見て体験してと、自由に参加できたのもいい感じでした。
また来年もあるのなら参加したいですね。

Unite 2016 トレーニングデイに参加してきました。

ニレンダァ!!

さて、4月3日(日)に行われたUnite 2016 Tokyo トレーニングデイに参加してきました。
概要については公式ホームページを参照で。
japan.unity3d.com


自分は、コースBの「ゲームアプリ UI & 2D ゲーム作りワークショップ」に参加しました。
Unityを使ってモノを作ったことはあるものの、UIはしっかりと作ったことがなかったので、ここで基礎やUIの考え方を学ぼうと思ってこちらのコースにしました。
コースBは二人の講師のかたが交代で以下の二つのワークショップをしてくれました。

  • Unity2Dではじめる2Dゲーム作り初心者徹底ガイド
  • ゲームアプリのUI 考え方と実装

Unity2Dではじめる2Dゲーム作り初心者徹底ガイド

こちらでは、Unityの基礎と作り方の説明、そして実際に2Dゲームを作りながらのワークショップでした。
2Dアクションゲームを作りながら、設定の仕方、アニメーションの方法、レベルデザインの考え方を学びました。
あまり好きでなかったMecanimとAnimatorを触ったのですが、思ったより難しくなくて、ただの食わず嫌いだったのかなと感じました。
また、レベルデザインの話は、今後気にしておきたい部分でした。
レベルデザインとは難易度調整の事ではなく、ゲームの場や流れを設計すること。
ユーザーには、幅(パラメータを調整することでバリエーションを出すこと)と、深さ(敵の種類や地形を組み合わせることでプレイヤーに戦略を考えさせること)の二つを使ってコントラストを出していくことが重要である。
ただし、幅や深さを次々に出すのではなく、緩急をつけることで面白さを感じる時間を作り出し、フック・前兆を用意してユーザーに学習や失敗の原因を考えさせることができるデザインを持っているのが、面白いゲームである。
とのこと。
マリオとかゼルダとかはいい例なので、今後はそういった観点も持ちたいです。

ゲームアプリのUI 考え方と実装

こちらは、UIの作り方を一緒にやるというワークショップでした。
UnityのUIの作り方は独特で、けっこう難しく苦手意識がありましたが、今回のワークショップでその意識は少し消えたと思います。
(いや、難しい事には変わりはないのですが…)
このワークショップの資料は既に公開されているので、興味のある方は見てみるといいでしょう。
http://uiunity.com/u16.pdf

感想

トレーニングディは6時間だったのですが、長いようで短いワークショップでした。
やはり、ワークショップ形式で実際に手を動かしながら学べるのはいいですね。
今回はTAの方々がいて、躓いてしまっても、質問しやすい雰囲気がありました。
進行自体は早めだったので、TAの方々がいてくださって助かったと思います。
講師方も、TAの方々もありがとうございました!

去年はUnite当日にワークショップはありましたが、当日はセッションや展示や作品体験など盛りだくさんなので、今回のように前日にやってくれて、嬉しかったです。

明日と明後日のUniteは有給と自腹でいくので、見たいものを気ままに見て体験してこようと思っています。
いやぁ~、楽しみ!