Raspberlyのブログ

Raspberlyのブログ

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

【勉強会レポ】: Roppongi.unity #9

勉強会のレポート(メモ)です。
参加したのはこちら「Roppongi.unity #9」

roppongiunity.connpass.com

ハッシュタグ : #roppongiunity

 

f:id:Raspberly:20210429011944p:plain

アーカイブはこちら

www.youtube.com

 

Togetterまとめはこちら

togetter.com

 

 

 

Roppongi.unityとは

六本木発のUnity勉強会です。しばらくはオンラインで開催予定。

六本木発のUnity開発者向け勉強会です。(ref. Gotanda.unity)

Unityに興味がある人であれば、どなたでもご気軽にご参加いただけます!

 

 

 

#1 Addressable Asset Systemをプロダクトで使ってみた

Addressable Asset Systemを使ってつまずいた点や開発体制について紹介します。
LeapTriggerというARシューティングゲームで使用しています。

www.youtube.com

開発環境

LeapTriggerはARアプリなので実機確認が大事。
AWSのS3にアセットバンドルをアップロードしてダウンロードするようにしています。
各環境のUnityでビルドしたアセットバンドルをアップロードできるエディタ拡張を用意しています。

つまずいたポイント

・AddressableでキャッシュクリアはClearDependencyCacheAsync

docs.unity3d.com

・DLが0%始まらない→最新版に上げたら解決

おまけ

 

 

 

 

#2 github actionsで作るUnity CI環境

UnityとCIの壮大な苦労話をします

登場人物

fastlane:アップロードやビルドができるツールをまとめたもの
game ci:unityをいろいろやるツール群。その中のunity-builderというやつがすごいやつ。

ワークフロー

図解しているのでスライドをどうぞ。
構築手順はこちら

qiita.com

工夫ポイント

・cocoapodsを使っているがcacheを使ってうまく短縮
・ビルドとアップロードは分けて考えて、手動アップロードにも対応
・ビルド番号を振って被らないようにしている

苦戦ポイント

iOSのArchiveは闇が多い(ログをcatすればわかったりする)
・ローカルで動かすのは大事(actがおすすめ)

qiita.com

まとめ

game-ciを使えばgithub actionsでもunityビルドができる
iosは大変

おまけ

ワンナイト人狼オンラインで遊べるアプリをリリースしました、ダウンロードしてね

ワンナイト人狼オンライン

ワンナイト人狼オンライン

  • virapture Inc.
  • ゲーム
  • 無料

apps.apple.com

 

 

 

#3 翻訳VR作ってみた

仕組み

Unityの音声認識APIに送って、返ってきたテキストを翻訳APIで翻訳してPhoton越しにUnityに送っています。

音声認識の比較

いくつか試しましたが、Cloud SpeechToTextとWatson Speech To TextのWebAPIで実装しました。
検証結果と導入方法はこちら

qiita.com

qiita.com

qiita.com

翻訳APIの比較

DeepLが一番精度が高かった、慣用句もOK

qiita.com

qiita.com

qiita.com

マルチ対応Tips

Photon Voice2で導入。
UnityとPhotonそれぞれのMicrophoneAPIを使用して並列に走らせた。
同名のDLLが多数存在する場合は削除して1つにする。

参考リンク

tech.drecom.co.jp

 

 

 

 

#4 Unity + MRTKでHoloLens2用音楽ゲームを作った話

Unity,ゲーム開発初心者、HoloLensで開発したい人向けの内容です。

制作したゲーム

ハッカソンで作りました

実装手順

MRTKのインストール→UIの実装→衝突判定の実装→ビルド
MRTKはMR機能をUnity上で手軽に扱うことができるツールです。(MR用のUI/UXを簡単に実装できる)

chomado.com

実装の感想

・MRTKのおかげで衝突判定がやりやすかった
・XRに興味を持つきっかけになった 

 

 

 

 

#5 レーシングゲームにおける AI 設計

どのような考え方でAIを作ったかお話します。

 

※コードや説明が多く含まれているので動画でお楽しみください

 

 

 

 

 

#6 FrameDebugger VS RenderDoc

FrameDebuggerとRenderDocの良い部分をまとめました。

FrameDebuggerとRenderDocは何?

アプリの描画や負荷を調べたりするツールです。
FrameDebuggerはUnity標準のツール、RenderDocはオープンソースのツールです。

比較した結果

FrameDebugger

・シンプルで使いやすかった。覚えることも少ない。
・Editorとほとんどのビルドで動く(要Development Build)
・EventBrowserはEditorの場合Scene上で描画されているものをピックアップ
・MeshViewはShaderPropertiesが見られる(Editor上だとリソースをすぐに特定できる)
・TextureViewはEditorの場合はGameTabに、アプリの場合はアプリに表示される

RenderDoc

・細かい情報が見られるのでチューニングやバグ修正にはこっち。
・EditorとWindowsLinuxAndroidのみ(Development Buildは不要)
・EventBrowserは現在ツールが動いている環境での処理時間が計測される
・MeshViewはvertex shaderのIn/Outの値が見られる
・TextureViewは現在のDrawCallで描かれているものがハイライトされる

結局どっちがいいの?

お互いにいい点があるが、
サッと見るのならFrameDebugger、負荷やエラーを見るならRenderDoc

 

 

 

 

#7 Unityで仮想通貨を取扱えるようにしてみた

※コードや説明が多く含まれているので動画でお楽しみください

 

 

 

 

#8 Unity EditorからADX2の出力データを直接いじる魔改造

twitter.com

ADX2のざっくりした紹介をします。

CRI ADX2とは

・音の演出が組み込まれたライブラリ&ツール、Unityでも使えます
インタラクティブミュージックなどの演出にこだわれる
サウンドの制御や、Androidの再生遅延を軽減する
・インディー向けの無償エディションが提供されています

game.criware.jp

最近の利用事例

www.gamebusiness.jp

詳しい使い方はこちらをどうぞ

www.slideshare.net

専用ツール

ADX2では専用ツールで音の設定をする。
大量のデータ管理、演出作り、サウンドデザイナーとゲームプログラマーの分業体制の構築ができる。
同時再生数やフェードの設定を音に埋め込める。

ADX2でのちょっと面倒なこと

・ゲームと音が密接に連動する演出だとツールの行き来が面倒
・ちょっと設定を変えたい時も面倒
・一人で作っていると分業構築ができるメリットもない

Atom Craftを開かずに音データの修正をしたい

ADX2 for Unity Change Cue Settingsを作りました

再生上限数と先着優先なのか後着優先なのかの設定がUnityから変更できる

github.com

 

デモの動画

www.youtube.com

 

 

 

 

協賛企業紹介

Cluster株式会社

バーチャルプラットフォームを作っています。

クラスター会社紹介資料 / We are hiring - Speaker Deck

 

特徴として体験入社というものをしています。
評価ではなく、一緒に働けるかをお互いに判断するためにしています。
ご応募お待ちしています。

www.wantedly.com

 

株式会社ハシラス

体感重視のVRコンテンツを作る会社です。
現在採用枠が埋まっています。また機会がありましたらよろしくお願いします。

hashilus.co.jp

※コンテンツの紹介があるのでアーカイブ動画からどうぞ。

 

 

その他の勉強会紹介

meetup.unity3d.jp

meetup.unity3d.jp

次回Roppongi.unity #10は6/23日の予定です。

 

 

他の方の感想ブログとか

blog.mogmet.com

 

 

 

過去のRoppongi.unityの記事

raspberly.hateblo.jp

 

 

 

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

【アセット紹介】Advanced Dissolveでディゾルブエフェクトを作る 2【Unity】

今回はアセットの紹介をしていきます。
紹介するのはAdvanced Dissolve
オブジェクトのディゾルブエフェクト(消滅エフェクト)を実装できるアセットです。

f:id:Raspberly:20210427221909p:plain

 

過去に同アセットの紹介記事を投稿しています。この記事はそのアップデート記事です。

raspberly.hateblo.jp

アセットのアップデートによりいろいろ変化したので書き直しました。
一応前の記事は残したままにしておきます。

f:id:Raspberly:20210428033256p:plain

 

お得なセール情報 (終了しました)

現在アセットストアではUnity春のアセット大セールが開催中!
500以上のアセットが50%OFF! さらに日替わりで限定アセットが70%OFF!
今回紹介する「Advanced Dissolve」もセール対象アセットです。
詳細とアセットの一覧はこちらのバナーからどうぞ

f:id:Raspberly:20210423215510p:plain

「Unity春のアセット大セール」は、日本時間の2021年4月12日pm16:00に始まりました。なお、このセールは2021年5月1日pm15:59に終了いたします。 500を超える最も人気のあるアセットが50%オフになるだけでなく、その中から毎日1つづつのアセットが日替わりで24時間限定で70%オフになります。

 

どんなアセット?

オブジェクトやTextMeshProをディゾルブさせるアセットです。
ディゾルブとは融解を意味し、オブジェクトの消滅や出現を表現できます。
モバイルやVR、URP、HDRPに対応しています。

f:id:Raspberly:20210428023714g:plain

 

 

 

 

開発環境

Unity2020.3.0f1

Advanced Dissolve ver2021.2

 

 

 

インポートの確認

アセットインポート完了時はこんな感じです。
ビルトイン、URP、HDRP用のunitypackageがあります。

f:id:Raspberly:20210426222020p:plain

プロジェクトに合わせたものをインポートしましょう。
この記事ではBuilt-inをインポートします。

デモシーンの確認

Amazing Assets/Advanced Dissolve/Example Sceneにデモシーンがあります。
事前にさわっておくとイメージがつかみやすいかもしれませんね。

f:id:Raspberly:20210427004802g:plain

f:id:Raspberly:20210427004833g:plain

f:id:Raspberly:20210427004859g:plain

f:id:Raspberly:20210427005027g:plain

f:id:Raspberly:20210427005147g:plain

 

 

 

 

 

クイックスタート

付属のドキュメントに従って動かしてみます。
詳しい手順やパラメータについてはドキュメントを参照してください。

単純なディゾル

スフィアの作成

Sphereを作り、この後作るシェーダーをMesh Rendererに割り当てます。

f:id:Raspberly:20210427023527p:plain

マテリアルの作成

新しくマテリアルを作成します。
シェーダーは「Amazing Assets/Advanced Dissolve」です。

f:id:Raspberly:20210427005652p:plain

いくつか種類がありますが、今回は「Amazing Assets/Advanced Dissolve/Standard/Metallic」を使用します。

カットアウトの設定

パラメータから、Advanced DissolveのStateをEnabledに変更します。

f:id:Raspberly:20210427005809p:plain


Cutoutのオプションから、StandardのSourceをNoneからCustom Mapに変更。
Mapは付属のノイズテクスチャを割り当てます。(Cutout Map 1とか)
この状態でClipスライダーを動かすとディゾルブがされます。これが基本的なディゾルブの設定です。

f:id:Raspberly:20210427015641g:plain


カットアウトの色

EdgeパラメーターのBase SourceをNoneからCutout Standardに変えると、カットアウト時のエッジの色を設定できます。

f:id:Raspberly:20210427015708g:plain

2つのテクスチャマップ

さきほどテクスチャマップを1つ設定しましたが、これは2つ設定できます。
CutoutのSourceを「Two Custom Maps」に変更。Map#2に2つめのテクスチャを設定します。

f:id:Raspberly:20210427020150p:plain

組み合わせ次第でさまざまなカットアウトが作り出せますね。(1+19、2+16、1+17)

f:id:Raspberly:20210427023435g:plain

 

ジオメトリックカットアウト(Plane)

ジオメトリックカットアウトはジオメトリックな形状にディゾルブさせる機能です。
Planeオブジェクトを使ってみます。

オブジェクトの用意

AdvancedDissolveGeometricCutoutController」がアタッチされたオブジェクトがシーンに必要です。
このコンポーネントが計算を行います。

f:id:Raspberly:20210427025941p:plain

空のゲームオブジェクトを配置し、アタッチしておきましょう。
同時にPlaneも作成しておきます。PlaneのMesh Rendererは切っておきます。(ディゾルブが見やすいように)

AdvancedDissolveGeometricCutoutControllerの設定

TypeをPlaneに変えて、Planeと先ほど作ったDissolveマテリアルをアサインします。

f:id:Raspberly:20210427223315p:plain

 

マテリアルの設定

CutoutのGeometric TypeをPlaneに変更。
EdgeのBase SourceをCutout Geometric(Allでもよい)に変更

f:id:Raspberly:20210427223516p:plain

これでPlaneを動かすとその位置によりSphereがディゾルブされます。

f:id:Raspberly:20210428003638g:plain

 

 

 

その他のパラメータ

いろいろパラメータがありますがその中でも面白いものを紹介

 

マテリアルのEdge BaseからIntensityの値を上げるとエッジが光ります。
ブルームのポストプロセスをつけるとわかりやすい。

f:id:Raspberly:20210427234717p:plain

f:id:Raspberly:20210428003657g:plain

 

CutoutのNoiseの値を増やすと、エッジに揺らぎを与えることができます。

f:id:Raspberly:20210427234850p:plain

f:id:Raspberly:20210428003756g:plain

 

マテリアルのMap ScrollからUVスクロールができます。

f:id:Raspberly:20210427235307p:plain

f:id:Raspberly:20210428003845g:plain

 

 

Invertから反転させたりも。
あらかじめ2つ用意して、片方だけ反転させると2つの世界を切り替えるような演出ができます。

f:id:Raspberly:20210428031139p:plain

f:id:Raspberly:20210428003919g:plain

 

 

 

実際に試してみる

ユニティちゃんのモデルをディゾルブしてみます。

 

マテリアルの編集とアサイ

ユニティちゃん用のマテリアルを編集します。
万一のため元のマテリアルは残しておきたいので、事前にマテリアルを複製しておきます。

シェーダーを「Amazing Assets/Advanced Dissolve/Unlit」に変更。
パラメータをこんな感じに設定。

f:id:Raspberly:20210428000643p:plain

 

なんか薄暗い場合はAlbedoのカラーを見直します

f:id:Raspberly:20210428000604p:plain

 

Controllerの設定

空のゲームオブジェクトを作成し「AdvancedDissolveGeometricCutoutControllerコンポーネントをアタッチ。
TypeをPlaneにして、Planeとユニティちゃんのマテリアルをアサインします。

f:id:Raspberly:20210428000759p:plain



これで完成です。Planeの位置に合わせてディゾルブしました。

f:id:Raspberly:20210428003959g:plain

 

 

 

実際に試してみる2

前回の記事と同じく教室と保健室を切り替えるデモを作ってみました。
設定などは上で紹介した通りです。

unity-chan.com

 

教室のマテリアルを同じように設定して、「AdvancedDissolveGeometricCutoutController」にアサインすれば完成です。

f:id:Raspberly:20210428021058p:plain

 

Planeに合わせて「ユニティちゃんがいる教室」と「ゆっこがいる保健室」が切り替わります。

youtu.be

 

 

 

まとめ

・Advanced Dissolveでディゾルブエフェクトを簡単に作成できる
・使い方はマテリアルのシェーダーを置き換えるだけ

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

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

【勉強会レポ】: Unity春のアセット祭り【登壇しました】

勉強会のレポート(メモ)です。
参加したのはこちら「Unity春のアセット祭り2021」

meetup.unity3d.jp

ハッシュタグ : #Unity春のアセット祭り

 

f:id:Raspberly:20210423215759p:plain

 

配信アーカイブはこちら

www.youtube.com

 

Unity Learning Materialsにも掲載されました。

learning.unity3d.jp

 

 

イベントの概要

アセットストアユーザーのみなさまが今注目なさっている推しアセットをご紹介いただくオンラインイベントを Unityステーションとして「Unity春のアセット大セール期間のど真ん中の日時(※1) にYouTubeでプレミア公開で開催いたします。

大人気アセットや必ず持っておくべきアセットなど、アセットストアの代表格とも言うべきアセットを、そのアセットについて深い思い入れがあるユーザーのみなさんに熱く語っていただくオンラインイベントです。

 

イベントページから登録してイベント後のアンケートに答えると抽選でアセットストアの特別クーポンがもらえます。
参加登録された方は忘れずにどうぞ。

 

 

現在開催中の「Unity春のアセット大セール」についてはこちら

f:id:Raspberly:20210423215510p:plain

 

 

 

#1 In-Game Debug Log for AR and VR devices

Denikさんによる「In-Game Debug Log for AR and VR devices」の紹介です。

ARやVRバイスデバッグログをゲーム内に表示するアセットです。
適当なスペースにログを置けるのが便利です。

利用方法

アセットストアからインポートして、付属のプレハブをシーンに配置するだけ。
DebugLogPanelコンポーネントからカスタマイズもできます。

紹介記事

自身のブログでも紹介記事を投稿しています。

xrdnk.hateblo.jp

 

 

#2 TopDown Engine

のぼるさんによる「TopDown Engine」の紹介です。

見下ろし型ゲームの仕組みが一通り入ったアセットです。
リソースを置き換えるだけで自分なりに改造できます。デモも豊富です。

機能の紹介

・アイテムメニュー 拾って装備したり切り替えたり仕様する仕組み
・AI 巡回、追従、攻撃など思考の設定
・他にも扉やワープなどステージギミックが様々用意されています

使用するポイント

・デモを確認する
・作りたいイメージに合うデモを改造してみる
・ドキュメントは翻訳機能で
・追加したい機能は別アセットで入れる

 

 

 

#3 Mesh Baker

オノッチさんによる「Mesh Baker」の紹介です。

メッシュやテクスチャを1つにするツールです。
パフォーマンスの改善やメッシュやマテリアル数制限に対応できます。

 

 

 

 

 

#4 Peek - Editor Toolkit

私による「Peek - Editor Toolkit」の紹介です。

Unityのワークフローを改善・効率化するアセットです。

 

 

 

#5 X-Frame FPS Accelerator

Limさんによる「X-Frame FPS Accelerator」の紹介です。

性能が低いPCでの開発や、スマホで動作させる時に便利なアセットです。
フレームレートが低いときに画面のクオリティを下げてくれます。URP対応です。

使い方

メインのカメラに、X-Frame FPS Acceleratorコンポーネントをアタッチするだけ
フレームレートとクオリティを画面に表示するデバッグ機能もあります。

設定項目

クオリティを下げるFPSのボーダーや、クオリティは下げたいが影は消さないようにする項目があります。

 

 

 

 

 

 

登壇した感想

久々にイベント登壇しました。(Gotanda.unity #15以来)
最近喋る機会がないため噛みまくりでしたが、事前録画のため事故がないのはいいですね。
録画して聞く自分の声が気持ち悪すぎてもうね・・・

 

 

Peek - Editor Toolkitについてはスライド内でもあった通り過去に紹介記事を投稿しています。
基本機能の解説をしているのでこちらも合わせてどうぞ。

raspberly.hateblo.jp

発表ではGroupsProbe2つの機能を取り上げていますが、最初はSticky Drag & Dropも取り上げる予定でした。
かなり詰め込まなくてはいけなくなるため最終的に没になりましたが、こちらも便利な機能です。
これらは小さな効率化ですが、開発中は何度も行う操作のため結果的に開発時間の大幅な短縮が狙えますよ。


過去にHumble Bundleの対象アセットだったため、持ってるかたはぜひお試しください。

www.asset-sale.net

 

 

協賛イベント

cluster.mu

 

 

 

 

スライドや発表練習で新しいアセット紹介記事を書く余裕がなかったため、
セール終了までに1つは書いておきたい所。

 

 

 

※セールページへのリンクのみアフィリエイトリンクになっています。

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

【Unityネタ】サイズを変えても比率が変化しない「ふきだし」を作る

今回はUnityネタをやっていきます。
9スライスを使ってサイズが変化してもカクカクにならない「ふきだし」を作っていきます。

f:id:Raspberly:20210411232925p:plain

 

はじめに

この記事を書こうと思ったきっかけはこちらです。
Twitterでも話題のバーチャル・ジャパン・プラットフォームの紹介動画
とても印象的な場面がたくさん出てきます。

www.youtube.com


みなさんも気になる所があるかと思いますが、個人的に一番気になったのがこのシーン!

f:id:Raspberly:20210411183709p:plain

このふきだしの部分です
左右に引っ張っているせいなのか比率が変化してカクカクになっています。
これは見栄えがよくないですね。

 

 

そこで今回は、9スライスを使ってサイズが変化してもカクカクにならないふきだしを作ってみます。
これに関する解説記事はたくさんありますが、さわったことがない領域なのでまとめておきます。

 

 

開発環境

Unity 2020.3.0f1

 
吹き出しの素材はこちらを使わせていただきました

カスタマイズ可能!フリーアイコン

 

 

Imageをそのまま大きくするとどうなるか

まずはダメな例としてImageをそのまま大きくしてみます。
ImageにSpriteを割り当てWidthを大きくしてみると、左右の黒枠や下の出っ張りが引き延ばされカクカクになります。

f:id:Raspberly:20210411220624g:plain

これはImageに割り当てられているSpriteの比率が変化し、引き伸ばされているためおこります。

 

 

Spriteの9スライス

これを回避するためにはSpriteの9スライスを行います。
9スライスは、Spriteを9分割しサイズが変更されてもアスペクト比が維持されるようにする2D手法です。
Sprite Editorから分割できます。

2D Spriteパッケージのインストール

Sprite Editorを使うには、Unity Package Managerから2D Spriteパッケージをインストールする必要があります。

f:id:Raspberly:20210411213847p:plain

 

テクスチャのImportSettings

ふきだしテクスチャのImportSettingsを変更します。
Texture TypeをSpriteに、MeshTypeをFull Rectに変えます。変更後はApplyを忘れないように。

f:id:Raspberly:20210411223316p:plain

 

Sprite Editorからスライス

そのままImport SettingsからSprite Editorを起動します。

f:id:Raspberly:20210411225041p:plain

 

ここでSpriteを分割する境界(緑色の線)を設定します。
ふきだしの尖っている部分や角が引き延ばされないよう↓のようにします。

f:id:Raspberly:20210411225216p:plain

境界設定後はApplyを忘れないように

ImageのImage Typeを変更

SpriteをCanvas内のImageに設定したら、Image TypeをSliced*1に変更します。

f:id:Raspberly:20210411225603p:plain

 

これで完成です。
サイズを変更しても角や尖っている部分は引き延ばされないようになりました。

f:id:Raspberly:20210411230900g:plain

 

 

まとめ

・Spriteを9スライスすることで、サイズが変化しても比率を保つことができる
・9スライスはSprite Editorから行う
・Image TypeはSlicedかTiledにする

f:id:Raspberly:20210411233308g:plain

 この辺はあまり詳しくないので間違っている所や改善点があればコメントなどによろしくお願いします。

 

 

 

 

 

 

参考資料

docs.unity3d.com

 

shikaku-sh.hatenablog.com

 

 

テキストに合わせてサイズを可変させるにはこちらがオススメ

tech.pfq.jp

 

 

*1:Tiledでもよい、違いはこちらスプライトの 9 スライス - Unity マニュアル

【Unityネタ】Project PLATEAUを使って東京の3Dモデルを表示する

今回はUnityネタをやっていきます。
Twitterで話題の3D都市モデル「PLATEAU」をUnityに取り込んで表示するところまでやってみます。

f:id:Raspberly:20210402041110p:plain

f:id:Raspberly:20210402041552p:plain

(例として本当は新宿区を全て表示したかったけどマシンパワーが足りないので一部のみ)

実行環境

Unity 2020.3.0f1

3D都市モデル(Project PLATEAU)東京都23区(FBX 2020年度) バージョン1.0.0

 

 

PLATEAUとは

PLATEAU(プラトー)は3D都市モデルのオープンデータ化プロジェクトです。
現在は東京23区のみですが、今後増えるようです。

PLATEAU は、国土交通省が進める3D都市モデル整備のリーディングプロジェクトである。都市活動のプラットフォームデータとして3D都市モデルを整備し、オープンデータとして公開することで、誰もが自由に都市のデータを引き出し、活用できるようになる。

www.mlit.go.jp

 

 

PLATEAU VIEW

PLATEAUの3Dモデルをブラウザ上で確認できるWebアプリです。
どういう感じのモデルなのかが大体わかると思います。

www.mlit.go.jp

www.youtube.com

 

 

利用規約

規約に従っている限り、複製、公衆送信、翻訳、変形の翻訳が自由にできます。商用利用もできます。

・コンテンツを利用する場合は出典を、加工する場合は加工している旨を記載すること
コンテンツ内に第三者著作権やその他の権利を有している場合があり、それらは利用者が許諾を得ること

建築物の中には看板企業ロゴが入っている場合があり、
それらを使う場合は個別に許諾を得ないといけないようです。
どれがセーフでどれがアウトなのか利用者側で判断するのが難しそうではあります。

f:id:Raspberly:20210402040326p:plain

 

原文はこちら

www.mlit.go.jp

 

 

 

PLATEAUのダウンロード

こちらのページからダウンロードできます。

www.geospatial.jp

現在はCityGML形式3D Tiles形式(建物)、FBX形式の3種類がダウンロードできます。
※3D Tiles形式(道路)、OBJ形式は近日公開予定

 

Unityでそのまま使えるFBX形式をダウンロードします。
CityGMLと3D Tilesは3D都市・地理用データフォーマットです。そのままUnityで扱うことはできません。

www.geospatial.jp

 

範囲図データとFBXデータの2つが置いてあります。

f:id:Raspberly:20210402152511p:plain

FBXデータの名前にある数値は範囲図データと結びついています。
例えば、新宿あたりのデータは533945になる。

f:id:Raspberly:20210401191445p:plain

今回は533945を使います。

 

ダウンロード後はファイルを解凍。その中にさらに圧縮ファイルがあるのでこれも解凍。
それぞれ種類ごとに分かれています。

f:id:Raspberly:20210402021716p:plain

 

 

 

Unityへの配置

UnityのAssets配下にそのままD&Dしてインポートする。容量がすさまじいので時間がかかる場合があります。
PCのスペックに不安があるのなら、小分けにインポートした方がいいです。
インポートが完了したらシーンに配置してみます。無事表示されればOK。

brid

調べてもよくわかりませんでした、橋とか高架とかのモデルっぽい?

f:id:Raspberly:20210402041645p:plain


dem

地形のデータです。(厳密には標高データのことらしい)

f:id:Raspberly:20210402041852p:plain

 

LOD1

テクスチャのないモデル群です。↓のスクショはプレハブ1つ分です。

f:id:Raspberly:20210402024802p:plain

これだけでもかなりの負荷です。

f:id:Raspberly:20210402024918p:plain


LOD2

LOD1よりも細かく分割されたモデル群でテクスチャ付きのものが多いのです。
ただしその分負荷は高め。

f:id:Raspberly:20210402025324p:plain

f:id:Raspberly:20210402025413p:plain
負荷がとてつもなく高いためつよつよマシンでない場合なんらかの軽量化が必須です。

 

 

インポート中にUnityが止まった場合

タスクキルなどで強制終了してUnityを開きなおすと正常にインポートできていない場合があります。
その時はProjectビューからFBXファイルを右クリックしReimportを選ぶと再度インポートが開始されます。

f:id:Raspberly:20210402030925p:plain

 

 

 

 

軽量化

Mesh Bakerやこちらの記事を参考に軽量化することをオススメします。

zenn.dev

上のLOD2の所で紹介したものを軽量化してみましたがドローコールがかなり減りました。

f:id:Raspberly:20210402031817p:plain

f:id:Raspberly:20210402031853p:plain

 


こっちの方法もよさそう

 

qiita.com



 

まとめ

・PLATEAUから東京23区の3DモデルがUnityで使える
・プロジェクトにインポートしてシーンに配置するだけ
・容量が大きく負荷も高いため軽量化した方がよい
TwitterでPLATEAUをキーワードに検索するとさまざまな知見が得られるのでオススメ

PLATEAU - Twitter Search

 

 

 

参考資料

www.moguravr.com

www.hcc.co.jp

qiita.com

 

www.gsi.go.jp

 

 

※出典:3D都市モデル(Project PLATEAU)東京都23区 (https://www.geospatial.jp/ckan/dataset/plateau-tokyo23ku)
※Project PLATEAUのリンク先は国土交通省が運営しているWebサイトです。

【アセット紹介】Color Studioでカラーパレットを作成しよう【Unity】

今回はアセットの紹介をしていきます。
紹介するのはColor Studio。
カラーパレットを作成できるエディタ拡張アセットです。

有料アセットですが、現在無料で入手できる特別キャンペーンが開催中!
終了しました

購入画面でクーポンコード「KRONNECT2021」を入力すると100%OFFです!

 

 

お得なセール情報!

現在アセットストアではパブリッシャー丸ごとセールが開催中!終了しました
Beautifyで有名なアセットパブリッシャーKronnectの全アセットが50%OFF!
詳細とアセットの一覧はこちらのバナーからどうぞ

f:id:Raspberly:20210329120820p:plain

どんなアセット?

カラーパレットを作成できるエディタ拡張アセットです。
ピクセルアートを作成できるツールと、オブジェクトやスプライトの色を変更できるコンポーネントも付属しています。

f:id:Raspberly:20210329195827p:plain

COLOR STUDIOは、素晴らしいカラーパレットを作成し、オブジェクト、スプライト、シーンを再着色することができるエディタ拡張機能です。
エディタやランタイムで簡単に作成できます。すべてのレンダリングパイプラインに対応しています。
インタラクティブなカラーホイールエディタと、カラーパレットをLUTとしてエクスポートするためのツール一式が付属しています。
また、カラーパレットをLUTとしてエクスポートしたり、既存のテクスチャやオブジェクトマテリアルの特定の色を変換することもできます。

パレットツールPalette Studioと、ピクセル描画ツールPixel Painterの2つが入っています。

 

Palette StudioはUnity標準のカラーパレットよりも高機能なパレットツールです。

f:id:Raspberly:20210329121605p:plain

 

 

Pixel PainterはTextureやSpriteをすぐに作成・編集できるツールです。

f:id:Raspberly:20210329191314p:plain

なにこれ

 

 

 

開発環境

Unity2020.3.0f1

 

 

 

クイックスタートと機能紹介

Color StudioはWindow/Color Studioから2つのツールを起動できます。

f:id:Raspberly:20210329115934p:plain

 

Palette Studio

カラーパレットを作成するツールです。タブごとに機能が分かれています。

f:id:Raspberly:20210329181457p:plain

Color Wheel

あらかじめ用意された配色パターンを使って簡単にパレットを作成できます。
ホイール上でCtr+左クリックでドットが押されパレットに色が追加されます。ドットをダブルクリックすると削除。

f:id:Raspberly:20210329121605p:plain

ホイールの下側には現在のパレットが表示されます。

Palette

現在のパレットが表示されます。色相数、濃淡、明るさ、色温度ケルビン)など細かい調整が行えます。
ここからパレットの保存、読み込み、エクスポートなどができます。
パレットの保存先はAssets/Color Studio/Palettesです。

f:id:Raspberly:20210329191746p:plain

Tools

オブジェクトやテクスチャにパレットの色を適応します。
オブジェクトの場合、対象のRendererにRecolorコンポーネントをアタッチする必要があります。
詳細は後述。

f:id:Raspberly:20210329191808p:plain

Compact View

パレットを小さく表示します。
他のタブと一緒にパレットを表示したい時用。

f:id:Raspberly:20210329191825p:plain

Project Palettes

プロジェクトに含まれているパレットを表示、管理します。
パレットの検索、複製、削除ができます。

f:id:Raspberly:20210329192638p:plain

パレットの名前を押すと即座にそのパレットが反映されます。

 

 

 

Pixel Painter

ピクセルアートを作成したり、既存のテクスチャやスプライトを編集できるツールです。

f:id:Raspberly:20210329191314p:plain

ピクセルの作成

新規作成する場合は最初にピクセルアートのグリッドサイズを選びます。4~64までの5種類です。

f:id:Raspberly:20210329193019p:plain
既存のものを編集する場合はSelectから選択します。

f:id:Raspberly:20210329193054p:plain

ブラシのカラー、大きさ、形状の選択

Brush Colorの左側を押すとPalette Studioが自動的に立ち上がるため、ここで色を選択。
Brush WidthとShapeではブラシの大きさと形状が選べます。

f:id:Raspberly:20210329193157p:plain

 

ツールボックス

画面左側のBrushesはペンや消しゴム、塗りつぶしなどの各種ツール一覧になっています。

f:id:Raspberly:20210329193234p:plain

Canvas

Canvasは描いたピクセルアート全体の削除や移動ができます

f:id:Raspberly:20210329193254p:plain

Mirror

左右や上下対称に描けるようになります

f:id:Raspberly:20210329193330p:plain

ピクセルアートの保存

フロッピーディスクのボタンを押すと保存されます。
保存先はAssets/Color Studio/Textureです。

f:id:Raspberly:20210329193419p:plain

 

 

 

 

 

実際に試してみる

Palette Studioでカラーパレットを作成し、オブジェクトに適応する所までやってみます。
今回はユニティちゃんのカチューシャにカラーパレットを適応し色を変えてみます。

f:id:Raspberly:20210329231850p:plain

 

まずはカラーパレットを作成します。
Window/Color Studio/Palette ManagerからPalette Studioを開きます。

f:id:Raspberly:20210329115934p:plain

 

カラーパターンをGradientにし、ベースの色を青にします。
これだけで青を基準としたグラデュエーションのカラーパレットが簡単に作成できます。

f:id:Raspberly:20210329231309p:plain


作成したカラーパレットを保存します。
paletteタブに移動し、新規保存したいのでSave As Newボタンを押します。

f:id:Raspberly:20210329231711p:plain

保存されたカラーパレットはAssets/Color Studio/Palettesフォルダに格納されます。

f:id:Raspberly:20210329231944p:plain



作成したカラーパレットをカチューシャに適応します。
unitychan/mesh_root/hairbandを選びます。

f:id:Raspberly:20210329232057p:plain

 

Recolorコンポーネントをアタッチします。
このコンポーネントは何らかのRendererがアタッチされているオブジェクトでないと動作しません。

f:id:Raspberly:20210329233318p:plain

ここにPaletteに先ほど作成したカラーパレットを紐づけます。

f:id:Raspberly:20210329233636p:plain



これで終わりです。
外部ツールを使わずUnityだけでオブジェクトの色を調整できました。それも数回クリックするだけです。

f:id:Raspberly:20210329233904p:plain

Palette Studioからカラーパレットを編集することで簡単に調整できます。
(そのたびにカラーパレットの保存をする必要があります)

 

 

まとめ

・Palette Studioを使うと簡単にカラーパレットを作成できる
・Pixel Painterを使うとピクセルアートをテクスチャやスプライト用に作成できる
・Recolorコンポーネントを使うと、オブジェクトやスプライトの色をランタイムに変更できる

冒頭の通り、今なら無料で購入できるので使う予定がない方も今すぐに購入処理をしておきましょう。

 

 

 

参考資料

公式ビデオです

www.youtube.com

 

www.youtube.com

 

 

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

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

【勉強会レポ】: 📣 unity1week online共有会 #4

勉強会のレポート(メモ)です。
参加したのはこちら「📣 unity1week online共有会 #4」

meetup.unity3d.jp

ハッシュタグ : #u1w共有会

アーカイブはこちら

www.youtube.com

 

前回はこちら

raspberly.hateblo.jp

unity1week共有会って何?

unity1weekでいろんなゲームを遊んでいると
「どういう実装をしているんだろう」「どんな人が作っているのか」など気になることがいっぱい!

それら気になることを直接聞けばいいじゃん!というのがunity1week共有会の始まりで、
みんなで学んで成長することが趣旨です。

 

unity1weekについてはこちら

Unity 1週間ゲームジャム | フリーゲーム投稿サイト unityroom

 

 

 

 

 

 

#1 疑似グループ開発の結果を1人で振り返る

作ったゲーム :

ゆうしゃおねがいしなないで! | フリーゲーム投稿サイト unityroom

デザート探偵 奄美一郎 〜魅惑の回ールケーキ〜 | フリーゲーム投稿サイト unityroom

きみに夢中(タイピングゲーム) | フリーゲーム投稿サイト unityroom

 

チーム開発がしたいが心理的ハードルが高い(難しい、迷惑をかけちゃう、めんどくさい )

→一人でチーム開発すればいいと考えました
担当数人にプロジェクトマネージャー全て自分です。

メリット

・ゲーム開発から逃れられない状況を自分で作り出せる
・いろんなゲーム作りが経験できる(新しい技術に挑戦できる)
・プロジェクトマネージャー(自分)に負担をかけないよう、自分同士の責任感が生まれる

デメリット

クオリティが犠牲になる、クオリティに凝る部分は重視できなくなる
手段が決まっているので、自分が達成したいことを取捨選択するのが大切

なんで3つもゲームを作ったのか

「回」文をテーマに3つのタイトルがつながるように作りました

 

 

 

 

 

#2 Notionを使ってUnity1Weekを完走した感想

作ったゲーム : RollingDrive | フリーゲーム投稿サイト unityroom

今回のゲームを作るにあたってNotionというサービスを使いました

Notionって?

いろいろできるメモサービスです、できることが多いので紹介しきれません

情報が整理されて俯瞰して確認できる

階層的にメモができるのでメモした所を忘れない、いい感じのレイアウトにしてくれる

看板っぽいやつが使える

Trelloみたいなのが使える
タスクのメモ、ゲームのボリュームを洗い出せ進捗の判断ができる

見返してニヤニヤできる

やってきたタスク、完了したカードを眺めてモチベーションを保てる

チームでも使える

ストアカウントを使うことで共有できる

タイムライン

ガントチャート的なもの、作業にかけた時間が可視化できる 
将来的に似たような作業が発生した場合に目安にできる

 

個人開発でもチーム開発でもNotionはいいぞ

 

 

 

 

#3 ドット絵描けない人がドット絵ゲームを作る

作ったゲーム :  Cyberpunk: VICE RUNNER | フリーゲーム投稿サイト unityroom

背景

街のアセットとProPixelizerというドット化シェーダーアセットを使いました。
これでドット絵みたいな質感になります

動きをつくるコツ

ドット絵っぽく見せる場合、1ドットが何unitに相当するか把握しposition/wotation反映時に丸める
細かいことを考えなくても大き目な数字で丸めればそれっぽくなる

UIアセット

ドット絵アセットを使いました

足りないUIは自分で描きました、UIはキャラクターと違う普通のUI作成と基本は同じ

顧客の顔

いちいち描いてられない
AIが自動生成した顔を集めてProPixelizerでドット化する

まとめ

・既存アセット+ProPixelizerで無限の可能性がある
・人物に関してはAIの力を使う
・ドット描ける人は最強なので捕まえて逃がすな

 

 

 

 

#4 実績ゼロから始めるunity1week

作ったゲーム :  Any% Glitched | フリーゲーム投稿サイト unityroom

イデアの作り方

ゲームを考える習慣をつける
頭の中で「普段の生活で目に入ったものをゲーム化する」習慣をつけました
イデアのストックの中から組み合わせた結果として今回のゲームになりました

まとめ

普段から意識してアイデアの種をストックしておく
関連させて覚えておく
イデアを組み合わせつつ納得感のあるまとめ方をする


u1wを通して成長する方法

u1wに参加して1年、評価を高めるためにしてきたことは、とにかく他の人のゲームを遊ぶこと
・どう作っているのか、自分で再現するとしたらどうするか
・気に入ったら再現する→自分に足りていない技術や身に着けたい技術が明確になる

 

 

 

 

#5 ドット絵で色々表現チャレンジ

作ったゲーム :  KAIJU | フリーゲーム投稿サイト unityroom

今回作ったゲームの細かい表現などをお話します

色の決め方

unity1week online共有会#2のRyosukeさんの発表を見よう

raspberly.hateblo.jp

表情差分

本体のスプライトと別のスプライトを重ねて置き、切り替えて対応
これなら新規の表情パターンの追加とAnimatorの連携が用意
アニメーションはAnimatorを使いました

ゲージアニメーション

SpriteMaskとDOTweenを組み合わせて実装
マスクの大きさと位置をズラす

UIアニメーション

3枚の画像で構成
手書きで書くよりも直線ツールやスプレーで雑に引いた方が手書きっぽい表現になる

UIの文字

TMPとAnimatorを組み合わせて落書き風の文字を再現
ゆらぎはスクリプトとAnimatorで切り替えています

まとめ

作成したゲームの表現方法を紹介しました
Animatorが思っていたより万能でした

 

 

 

 

#6 作り込みのための引き出し by NOAちゃんファンクラブ

作ったゲーム :  NOA's Project | フリーゲーム投稿サイト unityroom

NOAちゃんファンクラブというチームで参加しました
今回はこの開発の流れと学んだことについてお話します

開発

Miroでチームビルド、目標や下準備を打ち合わせ
1日目と2日目にクラス図を作成し、インターフェースを作ってそこから実装を行う
毎日テストができるようCloud Buildで自動ビルド

仕様変更

テストプレイから仕様変更
いろんなゲームをプレイされていて引き出しの広いnattuhanさんからご意見をいただきました

SilCilSystemの検証

導入が楽に進んだので短期開発には使ってみてもいいのかも
サンプルやドキュメントから試した方がよい

まとめ

引き出しって大切、いろんなゲームをすることが大事
チーム開発をするうえで意識の統一が大事
開発中はチーム全員で楽しむ

 

Steam公開に向けて開発中です

 

 

 

 

#7 知らない人とunity1weekした話

作ったゲーム :  ゲンバネコミミショウジョ | フリーゲーム投稿サイト unityroom

今回伝えたいことは「知らない人とu1wして将来の仲間を見つけよう」
自作ゲームを作るうえで将来のチームメンバーを探すためにu1wを再開しました

良い所

・たった1週間で相手のことが知れる
・自分のアピールにもなる
・失敗しても大丈夫(断られても大丈夫、積極的に声をかけていこう)

集団制作するうえでやったほうがいいこと

・事前にできることはやっておく
 コンセプトのすり合わせ、Unityの使い方
・毎日通話
 2往復以上かかるなら通話する、何を話すかは事前に決めておこう
・共同制作者の長所を活かす
・タスクの切り分けは明確に行う

悩みポイント

・自分の作りたいゲームにするのは難しい
・共同制作者がガッカリしないよう評価やプレイ数は意識せざるを得ないので攻めた企画は難しい
・ただし気にしすぎもよくない

まとめ

知らない人とunity1weekして将来の仲間を見つけよう

 

 

 

 

#8 コミュニケーションから逆算するゲームデザイン

作ったゲーム :  回覧!ヒダリ先輩を探せ! | フリーゲーム投稿サイト unityroom

ゲームとコミュニケーションは切っても切れない仲
コミュニケーションありきでゲームの企画を考えた方がいいのではと考えるようになった

ゲームジャムのコミュニケーション

u1wの良い固有要素は相互評価。自分のゲームを遊んだ人を見に行けるコミュニケーション。
もう一つがコメント欄で今回はこちらに着目しました。
最初はゲームからコメントを取りに行くことを考えましたが大変そうなので断念。

他のゲームのコメント欄に答えがある謎解き

わりとよかったが、作品数が多いのでもっとコメントを書けばよかった
なんなら全部にコメントするくらいの気概があればもっと面白かったかも

 

 

 

 

#9 2Dゲーム背景時短レシピ

作ったゲーム :  廻虫 | フリーゲーム投稿サイト unityroom

初めての2Dゲームをした時の時短テクニックの紹介
写真を絵に見せるテクニックと、3Dモデルを2D背景を作るテクニックが紹介されています。

デモがふくまれているので動画でどうぞ。のちほどNoteでまとめられます。
投稿されました。

note.com

 

一番言いたいことは、
「正攻法でなくとも時短のため自分だけの方法を見つけよう」

 

 

 

 

#10 モチベーションとモーションの話

作ったゲーム :  Press Button | フリーゲーム投稿サイト unityroom

モチベーションの話

今回の目標

Twitterでバズるネタゲームをつくる
・timelineをさわる
・新しい技術にふれる

気づいたこと

・バズる人にあこがれていただけで、ネタゲームを作ることは好きではなかった
・「さわる」という目標はすぐに達成してしまう

反省

・作りたいゲームかを考えるべき
 モチベーションが保てなくなる
・完成まで継続する目標を立てる
 

モーションの話

※ここでのモーションとはUIのアニメーションのことです

モーションを身に着けるために多くのインプットとアウトプットをしました

インプット

Twitterでモーション制作者をフォローし上げられている動画を見る
・unityroomでモーションを観察する
モーション周期表を見る

自分の中の引き出しを増やせる。参考にしたり真似したり組み合わせることは悪いことではない。

アウトプット

実現する力は慣れが9割、たくさん作るしかない
DOTweenだけでなくAnimationやTimelineでもよい

まとめ

・好きなゲームを作るのは楽しかった
・インプットとアウトプットはとても大事
・あれこれ考えるよりも簡単なところからインプットアウトプット 

 

 

 

 

 

 

以上です。
発表者のみなさんお疲れさまでした。👏👏👏

 

他の方の感想ブログ

note.com

note.com

 

 

 

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