Raspberlyのブログ

Raspberlyのブログ

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

勉強会レポ : 第1回 Looking Glass勉強会

勉強会のレポート(メモ)です。
参加したのはこちら、「第1回 Looking Glass勉強会」
会場は「Unity非同期完全に理解した勉強会」と同じ富士通クラウドテクノロジーズさんです。

lookingglass.connpass.com

 

 

f:id:Raspberly:20190220114216j:plain

 

時間 内容 登壇者
18:30 開場  
19:00 開始  
19:00~19:10 開会のあいさつ ザバイオーネ ( @z_zabaglione) & 事務局
19:10~19:20 【緊急追加!】CEO SHAWNさんのスピーチ SHAWN
19:20~19:30 Looking Glassの技術的複数運用方法 光輝 ( @koukiwf)
19:30~19:40 今まで作ったアプリとインタラクションデザインについて decchi ( @decchi)
19:40~19:50 バーチャルキャストのLookingGlass対応と、その実装上の工夫 MIRO ( @MobileHackerz)
19:50~20:00 休憩&展示会  
20:00~20:10 レンチキュラーディスプレイ表示の基礎知識 mer2 ( @_mer2 )
20:10~20:20 自作ゲームをLooking Glassに対応させたお話 たなかゆう ( @am1tanaka)
20:20~20:30 VR180動画をLookingGlassで裸眼立体視する Nakaji Kohki / リリカちゃん ( @nkjzm)
20:30~20:40 Looking GlassのRendering処理を最適化してみる 黒河優介 ( @wotakuro)
20:40~21:30 交流&展示物鑑賞会&適宜解散  
21:30~22:00 完全撤収!  

 

 

 

 

 



0. 開会のあいさつ

ニフクラという勉強会会場を貸し出すサービスをしています。
現在知名度があまりないのでお友達にバンバン宣伝していってくださーい。

fjct.fujitsu.com

MoguraVRは出禁

 

 

 

1. 【緊急追加!】CEO SHAWNさんのスピーチ

私たちは映画からホログラムを実現するという夢を持っています。
私たちの会社では別の方法でホログラムの実現を、いろいろなスケール・場所で実現できるように考えてきました。
LookingGlassは日本での反応が早く、強力なため日本をサポートするため頑張ってきました。


2/26に日本初上陸!
60日間展開、価格も限定価格で、日本のコミュニティ限定で特典も用意しています。
新しいツールもたくさん作っています、是非お友達に広めてください、広がるほど日本に協力できるようになります。
来月に日本語を喋れる正社員を雇うのでサポートもできると思います。
最後に、この勉強会を開催したみなさんありがとうございます。

 

 

 

 

 

2. Looking Glassの技術的複数運用方法

qiita.com

2台のLookingGlassを運用した話


前提環境として、LookingGlassを2台以上持っている方、動かすことのできる向け。
メリットは横に並べるとキャラを移動できる、
方向は一視点だが、並べるとわりと気にならない。
複数運用は公式のSDKで対応されると思うので、いますぐやりたい方はどうぞ。

おまけ

LookingGlassのパラメータはインスペクターから操作できます。
奥行の変更など。

 

 

 

 


3. 今まで作ったアプリとインタラクションデザインについて

www.slideshare.net

いままでやったことについて話します。

いままで作ったアプリについて

1.モデルをわしゃわしゃ動かすもの
2.音声対話アプリ(VRMでキャラ差し替え、感情認識などをやりました)

今日はLookingGlassの中に小さな世界を作る箱庭アプリを展示しています。

インタラクションデザイン

目指したのは、「世界を作ることに夢中になる」ようにすること

・インタラクション
 直感的にやるにはリープモーションがいい、マウスとかじゃだめ
移動回転、ピンチ操作などでできるようにしています
・夢中になるようにした
音声操作、スマートスピーカーで動くようにしました

 

箱庭を作ってみてわかったこと

・LeapMotionの方がマウスよりも早い

立体視がわかりやすい

・操作してる感が楽しい
・目を離さないで操作できるので集中できる

 

 

 

 

 

4. バーチャルキャストのLookingGlass対応と、その実装上の工夫

スライド

https://niconare.nicovideo.jp/watch/kn4006

バーチャルキャストとは何か

VRスタジオを作って生放送をするサービス。
これのLookingGlass対応バージョンをすでにリリースしています。

ダイレクトビューモードとは

バーチャルキャストでは他のスタジオに参加する機能があるが、
ダイレクトビューモードはVR機器を使わずにスタジオ内を見ることができるモード。

対応時の課題

1.far clipが狭いため遠くが見えない
2.移る範囲が狭い
3.複数のカメラがある時、LookingGlassは映すのか

 HoloPlaySDKは非常に強力なので初期設定は活かしつつ対応

カメラは完全固定ではなく、後から遅れて追いかけるようにする。
自撮りカメラはUnityChanLiveの背面の大きなスクリーンのように表示。

 

 

 

 

 


5. レンチキュラーディスプレイ表示の基礎知

スライド

docs.google.com

 

よくある質問について

どういう仕組みなの?

立体写真と同じです。写真と違い液晶なので動画もできる。

 

なぜ立体に見えるのか?

レンチキュラーレンズを使っているから。
レンチキュラー
人間に左右の目で違う絵が見えるようになる

 

なんでレンズは斜めになっているの?

一般的なモニターはRGBで並んでいる、そのまま表示すると真っ白ではなくレインボーカラーになっている。

斜めにしているのはしょうがなくしているだけでなく、いいメリットもあります
スライドの画像を見てね.。

斜めにすることで横方向の解像度が3倍になる。

 

 

 

 


6. 自作ゲームをLooking Glassに対応させたお話

docs.google.com

パズルゲームをLookingGlassに対応させたときにやったこと、
対応することでできたメリットについて話します。

 

やったこと

1. まずは立体視対応

すぐに対応させることができます。
公式からSDKをダウンロード、インポートするだけ。

2. マウスカーソルの位置

移動先をクリックする操作だが、
カーソルが浮いてしまうのでどこさしてるのかわからなくなる。
cameraからrayを指して、UIを表示するようにする。

3. UIの押す場所がわからなくなる

UIに近づいたら2D用のカーソルを表示するようにして対応

4. ポストプロセス

視野角がおかしくなる 平行投影なら問題なし。
sleek renderというアセットがおすすめです。モバイル用なので軽量。


メリット

奥行をうまくひょうげんできる。
集客力があります。

まとめ

LookingGlass対応は簡単。
立体視をしてみて初めてわかることがある。

 

 

 

 

7. VR180動画をLookingGlassで裸眼立体視する

スライド

VR180動画をLookingGlassで裸眼立体視する / Stereoscopic VR 180 video with naked eye with The Looking Glass - Speaker Deck

VR180はVR向けの動画画像フォーマットです。
LookingGlassと相性がよく、撮影したデモが立体に見える。

 

手順

VR180は描画用のメッシュを持っているため、これをRenderTextureに張り付ける。
2枚のテクスチャを1枚のテクスチャとして投影し、平面で見えるようにする。
最後に描画して完成。

 

 

 


8. Looking GlassのRendering処理を最適化してみる

www.slideshare.net

LookingGlassのレンダリング負荷は高い。

描画をどう最適化するか、実は繰返し処理が非常に重い。

Camera.Renderはカリング->デプスチェック->シャドウマップ生成->最後に合成するという流れです。
実はカリングとシャドウマップは繰り返しやっているが結果は毎回同じになるはずです。
なのでループの外に出せそう。

SRPを作ってやろう

独自のRenderPipelineでやりました。
やるのはシャドウマップをループの外に出すこと。
結果的にうまくいきました。

 

でもこんなんじゃまだ満足できない、
いろいろなものをあきらめてもっと速度を上げに行くこともできます。
しかし週末にゲームをしていてやる時間がなくなりました。

 

 

 

 

緊急速報

3/30~31にLookingGlassハッカソンが開催されます。
2/20 12:00からconnpassで募集開始です。

lookingglass.connpass.com

 

 

 

タイムライン

 

 

 

展示会の様子

展示されている作品一覧や詳細はイベントページをご覧ください。

 

 

f:id:Raspberly:20190220114216j:plain

f:id:Raspberly:20190220114701j:plain

f:id:Raspberly:20190220114708j:plain

f:id:Raspberly:20190220114717j:plain

f:id:Raspberly:20190220114735j:plain

 

f:id:Raspberly:20190220114746j:plain





 

 

 

 

 間違っているところ、ツイートを消してほしい箇所はコメントでお願いします。

勉強会レポ : Unity Designer's Cafe #1

 

 

勉強会のレポート(メモ)です。
参加したのはこちら、「Unity Designer's Cafe #1」

unity-designers-cafe.connpass.comハッシュタグ : #UniDesCafe 

 

f:id:Raspberly:20190205003145j:plain

 

今回はカフェということでととさんもカフェの店員風にドレスアップ。
BGMもカフェっぽいものになっています。

f:id:Raspberly:20190205003209j:plain

 

 

各スライドは後日Twitterなどで公開されるようです。

 

 

 

タイムスケジュール

  内容 担当
19:00 受付開始 -
19:30 イントロダクション 青木とと@lycoris102
19:40 初Unityはガワ替えから始めてみよう ワンダープラネット 永田さん
19:50 新2DAnimationツール触ってみた ワンダープラネット 永田さん
20:00 UIデザイナーのUnity事情 〜ワークフロー編〜 ワンダープラネット 山口さん
20:10 休憩 -
20:20 デザイナーが知っておくと便利なuGUIの機能と注意点など Hiromasa Suzuki さん
20:30 UIと2D/3D座標と私
~2D/3Dを混在させたUIを作ったら、とてもめんどくさかった話~
hamazaki さん
20:40 UnityでリアルタイムMVを作ってみる Ganon さん
20:50 Constraint機能を2Dアニメーションで活用してみる やまたく さん
21:00 クロージング -
21:10 懇親会 -
22:00 片付け -

 

 

 

 

イントロダクション

Unity Designer's Cafeは Unityをさわっている。これからさわりたいデザイナー向けの勉強会です。


スポンサー様

ひらきさん(ワンダープラネット)

会場提供と懇親会費用はワンダープラネットさんです。
Wantedlyをフォローしてください。

www.wantedly.com弊社は楽しいねと言い合えるようなサービス・アプリを作ることをミッションとしています。
弊社のデザイナーもUnityもさわっています。
現在デザイナー、エンジニア、プランナーを募集しております。

 

 

 

 

1. 初Unityはガワ替えから始めてみよう

docs.google.com


Unityをはじめてさわる時、何からはじめていいかわからない時は、
ガワ替えから始めてみましょう。

 

勝ったッ!第1部 完!

 

なぜおすすめか

初心者には課題がある

1. モチベが上がらない

Unityとは、インストール、画面の見方などなど

 

2. わからないことが多くてパンクする

Zってなんなの?座標の単位は?
マテリアル?プレハブ?なにそれ

実は現場ではそこまで詳しくなくてもやっていけます。
まずはUnityと知り合いになることから始めましょう。



事例紹介

ガワ替えをするという研修をしました。

どうだったか

簡単に結果が見えるのでモチベアップ。
やりたいことがわいてきて勉強しだす。

結果、Unityと知り合いになれる。


教える側のメリット

その人の得意不得意が見えてきます。

 

ガワ替えにぴったりのプロジェクトはこちらのアカウントで紹介します。

ランディ (@LandyNagata) | Twitter

 

 

 

 

 

2. 新2DAnimationツール触ってみた

docs.google.com


新しい2DAnimationツールを触った話をします。

2Dのボーンアニメーションを作るのにおすすめです。
ぜひ触ってみてください。

 

勝ったッ!第2部 完!


じゃあlive2dみたいなのはできるのか?

弊社のデザイナーにためしてもらいましたが、正直きつい。

なぜかきついか
フリーフォーム変形(FFD)がないため、立体的に見せる機能がない。
SpineもFFDができないが頂点アニメーションができるため、それっぽいことはできている。

 

でもなんとかして頂点アニメーションしたい

f:id:Raspberly:20190205003606j:plain

どうやっているか

ポリゴン分割をし、9つのボーンを連携してFFDっぽいことをしています。


Live2dのrigっぽいこともできないか試しました。
できましたけど。けっこうしんどい。
ここまで頑張るなら他のツールを使った方がいいかと・・・


ただ2danimationのメリットとしてボーンが見れます。
剣を持たせたり、アニメーションの動きと連動させたりできます。


まとめ

メリット

・無料
・機能拡張もできる
shurikenと相性がいい

デメリット

・FFDができない
・他の便利な機能はあまりない

 

アクションゲームのキャラクターなどに向いていると思います

 

 

 

 

 

3. UIデザイナーのUnity事情 〜ワークフロー編〜

UIデザイナーのUnity事情 〜ワークフロー心得編〜 - Speaker Deck


技術的なtipsではなく、心得の方の話をします。

そもそもUIデザイナーってどのくらいunityをいじるのか

積極的に触っていますし、いじっていったほうがいいと思います。
なぜならエンジニア(クライアント)との連携が重要になるからです。

デザイナーは画面デザインだけが役割ではない。
積極的に絡んでいくことが大事。


ゲームのUIデザインとは

ニュートラルなモーション、シームレスな遷移などインタラクションなものになることが多い。
そのため形式的な分担では効率が悪い。

 

実際に実装するうえで

uguiではできないこと難しいことをエンジニアに相談して、作業が効率化されたり
新しいことができるようになることがあります。
ただ闇雲に相談することはよくない。

 

注意点として

アセット・プレハブの命名規則や構造のルール、独自のコンポーネントの必要を検討するのがよい。
ここらへんは初期段階で決めておきましょう。余計なことを考えなくても済むようになります。
ディレクトリ構造なども大事。

 

f:id:Raspberly:20190205011455j:plain

独自コンポーネントで作業効率を向上させるためのカスタマイズもよい。

 

 

 

 

4. デザイナーが知っておくと便利なuGUIの機能と注意点など

docs.google.com

uguiできること、便利な機能、注意点について紹介します。
※非常に多いです、各項目の詳細は自分で調べるといいと思います。


・Image

Spriteを設定します。imageにはimagetypeという項目があります。

・RawImage
テクスチャを設定でき、UVアニメーションなどできます。

・RenderTexture
カメラの映像をテクスチャとして使うことができます。
・Effect
影やアウトラインなどをつけることができます。

・Position as UV1
あまりつかわれてない機能、uiにuv1を追加する機能です。

・Layout
uiをグループごとに制御する機能。

・Layout group
子オブジェクトを整列させる機能。

・Layout Elements
画像比率を維持しながらいろいろな解像度に対応させることができる。

・Content Size Filter
子のサイズ 下図に応じて大きさを制御する。

Canvas Render Mode
canvas全体の表示方法を設定します。

Canvas Scaler
uiのサイズを設定する。

・Ancher
uiをどこを基準として配置するかを決める。

・Pivot
UIの基点を設定する。

 

 

 

 

 

 

5. UIと2D/3D座標と私 ~2D/3Dを混在させたUIを作ったら、とてもめんどくさかった話~

www.slideshare.net

リリースした時の振り返りについて話します。
2dと3dを融合させるのはめんどくさい。

1.座標変換がめんどくさい

ワールド、スクリーン、ビューポート、それぞれの座標系の変換


2. UIに必要なシステムの構築がめんどくさい

3Dなどは自分で実装する必要があります。


3. 端末によって違う画面比の対応がめんどくさい

背景に3Dをおくだけでもめんどくさい。
魅せたいものがどの端末でも見られるか、UIが重なっていないかなどめんどくさい。

 

解決策

基本的に気にしないことにしました。見切れても「こういう絵である」と開き直る。

平行投影カメラを使う、これをメインカメラに加算する。
パースがかからないので考え方が楽になる。

まとめ

空間設計はゲーム制作に役立ちます
気軽に個人開発にトライをしてみましょう

 

 

 

 

 

 

 

機材トラブルにより、順番を入れ替えています。

6. Constraint機能を2Dアニメーションで活用してみる

docs.google.com

Constraintとは何かについて紹介します。
使うしばり 2dで使うボーンなし 変形なし
Constraintは参照元のオブジェクトの位置大きさ角度を自身に影響させる機能です。
つまり親子関係にしなくても、移動や回転の影響を受けるようにできる機能

 

・position Constraint 移動
・Rotation Constraint 回転
・Scale Constraint 拡大縮小
・Parent Constraint 一見親子関係だがスケールは含んでいない。

Constraintのつけ方

参照させたいオブジェクトに対してconstraintのコンポーネントを入れます。
sourceに参照させたいオブジェクトアタッチしアクティブを押せば確定。

複数のオブジェクトがある場合は平均値をとります。
とても簡単です、簡単なので工夫もできます。

 

使い道

・リグもどきでいい感じにしたい時など。
・しっぽやゆびなど別にコントロールしたほうがいいものに使う。
・描画順を無視して操作する。

・下のものをweightして動かしたい
・アウトラインをつけてみる(アウトライン部分のオブジェクトを後ろにくっつける)
・weightをずらしながらつけることで顔の動きもできる


何かの機会で活用してみてください

 

 

 

 

 

 

 

7. UnityでリアルタイムMVを作ってみる

テーマ
「デザイナーにとってのunity」=エンジニアのためのツールではなく
デザイナーがやりたいことをできるようにするツールとします

ここでデモ

f:id:Raspberly:20190205012954j:plain

ユニティちゃんライブで、スタジオを作って差し替えるという試み。
3Dツールを一切使わず、スクリプトも使わずUnityで作成しました。

どう作ったか

3Dオブジェクトはプリミティブを使っています。多少の変形はProBuilderで。
レンズフレアは無料アセット

assetstore.unity.com
レーザーライトはLineRenderer。

絵作りはpostprocessで作成。

このプロジェクト自体は40時間ほどで完成しました。

 

まとめ

今はunityの機能、Aseetを使えば個人でも簡単に作れるようになってきました。
あなたも始めてみましょう。

 

 

 

 

 

 

感想

デザイナーさんの勉強会は始めてでした。エンジニアだらけの勉強会とはまた違う雰囲気。
デザイナー向けの勉強会とのことでしたが、エンジニアでも楽しめる内容でした。
第2回目は2~3か月後とのことですが、どんどん魔境になっていくのでしょうか。

懇親会はカフェということでサンドイッチなどの軽食です。

f:id:Raspberly:20190205013118j:plain

お酒がないのはカフェだからかな。
あれ?お酒を提供できないのは喫茶店であってカフェなら問題ないのでh

 

帰り際に感想や要望を書き込めるホワイトボードです。
今回は付箋で張り付けていく方式になっています。

f:id:Raspberly:20190205013148j:plain

 

 

 

 

タイムライン

 

 

 

勉強会レポ : Unity道場 1月 ~LWRPとシェーダー~

 

 

勉強会のレポート(メモ)です。
参加したのはこちら、「Unity道場 1月 ~LWRPとシェーダー~」
2019年最初のUnity道場です。

meetup.unity3d.jp

f:id:Raspberly:20190131020459j:plain

f:id:Raspberly:20190131004159j:plain

Unity道場はUnityJapanと参加者だけでなく、参加者同士の交流会でもあります。
さらにUnityなんでも相談所を設置してあります。

 

動画、スライドは後日公開されます。
公開され次第こちらにもリンクを張ります。

 

 動画が公開されました。

www.twitch.tv

 

 

 

 

 

1. 軽量レンダーパイプライン、Light Weight Renderer Pipeline…とは

f:id:Raspberly:20190131004808j:plain

f:id:Raspberly:20190131004815j:plain


まずは何もいわずにこれを見て

f:id:Raspberly:20190131005153j:plain

いい感じに見えるでしょう。LWRPを使って作られています。

 

LWRP

いままでと同じことができます。
追加でカスタムシェーダーの表現ができます.。
それ以外にも、パイプラインのカスタマイズもやりやすい(ブラーなど)。

さらに軽くて速い。ほとんど60fpsでます。

 

 

LWRPとはどういうものなのか

HDRPの軽い版です。

HDRP:ハイエンド、フォトリアル向け。

LWRP:モバイル、XR向け。軽量高速が優先。


いくつか機能が削られているため高速です。
比較表を見たい場合はマニュアルを見てください。

 

導入することで何がいいのか

・パフォーマンスがよい。
・シェーダーもよくなっている。
・カスタマイズも簡単
・導入は非常に簡単です

 

ここで実際にデモ

 

1.ProjectSettings.ColoerSpaceをLinearに。

2.パッケージを導入(PacageManagerから)

3.次は適応ProjectSettings.Graphicから設定。

いままでのスタンダードシェーダーがつかえないのに注意。
設定が全てアセットの方で変更できるようになりました。

 

いくつかの点が変わっています
ドローコールなどが減って、パフォーマンスが上がっています。

ワークフローにほとんど変化はない。使う分にはスムーズに使える。

 

 

 

細かい注意点

何が変わるのか、


ライティング

全てのライトを一括で描画します。
加算、塗りなおしの負荷が大きく改善されます。
重ね塗りと表現がかわるので注意。

いままではライトが複数重なるのはよくないとされていましたが、LWRPではある程度よくなった(4つまで)。

ただライトは4つまでしか表現できないのでそれ以上あるとだめ、
4つ以上ある場合、ライトはランダムで選ばれる。

 

 

ライトマップのベイク

GIはいままでと同じ、Realtime GIは未対応。
特にライトの戦略が変わりました。

「メインライト」「サブライト」はシェーダなどでも気にする必要はありませんでした。
しかしLWRPはメインとよべるものとそれ以外で区別されます。
メインは1個しかよばれない。メインは絶対使われるものとして考えられます。
他の追加加算ライトはシェーダー側で一回で描画するという形になっています。

 

シェーダーの話

LWRPは対応してないシェーダーは使えない。サーフェイスシェーダーは使えなくなります。
使ってると問答無用でピンクです。
そういう時は簡単に変換できます。正確には変換ではなく差し替え。
どう差し変わるのかはマニュアルで見れます。
マニュアルにないものは差し替えられない(レガシーなど古いもの、独自のサーフェイスシェーダーなど)
差し替えるとLWRP専用のシェーダーになります。

 

他のシェーダー

サーフェイスシェーダー以外はどうか、実は普通に動くことが多い。

同時にSprite UIもほとんど問題なく動きます。
サーフェイスシェーダーは努力が必要。

 

 

 

ビルトインとは大きく異なります

SRPを使ったため、ここまで大きく変わりました。

なぜこれが必要になったのか、いままでのビルトインは低スぺ高スぺまで対応してきたが最適化に限界がきた。

SRPは全てgithubで公開されています。自分で処理を追えるようになっています。


ちなみにSRPもLWRPもPackageManagerから取得するのでunityのバージョンアップと同期していません。
つまりパイプラインとunityのバージョンを合わせる必要がない
特定のバージョンをピックすることも可能。使いたいパイプラインも選べます。
もちろん自作も可能です。

 

 


もういっこデカイ機能

SRPバッチャー

強力な最適化機能。

通常のバッチング(Dynamic Batching)はマテリアルごとにドローコールされる。
ただ毎回描画命令するのはよくないので、メッシュを結合して描画していました。

これは悪くないアプローチだが実はあまり推薦されない。
CPUのコストが高くなるし、ポリゴンもふえる。なので現在は最初からoffになっています。

 

SPRバッチャーの場合はどうか
モデルの結合という考えではなく、バッファーをキャッシュするようになりました。
また、1つのマテリアルに全てのマテリアルをリニアな情報として結合します。
この1つのマテリアルをアップロードしてオフセットを切り替えています。
描画回数は減らないが描画命令が安くなる。

 


UberShaderの爆発

ゲームで使われないシェーダー(未使用、無効のもの)を削除する機能が追加されています。
アプリサイズもビルド時間も減りました。

 

 


新しくできるようになったこと

シェーダーグラフ

今まではシェーダーを書かなければならなかったが、ノードベースで作れるようになりました。
途中経過がビジュアルで確認できるため便利。

シェーダーグラフで作ったシェーダーはコードを見ることができます、逆はできない。
ちょこっと手直しもできます。

 

 

 

まとめ

LWRPは軽量、高速、カスタマイズ性も高い。
簡単に使えるし簡単に拡張できる。

 

 

 

 

 


2. 俺はUVスクロールがしたかっただけなんだ!

後日、振り返りの意味も込めて配信をするそうです。
画像や動画が多いため、動画またはスライドが公開されたらそちらを参照してください。

f:id:Raspberly:20190131012602j:plain

f:id:Raspberly:20190131012620j:plain

 

プロローグ

時はPS2の時代 ゲーム業界に入りました。
当時メタセコイアを使っていました。しかしUVスクロールができない。

DCC上でしかUVスクロールさせられない、リアルタイムでしたい。
味をしめてUVスクロールをやりはじめる。

 

 

時代は進む、VRCHATに足を突っ込む。
vrchatは技術屋の腕の見せ所(シェーダーやUVスクロールなど) 

シェーダー作り始めた。でもシェーダーわからん。
シェーダーわからないのがわからない

 

 

ノードベースエディタ

テキストでシェーダーを書くのは気が滅入る。
しかしノードベースエディタの登場でとても楽しい。
VRCHATでキラキラした人を羨むのはもう終わり!

 

VRCHATはUnity2017.4なので最新ではない。
ただしShader Forgeを使えます。

グラフィカルな操作で楽。UVスクロールできただけで小躍りです。

 

ノードベースだといろいろな機能を簡単に追加できます。
頂点カラー、頂点アルファ・・・どんどん作っていきます。

 


ここでバーニアの作成、Shader Forgeのデモムービー

 

 

 

 

感想

ライトウェイトレンダリングパイプライン。
名前を聞く機会はありますが、どういうものかはよくわかっておらず、
使い方も知らない技術でしたが、要は軽量で使うのもカスタマイズも簡単なパイプラインということですね。
完全に理解しました。

 

シェーダーの作成も、ShaderGraphやShaderForgeなどノードベースのものがでてきたので、
昔ほど敷居は高くないのかもしれません。

 

 

f:id:Raspberly:20190131015558j:plain

懇親会のお寿司です。なんとうにがあります。
これがほんとのうにてぃ・・・

 

 

タイムライン

 

 

お知らせ

Unity道場は、各月末に1回開催を行います。
次回のUnity道場のテーマは「シェーダーがかけるエンジニア」です。
詳しい情報はまた後日。

 

Unity道場はイベントページ公開後、すぐに満席になります。
予めTwitterのユニティ・テクノロジーズ・ジャパンをフォローしておいてください。

twitter.com

 

 

 

 

 

間違っている箇所がありましたらコメントにお願いします。

勉強会レポ : Unity Audio 完全に理解した

 

勉強会のレポート(メモ)です。
参加したのはこちら、「UnityAudio 完全に理解した」

connpass.com

f:id:Raspberly:20190130175528j:plain



 

ハッシュタグ :
#UnityAudio完全に理解した
#anysync完全に理解したい

 

イベントの動画はこちらから視聴できます。

www.youtube.com

 

 

 

タイムスケジュール

  内容 担当
19:00 受付開始 -
19:30 イントロダクション -
19:35 音量の基礎&Unity上での音量演出 @8bitdots
20:05 サウンド実装の手間を省くためのCRI ADX2 @Takaaki_Ichijo
20:40 休憩 -
20:45 VR音響のための鏡像法による距離減衰の再現 @TyounanMOTI
21:15 懇親会 -
22:15 片付け -

 

 

0. イントロダクション

もんりぃさんの挨拶。
2月9~10日に日本科学未来館にて、ワンダーメイクフェスというイベントがあります。
子供向けのモノづくりのイベントで、弊社も出店中です。


会場の提供・懇親会・動画撮影・生放送。
ミクシィさんがやってくれました。ほんとうにありがとう。

 

 

 

 

 

 


1. 音量の基礎&Unity上での音量演出

speakerdeck.com初心者向けライトな部分をやります。

音量について

音量という言葉はない。
音圧、音の強さ、音響パワーなどの物理量で定義されています。
音圧は波形や音量は0~1で正規化されているので、その対数をとるとdBがとれる。


ラウドネス

人間の感覚に合わせた音量。周波数によって聞こえ方にずれがあります。
CEDECなどで統一しましょうという話がでたりしてますが、だいたい多くの企業では0~1で扱われます。

UnityではAudioMixerなどいろいろ追加されましたが、現実ではラウドネスを扱えてません。

 

音割れ

波形が正規化されるので、波形が1以上は全て1に、-1以下は全て-1に圧縮されるため音割れします。

この辺は波形とフーリエ級数展開ごにょごに。
音を重ねて鳴らす時は注意しましょう。

 

音量に関する演出例

フィルタ、エフェクトによる制御、簡単に2種類紹介します。

ローパスフィルタ

高音域をカット。
くぐもった感じをかけることができます。
ポーズ画面で使われます。

 

ハイパスフィルタ

低音域をカット

ローパスを2000に、ハイパスを4000くらいまでにし、
低域と高域をカットした状態でノイズを足すとラジオノイズになったりします。

 

意外とこういうのやられてないかなと思います。だいたいサウンドさんにあらかじめ作ってもらうパターンが多い気がする。

 

AudioMixerを使った表現

・フィルタ
・フェードインフェードアウト
ダッキング
 ボイス再生時にBGMを下げるなど
 サイドチェーン入力のダッキング

この辺は試してみてください

 

 

スクリプトの制御

・フェードインフェードアウト
 簡単にできます
 ついでにダッキングもできます
 イントロ付きBGM再生も
インタラクティブミュージック

 

フェード実装のテクニック

クロスフェードの注意点として、直線に音量変化をすると音の量が中間あたりでへこみます。
解決策として三角関数をフェードカーブに用いましょう。

 

まとめ

dBよりもラウドネスの方がいい。
音割れすると音がゆがむ。
フェードでいろんな演出を実装することができます。

 

 


2. サウンド実装の手間を省くためのCRI ADX2

スライド

www.slideshare.net



ADX2について

ゲーム向けのサウンドミドルウェアです。音を使った演出が組み込まれたライブラリ&ツールです。
ゲームに最適化された音声圧縮形式も備えています。

 

今回は「実装の手を抜くためのADX2」「エンクセル管理から脱却するためのADX2」について話します。

 

やらなければならない実装

・負荷軽減
・管理
・演出設計


ボイスデータ管理

excel管理だとデータがずれる可能性があるし、どういうふうに使うのかわからない。
じゃあどう管理ツールを開発する?しかしそれも大変。

そこでADX2
Atom Craftをいうツールを使いましょう。
どういうふうにならされるかを作りこんでいきます


ワークフローはどう変わるか

ADX2では再生単位キューを作成します。
このキューにはフェードやダッキングなどのメタデータを埋め込むことができます。

 

ここでデモ


ありえるフロー

・ボイスデータの管理

1. wavを全て登録
2. キューシートを作成
3. キューを作成
4. キューにコメントをいれる、パラーメータを設定する(同時再生数や優先度など)
5. キュー名称あるいはIDで再生処理を組む、IDは重複しない


・確認と調整

BGMを流しつつツールで確認再生ができるリアルタイム調整機能。
音が大きいところをすぐに調整できる。

 

 

サウンドの演出

再生状況が複雑になりそうだったらADX2の利用を考えましょう。
・バッキング
・ランダム再生 同時再生数の設定
・音のグルーピング 

スクリプト側は非常にシンプル。

 

カテゴリ

同一キャラの声が2つ以上再生されないようにできる。

 

クロスフェード

いくつかアプローチがありますか
エンベローブのアタック(再生時)とリリース(終了時)を使う

ダッキング

キューシート

キューをまとめたキューシートが出力ファイルの単位になる。
キューシートが別ならキューの名前が被っても大丈夫。
複数のキャラクターがいる場合などに有効。

 

 

まとめ

・オーディオは考えることがいっぱい

・大量のデータ管理はツールで乗り越えよう、ADX2は管理が得意ですよ

・個人向けは有償と違って更新が遅いんですが近日アップデートされます

・書籍も書いています 会社に一冊どうぞ

 

 

 

3. VR音響のための鏡像法による距離減衰の再現

スライド

www.slideshare.net

 

テーマは距離減衰

距離感は音量との相対的な変化で表現できます。
約1mの距離感(NearFieldEffect)を表現する立体音響プラグインも。

距離減衰カーブはUnityデフォルトだと減衰しすぎ、これを演出意図をもって書きましょう

重要なサウンドはゆるい減衰、重要でないサウンド(環境音など)は強い減衰がおすすめ。

 

リアリティのある距離減衰とは?

Unityデフォルトの距離減衰カーブは逆2乗則。
これは無響室での点音源の法則。リバーブなし。

しかし現実空間は無響室ではない。

 

 

バーブとは

・直接音 口からでた音が耳まで届く最短距離
・初期反射 天井などすぐに反射する音
・後期残響 壁に何回も反射した音

で構成される。

このリバーブをいじると距離を感じます。
後期残響はそのまま、直接音や初期反射を小さくすると遠く感じます。

 

 

じゃあどうやって点をうってカーブを作るか?コンピュータに任せましょう。

 

ここでシュミレーション

鏡像法を使います。
この辺は参考文献を見てね。

 

 

 

ここで機材トラブル。
画面が映らないのでインタビュータイム。

 

 

デモ

ここでデモ
インパルス応答から距離減衰を推定します。
実は1mを離れるとあまり変わらない。

 

6畳間と多きめの部屋を比べてみると

・至近距離では点音源なので急速に減衰する
・しかし少し離れるとほとんど減衰しない

 

部屋の違い

狭いと減衰しなくなるのが早い
広いと減衰はしないが小さな音に収束する

 

そのまま使うときの課題

・音量変化が急なのでgainをかけるといいでしょう
・ゲーム内の環境に応じて部屋の大きさを変えましょう
C#で書いているので重いです、高速化が必要
・インパルス応答の畳み込みをする場合
フラッターエコーがきついかも


カーブを書くときの応用

・最大減衰距離は部屋の大きさよりも小さい
・なだらかなカーブは物理的に間違っていない
・周囲の広さに応じてカーブをかくとよりリアリスティックになるでしょう

 

今後の課題

・音量だけでなくリバーブも変化させる、音量ミキサーのリバーブを変えるなど
・面音源でもやってみるとまた違うのかなと思います。
フラッターエコーなど可聴化してみる
・正直にシミュレーションするのではなく統計的にカーブを割り出す
 「部屋がこのくらいだからカーブはこのくらいだろう」 といった感じ

 

 

 

 

感想

オーディオ関係はいままで気にしたことのない領域だったのでなかなか面白かった。
正直AudioMixer自体使ったことが・・・
各フィルタの演出ならすぐに試すことができてよさそうかも。

 

AnySyncになった時のichijoさんのファシリテーション能力?すごい。

 

f:id:Raspberly:20190130175609j:plain

f:id:Raspberly:20190130175612j:plain


 

 

タイムライン

 

他の方のブログ

ka8.hateblo.jp

 

 

次回予告

次回は「AssetBundle完全に理解した」です。正気か?
最悪死人がでますよこいつぁ

 

勉強会レポ : Gotanda.unity #10

勉強会のレポート(メモ)です。
参加したのはこちら、「Gotanda.unity #10」
ごたゆにも記念すべき10回目です。

meetup.unity3d.jp

ハッシュタグ : #gotandaunity

 

 

 

 

 

タイムスケジュール

19:00~ 受付開始
19:30~ イントロダクション
19:40~ LT枠前半

LT #1 会場/アカツキ枠 Norihiro Funakoshi : スクリプトの処理を効率化してゲームを軽くしよう
LT #2 Hiroto Imoto : どこから始めるUnityテスト
LT #3 mao : ECSベースのVRMSpringBoneを実装してみた話
LT #4 Nozomi Tanaka : Unity(C#)メモリ小話
LT #5 小林拓 : VRMと暗号化

20:20~ 休憩
20:25~ LT枠後半

LT #6 Tomohiro Okamura : PUN2を使おう!
LT #7 Naoya Mizota : VRM対応スマホアプリのすすめ
LT #8 joshuaarthurelcaro : もう「ぼくが持ってるUnityと違う…」ではない!
HDRPで劇的にルックを変えよう!~部屋とかキャラのセットアップをしてみる。~
LT #9 aoiaioi : 簡単な弾幕をつくる

21:00~ クロージング/懇親会準備
21:05~ 懇親会
22:00~ 解散

 

 

 

スポンサー様

会場提供はアカツキ
懇親会のサポートはキッズスターとワンダープラネットです。

もんりぃさん(キッズスター)

知育アプリ「ごっこらんど」をリリースしています。やってね。
正社員採用というわけではないですが、フリーランスの方募集してます。

なりきり!!ごっこランド - KidsStar.TV

 

ひらきさん(ワンダープラネット)

WANTEDLYでフォローしてください。積極採用中です。

ワンダープラネット株式会社の会社情報 - Wantedly

 

 

 

 

 

LT #1 : スクリプトの処理を効率化してゲームを軽くしよう

ゲームを作っていて画面が重い、ゲーム中スパイクが挟まるなんてことありませんか?
こういうのはすこし手直しすれば治ります。

基本的に原因はスクリプトと描画処理です。
今回はスクリプトで調べる方法と解決パターンを話します。
調べる時はプロファイラを使いましょう。
Deep Profileを使うと深くまで知ることができます。

 

どこが重いのか

プロファイラ内で大きく跳ねるフレーム、平均して大きく占めている所が重いところです。
16.67msまでに抑えると 60fpsだすことができます、

 

よくあるパターン

・Updateで不要な処理を行う。
 本当に必要な処理か考える。不要なら消す。
・空のUpdateは消す。
・不適切なLINQを使っている
 便利だが重い。基本的に使わないようにするか、一箇所にまとめる。
 結果を使いまわす時は値をキャッシュしましょう。
・ファイル入出力の回数を減らしましょう
GCを抑えましょう。
・メモリアロケーションを減らしましょう。
・ボクシングを起こさないようにしましょう

 

 

 

 

LT #2 : どこから始めるUnityテスト

speakerdeck.com


テストをどこから始めるか。よくあるコードに対してユニットテストを書いてみます。
結論をいうとしんどいので止めた方がいいです

テストしやすいものとしにくいものを切り離しましょう

UnityではUnityAPIに依存していないものはテストしやすい。
逆にUnityAPIに依存しているもの、GUIはテストしにくい。正しい動きをしているか定義することが難しい。
Inputへの依存をやめる、入力部分をインターフェースにしてキー入力を意識させない。
MonoBehaviourはテストしにくい。

 

個人開発だとテストはそこまで有効ではないが、設計の問題を見つけるのに有効です

 

 

 

 

LT #3 : ECSベースのVRMSpringBoneを実装してみた話

docs.google.com


UniVRMにあるVRMSpringBoneをPureECSベースで動作する低負荷なSpringBoneを実装できるか検証した話。
このLTにはポインタの知識が必要です。

設計について MonoとESCの連携について

その前に従来について、従来は揺れものの数が多いと負荷が大きくなった。
ECSベースでやるのなら、エンティティについては主にノードとコライダーを使います。
これを1つ1つエンティティ化していきます。
Nodeには位置や回転のデータ、コライダーにはコライダーのデータを持たせます。
揺れものの階層それぞれにエンティティが生成されます。

 

ここで課題。
PureECSでは参照型を持たせることはできない(Transformなど)、位置や回転については考える必要があります。

 

Transformの解決

ここで時間切れ、続きはスライドで。
共通の値を持たせるためにポインタを使いました。

 

 

 

 

 

 

LT #4 : Unity(C#)メモリ小話

Gotanda.unity #10 メモリと闘う者達 〜GC編〜 - Speaker Deck

メモリには保存場所が二種類ある

スタックとヒープです。
スタックを使うことができるのは限られています。
プリミティブ型はスタック、それ以外はだいたいヒープです。

 

C#とメモリの使い方

C#にはGCというものがあり、メモリのお掃除を自動でやってくれます。
発生条件は物理メモリが足りない時と、GC.Collectが呼ばれた時。
そしてヒープメモリの使用量がしきい値を超えた時です。

C#では到達可能性というものを見ています。
変動する条件はヒープへのメモリ確保が原因です。

ヒープへの確保を抑えましょう。
ボックス化、クラス型のオブジェクト生成が原因になるため回避しましょう。

 

ボックス化

値型をobject型(参照型)として扱うときスタック上からヒープ上に値をコピーする処理。

 

ボックス化は適度に省きたい。
メソッドの引数にobjectを使わないようにする。
また一部のUnityクラスはDictonaryでボックス化がおこる。

 

・ボックス化は値型の扱い方の問題です。ジェネリックは使ってok。
・アウトゲームなど、ボックス化しても問題ない場面では気にしなくてもよい。
・クラス型オブジェクトの生成は回避。ラムダ式も避けましょう。
・事前確保で避ける手もあるが現実的ではない。
・複製を行わないデータは構造体で作るといい。
・クラスの機能を使わざるをえない場合はもちろんクラスで。

まとめ

・スタックとヒープを意識しましょう。
GCの発生条件を意識しよう。
・new、ボックス化を抑える。

 

 

 

LT #5 : VRMと暗号化

docs.google.com

フリーの時期にしていたことの話をします。
実はその間、Vroid SDKの制作に携わってました。
言っていいかわかりませんが、来週の月曜日に出ます。

 

Vroid SDKとは

VRMファイルのダウンロードと表示を行う。
VRMファイルの暗号化を行う。
 セキュリティ的な話の解決。

 

VRMのストロングポイント

・環境に依存しない
VRMファイル1つで完結している
・ランタイムダウンロードができる
・人型に特化

ここでデモ

 

現在あまりドキュメントはないのでソースコード読んで使う必要があります。
VRMには、せっかく作ったVRMが勝手に使われる問題があります。

 

UnityCipher

前職で作った暗号化ライブラリがそのまま使えるかもしれない、その名もUnityCipher。
お手軽にお堅い暗号化ができます。
ブロック暗号CBCモードを使っています。
「あああ」をあるときは「いいい」、あるときは「ううう」と暗号化するのが特徴です。

qiita.com

 

 

 

 

ここで休憩

 

 

 

 

LT #6 : PUN2を使おう!

drive.google.com

PUN2はPUNの後継バージョンです。
互換性がないが大きく改善されました。


1. 動作がちょっと軽くなりました

2. 新しいAPI

 今までSendMessageだったものがInterfaceになった。

 

3. いろいろ整理されていていい

 フォルダが整理されている、名前空間が整理されている。
 今までPUNかRealtimeでごっちゃになっていたアセンブリが整理されている。テストがかけるよ。

 

4. わりと移行ができる

移行用のドキュメントが充実しています。

 

 

 

 

LT #7 : VRM対応スマホアプリのすすめ

www.slideshare.net

Vスタンプの紹介 デモ
好きなVRMキャラクターを使うことができます。

f:id:Raspberly:20190124015423j:plain

VRMメリット

・手軽にインポートできる。
・骨が共通なのでモーションを使いまわすことができる。
・ユーザーの好きなキャラクターを登場させることができる。

 

VRMファイルの扱い

スマホで使いやすくするにはローカルのどこに保存するべきか。
アプリごとに生成されるフォルダに格納しましょう。
しかしAndroidの場合は階層がちょっと深いなので保存先を変えています。
こうするとアプリと関係ない外のフォルダなのでアンインストールで削除されないことに注意。

 

VRMスマホで使いやすくするには、スマホに送る手段が大事。
Androidの場合は指定のフォルダに移動する仕組みがアプリ内に必要。

 

 

 

 

LT #8 : もう「ぼくが持ってるUnityと違う…」ではない!HDRPで劇的にルックを変えよう!~部屋とかキャラのセットアップをしてみる。~

scrapbox.io

詳しい手順はスライドを見てください。

 

HDRPを広めるために登壇しました。
最初のセットアップに躓かないような初心者向けの内容です。

まず始め方、UnityHUBから起動しましょう。
プロジェクトテンプレートを設定しましょう。後から入れると赤いエラーがたくさん出ます。

基本的にフォトリアルと相性がいいです。

ミラー(鏡)が簡単に作ることができます。
そんなに難しくないのでおもしろく触ってみてください。
いずれガンにも効くようになります。

 

 

 

LT #9 : 簡単な弾幕をつくる

docs.google.com

弾幕の作り方について紹介します。

 

プレイヤーに弾を飛ばす

方法は2つあります。
Vector3.MoveTowardsを使う方法と、ベクトルを使う方法です。
弾を動かすにはrigidbody2dを使います。

ただしベクトルを使う場合、大きさが変わらないよう正規化をする必要があります。

 

弾を追尾させる

同じく2つやり方がありますが、軌道を修正させ続ける必要があるためUpdateでやります。
上と同様に、正規化をしないと速度が遅くなってしまう。


全方位に弾を飛ばす

弾の配置はサインコサインを使っていきます。この通りに使えばきれいになります。

三角比の拡張 | 数学I | フリー教材開発コミュニティ FTEXT

 

うずをまいて飛ばす

 放出する角度を小さくするだけで実現できます。

 

 

 

 

 

 

感想

メモリ関連とVRMの話題が多かったですね。
VRMは今流行りの技術ですし、メモリ回りは最適化の観点からも重要な所です。

 

「LT #2どこからはじめるUnityテスト」が個人的によかった。
テストがうまくいった・いかなかっただけでなく、テストがしやすいかどうかで設計の問題を見つけるという観点がとてもおもしろい。

懇親会のお寿司ではエビが不人気という知見を得ることができました。

f:id:Raspberly:20190124134846j:plain

 

今回はunity1weekMeetup2019でも好評だったホワイトボードコーナーがありました。

f:id:Raspberly:20190124134857j:plain


 

 

 

 

 

タイムライン

 

 

他の方の感想ブログ

ka8.hateblo.jp

 

 

次回のGotanda.unity#11は3月頃とのことです。
直近の勉強会ですと「Unity Audio完全に理解した」と「VRM勉強会」があります。

connpass.com

connpass.com

完全に理解したシリーズですが、Audioの次はGitらしい。

 

勉強会レポ : GGJ2019 事前勉強会

 

勉強会のレポート(メモ)です。
参加したのはこちら、「GGJ2019 事前勉強会」

meetup.unity3d.jp

f:id:Raspberly:20190120015347j:plain

f:id:Raspberly:20190120015351j:plain


 

 

 

1. グローバルゲームジャム対策集中講座

docs.google.com

あるあるやポイントの対策を行います。

GGJ(グローバルゲームジャム)とは?

48時間、全世界同時に行われるゲームジャム
テーマはオープニングで発表されます。

会場は複数ありますが、ここがオススメです。

atnd.org

 

もちもの編

必須なもの

・開発機(PC)

 たまに貸してくれるところもありますが、使い慣れた自分のマシンの方がいいです。
デスクトップを持ち込む方もいます。キーボード・マウスも忘れないようにしましょう。

・ペンタブやサウンド関連など

・食費と雑費

・常備薬あたり

 

あると便利なもの

いっぱいあります。
・ねぶくろ
 宿泊仮眠okであればあった方がよい。

・下に敷くマット
 床が硬い場合はあった方がよい。

・ハブラシ
 実は必須にしてもいいくらい大事です。 すっきりしますよ。

・フェイスタオル
 同じくすっきりします。

・クッション
 会場の椅子がかたい場合に。

・ひざかけ
 寒いときに。

・箱ティッシュ
 ポケットティッシュよりも大事、チーム開発だとなおよい。

・サンダル、スリッパ
 ずっと靴を履きっぱなしだと足が蒸れるため。

アイマスク&耳栓
 会場の明かりが眩しい時に使いましょう。睡眠の質があがります。

・イヤホン/ヘッドホン
  ゲームの音を確認するときに便利、周りに聞かれたくない時などにも。

・付箋、スケッチブック
 ホワイトボードはどこの会場にもありますが、イメージを共有するときに便利です。

 

 

 

イデア出し編

リーダ&プランナーがアイデアを出し、みんな開発をする。これが理想。
しかし意見がまとまらない、アイデアがまとまらないなどまれによくある

原因

お互い遠慮する、全部のアイデアを採用して混沌になる。
Diversifiersを気にしすぎる、などなど。

大事なことは、ゲームの完成形を全員がイメージできるようにすること。
ゲームの流れや動き、ルールなど、よくわからないものは作れない。
「こんな感じかな?」ではだめ。

 

解決策はゲームをシンプルにする。
有名なゲームをまねる、イメージしやすい。
あるいは、バカゲーに振り切る。

どうしてもアイデアが決まらない時はGame Idea Generatorなどを使いましょう。

ygd.bafta.org

 

 


チーム開発編

問題点

・開発環境 Unityのver違い
・ソースの共有方法
プログラマが多すぎ問題。役割分担の仕方
・コミュニケーションをとる方法


開発環境

作業に始める前に環境を合わせましょう
・ツールのバージョン
・ターゲットプラットフォーム
・画面の解像度

 

プロジェクトの共有

UnityCollaborate、Gitなどなど。
慣れてる方はgit、まあだいたいgit。

・unity collaborate
操作が簡単 競合が起きづらい
無料の枠だと縛りがある

 

gitを使う場合、テラシュールブログを見ましょう。

tsubakit1.hateblo.jp

tsubakit1.hateblo.jp

github for unityというツールもありますが、一回使ってなれておく必要があります。

役割分担

ゲームシステム自体は単純にしたうえで、スキル(それぞれ似たようなもの)をたくさん作る、またはステージ(レベル)をたくさん作る。
話し合って決めましょう。

チーム内のコミュニケーション

開発を始める前に整えておきましょう。
slackはオススメです。タスク管理はtrelloがよい。

 

おまけ

www.slideshare.net

www.slideshare.net

 

まとめ

・コミュニケーションをきちんととる。
・チームで1つのゲームを作ることを考えましょう。
・ひとによって作り方ややり方は違います。共通の認識を持ちましょう。
・チーム内でできることを精いっぱいやりましょう。
・バージョン管理は覚えておくと役立ちます。

 

 

 

 

 

 

 

 

2. GGJ企画会議対策講座

www.slideshare.net


ゲームを作りたい人があつまると自分のゲームを作りたがります。
作業しないメンバーを作らないようにしましょう。
序盤の企画も全員でしましょう。

ゲームジャムでは企画職を過信しない。企画の人はアイデアにすぐれているわけではない。
具体性のアイデアが重要。
コードをかけずリソースもだせない人がだすアイデアは具体的でしょうか?
そもそも企画書とかを作るようなゲームはゲームジャムに向いてない。

 

 

そもそもゲームとは?

ルールとゴールのある遊びのことです

じゃあ遊びとは?
日常の中でしない行為を発見して、突き詰める過程を楽しむこと。
簡単に言うと「変わったことをすること」。それがうまくなっていく過程を楽しむこと。

つまり普段行動しないことを決める、そしてルールとゴールを決めるとゲームができます。

おもしろいか、おもしろくないか、という議論はしないほうがいい。

 


ゲームの構成

いくつかのレイヤーにわかれています。

テーマと表現
 人に説明するときにぱっとでてくるもの、一言で説明できるもの

プレイヤーの行動
 プレイヤーは何をするのか

メカニクス
 具体的な操作やアルゴリズム

これらのレイヤーには結びつきが必要。
順番に書いてあるが、プレイヤーはこの順番にゲームを受け入れていきます。
なので入口を魅力的にする、次のステップで前のステップの期待を裏切らないようにする。

ゲームの企画をたてるときはこの3つを決めましょう

 

 

 

どうまとめるか

シーンとする時間を作らないようにしましょう。
話し合いをすると、口のうまいやつがまとめようとする。

まず手を動かす。時間を決めて全員がアイデアをたくさん出す。(全て1行程度)
テーマと表現:ざっくりした印象
プレイヤーの行動:動詞で完結に
メカニクス:既存の具体例を出す

出たアイデアを並べて、全員で〇をつけて投票する。

 

2、3本になったら話し合う
・実現できそうかどうか
・テーマのインパクト 納得度

ゲームにはジレンマがある、迷わないでボタンを押していくゲームはそうそうない。
メカニクスで作るジレンマ、駆け引きが大事。

全部できたら一番投票数の多いものを使う。


決まったらベースのアイデアを出した人が職種にかかわらずディレクターにする。
イデアを出した人が一番よくわかっているため。他のメンバーも納得がしやすい。

 

 

なぜこういう方針にするか

ゲームの開発が発言力、推しの強さ、雰囲気で決まらないようにするため。
全員アイデアを出す場を作る→会話が発生しやすい。
するとメンバーがわかってくる。苦楽をともにするので納得しやすい。

 

 

実際のタイムスケジュール

・アイデア出し 30分
・投票
・上位アイデアの具体化 20分
・決定の話し合い 30分

初日にこれが決まったら、帰って寝ましょう。
初日にプロトタイプを作っても深夜テンションでおかしくなる。
2日目昼にはプロトタイプができるようにする。


余裕があれば(ないことがほとんどだが)ゲーム内で完結するチュートリアルをいれるとよい。

 

注意点

プレイヤーのやることは1つで、シンプルにしましょう。
チュートリアルで説明できないことはしない。
2日目の午前中の時点で動かない(デモもできない)ような複雑な企画にしない。
どうでもいい設定やストーリーに時間をかけない。
睡眠不足のテンションで企画を決めない。


まとめ

 企画の決め方は、
・どんなテーマと表現で
・プレイヤーは何をし
・どんなメカニクスで実現するか
以上を紙に書いて全員でやりたいものに〇をつけ
残った2~3本だけ細かく詰め、最後に決戦投票する
ベースのアイデアを出した人を職種問わずリーダーにする

重要なのは企画するだけの人をつくらないこと。
作業させましょう。(買い出し、テストプレイ、バグだしなど)

 
みんなで納得した企画は全員を駆動させます

 

 

 

 

おまけ

Unityでは、Discordに助け合い所を設置しています。
各会場や開発中に困ったことがあったら気軽に相談しましょう。

 

 

また、GGJ中にUnityから缶パンの差し入れがあります。
疲弊しきったキャラクター達の顔がいい!

 

 

こちらも合わせてどうぞ!

raspberly.hateblo.jp

 

unity1week Meetup in Tokyo2019に行ってきた

 

 

unity1week Meetup in Tokyo2019に参加させていただきました。
今回はこの感想ブログになります。

meetup.unity3d.jp

 

 

 

本日、Unityアンバサダーの3人が会場にそろっています。
世界を救う勇者が神の導きで一緒のパーティにいるくらいの奇跡です。

f:id:Raspberly:20190115182017j:plain

 

 

雲丹亭

予めととさんから軽食がありますとアナウンスがありましたが、かなり本格的です。
おにぎり処 雲丹亭も登場!おにぎりは職人さんがその場で握ってくれます。

f:id:Raspberly:20190115143227j:plain



具材は、「九条ねぎと鶏肉の甘辛和え」、「豚の角煮」の2種類から選ぶことができます。

f:id:Raspberly:20190115143307j:plain
海苔も専用の海苔です、「雲丹亭」と「Unity1Week」の2種類です。
そりゃあもうふわっふわのおにぎりです。

f:id:Raspberly:20190115143405j:plain


惣菜も「冷しゃぶ」「鶏肉と大根と里芋の煮物」の2つが用意されていました。

f:id:Raspberly:20190115143437j:plain

f:id:Raspberly:20190115143449j:plain




 

ゲーム展示(前半)

ゲームの展示は前半後半に分かれています。

f:id:Raspberly:20190115143620j:plain



各ブースの写真は全て許可をいただいて撮影しました。 

たんくろさん

f:id:Raspberly:20190115144144j:plain

 「ひつじ牧場」を体験させていただきました毛を狩り草を刈り、工場でフェルトなどを生産し出荷してお金をかせぐ牧場運営ゲームです。
イチオシポイントはひつじ達を着飾ることができる点です。一匹一匹部位ごとにおしゃれにできます。
慣れてくると、毛を刈る→ついでに草(ごはん)も刈る→工場で生産(15秒ほど待つ)→その間にごはんをあげる→工場から回収→トラックで出荷→毛を刈る...といったサイクルを高速で回せるようになります。
まだ作りかけとのことで今後に期待です。

 

 

やまださん

情報共有アクション「10Characters」 | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

f:id:Raspberly:20190115144237j:plain
フィールド上にメッセージを残すことができるアクションゲームを体験させていただきました。
メッセージはダークソウルなどでよく見るシステムです。苦しいです評価してください
ちなみに、このメッセージはもちろんも紛れています。
飛び降りろと書いてあったから飛び降りたら死んだということもありえるゲームなのです。

 

 

ウラコンさん

熱い視線(物理) | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

f:id:Raspberly:20190115145456j:plain


「熱い視線」を体験させていただきました。
二人対戦用のゲームで、先に相手に視線を飛ばした方の勝ちです。
真ん中に電柱に隠れたストーカーがお邪魔オブジェクトとして存在しますが、
使い方次第では自分を守る壁になってくれたりします。

 

ヤマトさん

f:id:Raspberly:20190115150141j:plain

ワイヤーアクションゲームを体験させていただきました。
他の人のプレイを後ろから見ていた時はなかなかかっこよく移動していましたが、
いざ自分がやってみるとなかなかに難しい。
ワイヤーの挙動はPhysicsに任せているようで、乗っている時はかなりスイスイ移動ができ爽快感があります。

 

 

 

狼幼女さん

カードジャンゴゥー(「`・ω・)「 シャー | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

f:id:Raspberly:20190115150316j:plain

f:id:Raspberly:20190115150325j:plain
「カードジャングル」を体験させていただきました。
水や食料など複数のパラメータがあり、パラメータの数値を増やしたり減らしたりしながら生き残りを目指すゲーム。
パラメータはどれか一つでも0になったらゲームオーバーです。
増える数値、減る数値ともに10~30ですがイナゴが発生すると-50されます。場合によっては即死です。
なので基本的に全パラメータを50以上に保っておくのがセオリーですが、「彼方立てれば此方が立たぬ」なシステムなため厳しい選択を迫られることも!

 

 

 

なかなかさん

f:id:Raspberly:20190115152012j:plain

 「Bound Shot」を体験させていただきました。
このゲームは「操作が気持ちいい」シューティングゲームです。
敵を撃破した時のエフェクトや演出がとても爽快感があります。
マウスがどこかにいってしまうくらい熱中してしまいます。
敵キャラは主に四角いキューブですが、ぷにぷにしているのもおもしろい。

 

 

 

おやつタイム

2時でおにぎり処は終わりましたが、次はお菓子が用意されていました。

f:id:Raspberly:20190115153521j:plain

f:id:Raspberly:20190115153803j:plain

 

 

 

 

ゲーム展示(後半)

f:id:Raspberly:20190115153944j:plain

 

 

tatsunoruさん

ラーメンを体験させていただきました。
非常に中毒性のあるいいラーメンでした!!!!
写真NGとのことでしたので、画像はあくまでもイメージです。

f:id:Raspberly:20190115155410p:plain

 

 

Cz_mirrorさん

f:id:Raspberly:20190115160254j:plain

「CAPLUS」を体験させていただきました。
これは一見普通のシューティングゲームですが、なんと敵を鹵獲して仲間にすることができます。
仲間になった機体はプレイヤーに追従して移動し、攻撃も一緒にしてくれます。
難しいですが大型のボスキャラも仲間にできるようです。さっきの敵は今のオプション

 

 

ゆう茶んさん

Giri Car | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

f:id:Raspberly:20190115162102j:plain

「Giri Car」を体験させていただきました。
海に向かって走るチキンラン風ゲームです。記録はオンラインランキングで競い合うことができます。
かなりの回数チャレンジしましたが、1.79mが最高記録でした。
私もそうでしたが、ほとんどの人がステージの柵などを目印にしてプレイするそうです。

 

 

麻々ソーマさん

f:id:Raspberly:20190115163034j:plain

「私の考えていることを当てなさいよっ!」を体験させていただきました。*1
このゲームでは女の子とお話したりバトルしたり、ぶっかけたりできます。
ぶっかけた場合、ぶっかけた状態のままお話したりできます。ディモールト!

 

 

 

いじょるさん

トマトスープと猫 | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

f:id:Raspberly:20190115164624j:plain

「スマトスープと猫」を体験させていただきました。
このゲームはトマト缶を操作して、猫に届けるというゲームです。

 

・・・がこのゲーム、実に操作方法が独特で難しいんです。
ヘリコプターより難しいんじゃ

それでいて無理ゲーというわけでもなく、動かし方はわかるんだけど動かせないというもどかしさが逆に楽しいゲームになっています。

 

 

 

 

感想

 デジゲー博と見間違うほどの盛り上がりでした。
ゲームの感想はunityroomでもコメントで書けますが、対面の方が気軽に言いやすかったり、より具体的なアドバイスが受けられたりと得られる情報の質が断然違うと思います。

展示する側も実際にプレイする人がどこを見ているのか、どこで躓くのかを観察できるのも大きなポイント。

ゲームは全て体験できませんでしたが、いろいろ刺激を受けることができました。

f:id:Raspberly:20190115182312j:plain

f:id:Raspberly:20190115182320j:plain

 

 

 

 

他の方のブログ

blog.naichilab.com

hakonebox.hatenablog.com

lycoris102.hatenablog.com

yojisugi.hatenablog.com

www.best-hit-unity.com

tomozooo.hatenablog.com

cz-mirror.hatenablog.com

 

*1:タイトルに誤りがありました。正しいゲームタイトルは「私の考えていることを当てなさいよっ!」でした。大変失礼いたしました。