【UE4,Unity】俺、最適化、完全に理解した。(書いてる途中)
前置き
ダニング=クルーガー効果でいう、最初の高い所に来た気がするので記事かこ~
この先は、長い長い道を進むことになるので、よく見るページのブックマークとして使う予定です。
そして、ここまで歩んできた道のりを、あとの方が最短で歩めそうな記事なればなと思います。
こんな問題の解決に取り組む必要がある方
・作ったアプリが重い!何とかしたい!
・カクってする場所がある。
・ロードがすっごい長い。
・スマホアプリの場合で、電池が減るの早すぎ。
・突然落ちる。
・現状の仕様をほとんど変えず、クォリティ上げたい。
初級
★スタート★
「カクカクする!プロファイルとオプティマイズよろ!」
「えっと・・・ぷろふぁいる?おぷてぃまいず? なにそれ?」
この講演でプロファイル(調査)とオプティマイズ(最適化)について理解!
講演:「アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~」
★ーーー★ーーー★
プロファイルとオプティマイズについては分かった。RenderDocもググれば使える。(UE4、Unityどっちも使い方はネットにあります)
3Dモデルどうやっていじればいいの?ってなったらこれ!
●Blenderを少しだけかじって操作を覚えて、ポリゴン減らす方法を調べる。
書籍:「Blender標準テクニック ローポリキャラクター制作で学ぶ3DCG Kindle版」
●Blender2.8をメインに使うと思うので、目次見る限りでは、こっちの本でもいいかもしれない。
書籍:「Blender 2.8 3DCG スーパーテクニック」
★ーーー★ーーー★
オブジェクトのポリゴンを減らしたり、テクスチャを小さくしたり、するといいのは分かった。
ポリゴンを減らして、イラストソフトで解像度を下げたテクスチャも作れる。
その後はどうするの?ってなったらこの講演
講演:「Oculus GoでLAMさんのキャラを7+1人出そうとした話(東京クロノス)」
講演:「60fpsアクションを実現する秘訣を伝授 基礎編」
★ーーー★ーーー★
へ~こういう事やっていけばいいんだなって言うことは分かった。
モバイルやVRとかの何となくの判断基準が欲しい! もっと事例をっ!
講演:「【Unite 2017 Tokyo】「オルタナティブガールズ」〜50cmの距離感で3D美少女を最高にかわいく魅せる方法〜」
合わせてこの講演も読むと良い。
ライティングとアセットリダクション、アニメーションについて、やれることがさらにわかる!
講演:「Fortniteを支える技術」
★ーーー★ーーー★
ここまでで、なんとなくの最適化はできるようになりましたね!
初心に戻りましょう。
講演:【スライド】「【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術」
【動画】「【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術」
★ーーー★ーーー★
ここまで来たので心構え
「快適に遊べる範囲内で、クオリティを引き上げることが目標なので、全部やらなくてもいい」
VR向けへの心構え
「クオリティを妥協しつつも、仕様を満たし、快適に体験できるところまで落とし込むのが目標なので、重箱の隅をつつくぐらいやろう」
★ーーー★ーーー★
中級
プロファイングについて、もう少し踏み入ってみよう。
講演:「Unityプロファイリングマニアクス」
★ーーー★ーーー★
講演:「【Unity道場 2016】パフォーマンス最適化のポイント」
講演:「60fpsアクションを実現する秘訣を伝授 解析編」
★ーーー★ーーー★
ここら辺でこの本を読めば、GPUのお仕事が分かって楽しい!!
書籍:「ゲーム制作者になるための3Dグラフィックス技術」
★ーーー★ーーー★
コードも、アセットも最適化がガンガン進む1冊!!
講演でスライド1枚程度で語られてた内容がめっちゃ詳しく載ってます。
ここまでで覚えたことを踏まえれば、なんとか実践投入できるんじゃないかなと。
書籍:「Unity 2017最適化ガイド Unityのあらゆるパフォーマンス問題を解決するための手引き」
★ーーー★ーーー★
ここまで来たので、基本と応用が記事におりまぜてあって、面白く読める講演の紹介
講演:「『ドラゴンクエストXI S』はいかにUnreal Engine 4で最適化されたか? “UNREAL FEST EAST 2019”のセッションをお届け」
講演:(動画)Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
★ーーー★ーーー★
講演:(動画)そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について
講演:(スライド)「そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1
講演:(スライド)「そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2
★ーーー★ーーー★
上級
ここまできたらの講演を面白く聞ける!
講演:【CEDEC2016】Unreal Engine 4 のレンダリングフロー総おさらい
講演:「なぜなにリアルタイムレンダリング」
★ーーー★ーーー★
ここまで来ればやっと、読めるようになりますね。この本のこの部分が!
書籍:「ゲームエンジンアーキテクチャ 第2版」の第3部第10章レンダリングエンジン
★ーーー★ーーー★
レギュレーション決めの基準になりそうな事例、
講演:UE4におけるエフェクトの基本戦略事例 後半
★ーーー★ーーー★
講演:「UE4におけるLoadingとGCのProfilingと最適化手法」
講演:「UE4をレンダラとした趣味的スピード背景ルックデブ(UE4 Environment Art Dive)」
動画:「Unreal Japan Stream | UE4のプロファイリングと最適化のTips!Part 1 」
動画: 「 Unreal Japan Stream | UE4のプロファイリングと最適化のTips!Part 2」
★ーーー★ーーー★
メモーーーーー
GitHub - TwoTailsGames/Unity-Built-in-Shaders: Unity Built in Shaders
【UE4,Unity】最適化マップ 更新日:2020/04/03
重っってなって、適当にボトルネック探して、適当に対処してた。 そんな感じ、ちまちまやってたのをまとめた。
BlenderからVRMファイルを出力する時にでたエラーと解決法
一覧
エラーと解決法
・XXXXの頂点idXXに影響を与えるボーンが5以上あります。4つ以下にしてください
・ポリゴンはすべて三角形である必要があります。
・マテリアル:XXXXはVRMexport向けノードグループが直接Material output node に繋がれていません。ノードグループからそれらを使ってください。
その他
・出力時によく忘れること
・全部選択はオブジェクトモードにして、ビューポートで A キーを押す。
(アウトライナーでAキー
はアウトライナーの選択になっている)
XXXXの頂点idXXに影響を与えるボーンが5以上あります。4つ以下にしてください
【自動】
1. ボーンを選択、Shift
を押しながらXXXXを選択
2. ウェイトペイントのモードにする
3. あっちこっちに手を出してそうなボーンを選択(ctrlを押しながらクリック)
4. ウェイトから合計を制限を選択
5. 制限を5に上げて4に戻す。
【手動】(綺麗にしたと思ったのにボーンの影響が残っているのを消すときに使える)
1. ブラシのウェイトを0にする
2. 半径を500pxにする
3. 前面のみにチェック
4. ボーンを選んで、全体を人塗りする(これでそのボーンはどの頂点にも影響を及ぼさなくなる)
ポリゴンはすべて三角形である必要があります。
【四角面を三角面に変換 】
1. 対象を選択して、編集モード
2. 面から面を三角化を選択
XXXXはVRMexport向けノードグループが直接Material output node に繋がれていません。ノードグループからそれらを使ってください。
【MToon_universionedを使う】
1. サーフェスでMToon_universionedを選択
2. MainTextureは画像テクスチャを選んで画像を入れる
3. 以降はお好みで?
【Unity】ゲーム配布『Re:pair』:2020年GGJ
3日間にわたる2020年GGJが終わりました!
今回はノベルゲームジャンルで制作しました。
1万7千文字、立ち絵差分46枚、サウンド9曲というゲームジャムで作ったとは思えないボリュームに!
各個人が半端ない力を持ったチームだった。
プログラマーがいて、デザイナーがいなかったので、デザインで参戦しました。
なので、初めてコードを一切書かないゲームジャムになりました!
作るものが決まったのが土曜日の夜なので、そこから大ボリュームの作品になったのに完成するとは正直びっくりしてます。
自分は、VRoidでキャラクターの3Dモデル作って、立ち絵やタイトル画像、背景画像を作ってました。
15時間で立ち絵46枚は常人の域を超えれたと思う。
COCOPStudioとデザイン系アプリを組み合わせることで、ジャムでデザイナーとしてもいけるのがわかった!
画像のような感じ、テクニカルについては、今月にあるVRM勉強会のネタにしようかなと思います。
チーム
デザイナー (若草なずな)
プログラマー&ディレクター 1人(学生)
サウンド 2人(プロ、学生)
シナリオライター 2人
ダウンロード
ゲームとプロジェクトはGGJのサイトで配布してます。
Executable: ggj2020_build_01.zipからダウンロード
それを適当な所に解答して、.exeを実行すると遊ぶことができます。
globalgamejam.org
【Unity】Gradleビルドができない・・・
Unityバージョン:2018.4.7f1、2018.4.8f1、2018.4.13f1
AndroidStudio:3.4.0
ビルドができない。
よしググろう(com.google.gson.stream.MalformedJsonExcept)
いろいろ調べて、
classpath 'com.android.tools.build:gradle:3.4.0'
の部分を修正したらいいようです?
・Android Gradle プラグインのリリースノート
https://developer.android.com/studio/releases/gradle-plugin?hl=ja
・Android Studio のダウンロード アーカイブ
https://developer.android.com/studio/archive.html
色々なバージョンを試す
build.gradle(project側)
classpath 'com.android.tools.build:gradle:3.4.0'
→ classpath 'com.android.tools.build:gradle:5.1.1'
(エラーは出なくなったが、apkが作られず)
→ classpath 'com.android.tools.build:gradle:4.4.0'
(エラーは出なくなったが、apkが作られず)
→ classpath 'com.android.tools.build:gradle:3.2.1'
mainTemplate.gradle(Unity側)
classpath 'com.android.tools.build:gradle:3.4.0'
→ classpath 'com.android.tools.build:gradle:5.1.1'
(エラーは出なくなったが、apkが作られず)
→ classpath 'com.android.tools.build:gradle:4.4.0'
(エラーは出なくなったが、apkが作られず)
ビルド確認できている環境を参考にする
もともとこのプロジェクトを作っていたPCはビルドできる
Unityバージョン:2018.4.7f1
AndroidStudio:3.3.1
それじゃ、別PCで確認できたバージョンに合わせてビルドするか。
Unityバージョン:2018.4.7f1
AndroidStudio:3.3.1
mainTemplate.gradle(Unity側): classpath 'com.android.tools.build:gradle:3.4.0'
ビルドのたびに、mainTemplate.gradleがbuild.gradleを更新している・・・
ということは?
Unityバージョン:2018.4.7f1
AndroidStudio:3.3.1
mainTemplate.gradle(Unity側): classpath 'com.android.tools.build:gradle:3.2.1'
ビルドできたーーーーっ!!
ということはーーーっ!
Unityバージョン:2018.4.13f1
AndroidStudio:3.3.1
mainTemplate.gradle(Unity側): classpath 'com.android.tools.build:gradle:3.2.1'
ビルドできたーーーーっ!!
【Windows10】Pixel4開発準備(adbコマンドを使えるようにする)
前提
・AndroidStudioインストール済み
・adbコマンドが実行出来る環境
前提が整ってない方は検索して準備してください!
TypeAとTypeCのデータ通信ができるケーブルを買う
※PCにTypeCで接続できるならいらない。
私が買ったのはこれ
item.rakuten.co.jp
Pixel4をデータ通信可能に設定と開発者モード
Pixel4をデータ通信可能に設定(PCに接続したら毎回やらんといけない感じ・・・)
1.PCに接続
2.USBの使用をファイル転送に設定
設定→接続済みのデバイス→USBの設定→USBの使用
開発者モードとUSBデバッグ
1.ビルド番号を7回タップ
設定→デバイス情報→ビルド番号
2.USBデバッグを許可する
設定→システム→詳細→開発者向けオプション→USBデバッグ
Google USB Driverインストール
1.Android StudioからGoogle USB Driverを入手
Configure → SDK Manager → Android SDK → SDK Tools
Google USB Driverにチェックを入れる。
OKを選択してインストール
参考:
Google USB ドライバを入手する | Android Developers
ここまでやったら、コマンドプロンプト開いて、adb devices と打ち込んでリストにデバイスが表示されるはず!
【Unity、Xcode】他アプリと画面分割やりたい!
バージョン
・Unity : 2018.3
・Xcode: 11.1
こんな感じのことがやりたいです。(結果)
Xcode側で設定
参考:
https://developer.apple.com/library/archive/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad/QuickStartForSlideOverAndSplitView.html
メモ
関係ないかもしれないけど、あるかもしれないメモ
Unity側:”PlayerSettings”→”Resolution and Presentation”→”Requires Fullscreen”のチェックを外す
Xcode側:”Supports multiple windows”のチェックを外す