AnacondaでHMR2.0環境をつくってみる

参考にしたのはこちら
russoale/hmr2.0

前回HMRを試してみたのですがpython2.7で環境を作りました
サポートされていないのでやはりpython3で試してみたくなり、こちらを発見しました

実行環境

・MacBook Pro10.14.4
・Anaconda3
・python3.6.10

結論

環境はつくれませんでした
SMPLのTFRecordが作れずうまくいきませんでした
トレーニング方法も記載してくれていたのですが作れず、、
時間がかかってしまったので断念することにしました

注意点

今回はpython3で試すことが目的でしたが、SMPLのデータセットがfor python2.7になってるのが気になります
また容量の少ないPCでやっているため、何をするにもディスクがいっぱいになってしまって辛かったので
容量は確保してやるべきでした
MPIIのデータセットダウンロードには何時間かかかったので注意です

推奨通りにvirtualenv+python3.x環境

Python > 3.6
が推奨されていますので、3.7で試してみました
3.8もありますが、安定しているのは3.7らしいので3.7をvirtualenvでいれてみたところ
エラーが発生しました

エラー

どうやら前回作ったanaconda環境と競合が発生したようです
参考リンク - pyenvとanacondaを共存させる時のactivate衝突問題の回避策3種類

Anacondaの環境は残しておきたかったのでAnacondaで環境をつくってみます

Anaconda3で環境作り

conda環境でpython3.8でHMR2.0を試してみましたがこちらもできませんでした
pythonを3.8にした理由は新しいからというだけです
Recomendが3.xなので新しい方が良いだろうという安易な判断です

conda install matplotlib==3.1.2

こちらが異常に時間がかかり、はいりません
どうやらpythonのバージョンを落とす必要があります
参考リンク

python3.6に変更することでmatplotlibは入りました!

他にも入らないものが、、

  • opendr==0.77
  • deepdish[version='>=0.3']
  • opencv-python
  • ipdb

ダウンロード先チャンネルを追加することで2つは入るようになりました

conda config --append conda-forge

残った2つをどう入れるのか。。
- opendr==0.77
- opencv-python

condaとpipは混在NGですが、pipだと入るみたいなので入れてみました

× conda install opencv-python
○ pip install opencv-python==4.1.2.30
とりあえず今のところ問題なく入ってるのでopendrの解消を目指します

こちらを参考に進めますがダウンロードが長い!
入らない気がするので中断します
こちらを参考にtensorflowを入れます

conda install -c conda-forge tensorflow

We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.  

と言われることがあるので、その時は言われた通り --use-feature=2020-resolver をつけてあげれば大丈夫です

この後もまだtensorflowをいれるためにエラーが発生します

ERROR: awscli 1.16.144 requires botocore==1.12.134, which is not installed.  
awscli 1.16.144 requires docutils>=0.10, which is not installed.  
awscli 1.16.144 requires s3transfer<0.3.0,>=0.2.0, which is not installed.  
awscli 1.16.144 requires rsa<=3.5.0,>=3.1.2, but you’ll have rsa 4.6 which is incompatible.   

そしてawscliを入れるとbotocore、s3transfer、、とないものが続きます
必要なものはいれていき、requirements.txtに書かれているものは入れてしまいます

名称 バージョン
matplotlib 3.1.2
numpy 1.18.1
scipy 1.4.1
opencv-python 4.1.2.30
pycocotools 2.0.2
trimesh 3.8.5
tqdm 4.48.2

デモを実行

環境が整ったはずなので手順通りにlogsフォルダの作成をしてパッケージを解凍します
解凍したらデモの実行をします

cd src/notebooks
python trimesh_renderer.py

ここからまだまだエラーが続きます
実行した流れの通りに記載します

importエラー

デモ実行後、importエラーが発生しました

Traceback (most recent call last):
File "trimesh_renderer.py", line 8, in
from main.local import LocalConfig
ModuleNotFoundError: No module named 'main'

どうやらlocalのimportに失敗しているのでパスを通してみます

import sys
sys.path.append(os.path.join('..', 'main'))
import local

実行するとエラー内容が変わりました

PermissionError

mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/data'

mkdirに失敗しているようです
main/config.py
の中でフォルダ作成されているようです

ROOT_DATA_DIR = os.path.join('/', 'data', 'ssd1', 'russales')

パスの場所を自分で管理できる場所にしたいので
os.path.join の第一引数の場所を適当に自分のわかる場所に変更してしまします

そしてデモを実行

Configurations:

と表示されて情報が表示されていきます、、、
building model...
Downloading data、、、、、
、、、、、、、、、、、、、、
いけそうでしたが エラー発生です

AttributeError

...main/model.py", line 434, in detect
AttributeError: 'Model' object has no attribute 'restore_check'

ソースを確認してみると↓でひっかかっているようです

if self.restore_check is None:
raise RuntimeError('restore did not succeed, pleas check if you set config.LOG_DIR correctly')

checkpoint_manager.latest_checkpointNoneとなっているため、self.restore_checkがNoneになるようです
公式の例文をみるとcheckpoint_manager.latest_checkpointは取得できそうなので調べてみます
ちなみにcheckpoint_manager.checkpointsも[]でした

初め、matplotlib==3.3.1、numpy==1.19.1を入れていたので推奨通りに入れなおしましたがエラーに変化はありませんでした

checkpoint.save()を呼ぶことでself.checkpoint_manager.latest_checkpointが作成され、restoreに成功しましたが、ドキュメントをみるとここでsaveする必要がなさそうに感じますが、restoreできなければ次へ進めないのでsaveすることにしました
とりあえず次のエラーが出たので解消します

ModuleNotFoundError : networkx, pyglet

ModuleNotFoundError: No module named 'networkx'
ModuleNotFoundError: No module named 'pyglet'

conda install によって解消しました

名称 バージョン
networkx 2.5
pyglet 1.5.7
ValueError

ValueError: operands could not be broadcast together with shapes (448,448) (224,224)

for c in range(0, 3):  
        img[y1:y2, x1:x2, c] = (alpha_mesh * image[:, :, c] + alpha_image * img[y1:y2, x1:x2, c])  

imageとimgのサイズが違うのでこのエラーがでているようです
調べてみると引数にあたるresolutionとは解像度なようです
渡しているh, wは画像のサイズのようなのでいい感じに同じサイズにしてくれるというわけではなさそうでした

image_bytes = scene.save_image(resolution=(h, w), background=bg_color, visible=True)

save_imageでなんとかできるのかもしれないのですが、見つからず
opencvでリサイズすることにしました

image2 = cv2.imdecode(np.frombuffer(image_bytes, np.uint8), -1)
image = cv2.resize(image2 , (w, h))

デコード後にリサイズします
ここでやっとデモが動きました!
f:id:filot_nextd2:20200925153902p:plain

ただこれはデモの結果として理想としているものとは違います
このissueはclosedになっていたのでさっそく試してみます

トレーニング

  • データセットをダウンロードしてdatasets_preprocessing/convert_datasets.shのパスを書き換えます
  • data/ssd1/russalesdatasets/xxxtfrecords_with_toes/xxxフォルダを作成しスクリプトを実行します

  • HMR2のREADME.mdにしたがってjupyterをいれます

    conda install jupyter

名称 バージョン
jupyter 1.0.0
jupyter_client 6.1.6
jupyter_console 6.2.0
jupyter_core 4.6.3
  • 実行します

    jupyter nbconvert inspect_dataset.ipynb --to python

[NbConvertApp] Converting notebook inspect_dataset.ipynb to python  
[NbConvertApp] Writing 3368 bytes to inspect_dataset.py  

これでpyファイルが作成されたはずです

python model.py
を実行しましたが、エラーです

six.raise_from(core._status_to_exception(e.code, message), None)
File "", line 3, in raise_from
tensorflow.python.framework.errors_impl.InvalidArgumentError: buffer_size must be greater than zero. [Op:ShuffleDatasetV2]

smplデータセットが無いことが原因なようです
またrussalesの下にtfrecordsフォルダも必要なようです

pklファイルをデータセットの下に置く必要がありますが、このファイルがどれにあたるものなのかがわからず、ここで断念することにしました

keypoint_markerフォルダ内にあるpklファイルを使ってみたところ

key = 'poses' if 'poses' in res.keys() else 'new_poses'  

というところでエラーがでました
確かにpklファイル内部にposesというキーもnew_posesというキーもありません
SMPL公式ページからファイルをダウンロードしても同じようにキーがありませんでした

そこでlsplsp_extをダウンロードしてTFRecordファイルを作成します

こちらは説明通りTFRecordファイルの作成ができます
SMPLのTFRecordもmodel.pyの実行に必要なのですが、どう作れば良いのかわからず
ここでどうやって進めれば良いのかがわからなくなり作業が止まってしまいました
model.pyファイルの途中でsaveが悪影響になっているのではないかとも思いました
時間をかけすぎてしまったのでちょっとここら辺でストップして他の作業をしながら空いた時間で引き続きみていきたいと思います

あとちょっとでできそうなのに。。

pklファイルの中身をterminalでみる

python -m pickle [filename]

UE4公式オンラインラーニングの備忘録を作る_4

目的

UE4公式オンラインラーニングの備忘録を作る_1
本記事の目的は↑を参照のこと

後で振り返りそうな内容のみ記載

今回の題材

ブループリントの学習
ブループリントの基礎概念~ブループリントによるプロダクトコンフィギュレータの作成
※ログイン必要

感想

ブループリントの基本知識や扱い方を、作りながら習得できるので、
最初の一歩としてアリ。

ブループリントの基礎概念

ブループリントとは?

Object - Actor - Pawn - Character
Level Blueprint(One Per Level)
Class Blueprint(Multiple, Modular)

ブループリントの作成とエディタのUI

Construction Script
関数ライブラリとマクロライブラリ

ブループリントコンポーネント

Default Scene Root

ブループリントグラフ

Ctrl + マウスホイール -> イベントグラフ内のズーム比率を+(1:1以上)
Context Sensitive
Alt + 左クリック -> ノード接続解除
ノード選択 + C -> コメント挿入
Graph, Macro, Function

様々な種類のブループリント

Level, Actor, Animation, UMG(Widget), 子

ブループリント使用時に注意すべきこと

Cast to XXX

ブループリントを使用したインタラクティブなマテリアル切り替え

コース紹介とマテリアルコレクション

Material Parameter Collection
Ctr + ドラッグ -> ノード切り替え
Component Maskノード

ウィジェットユーザーインターフェイスへの表示

Create Widgetノード
Add to Viewportノード
Player Controllerノード
Show Mouse Cursorノード

ウィジェットボタンとマテリアルコントロールの接続

Make LinearColorノード
Vector Parameter Valueノード

UIウィジェットのアニメーション

Flipflopノード
Play Animationノード
Selectノード

ブループリントによるプロダクトコンフィギュレータの作成

ブループリントイベントグラフ

Event Inputノード
Consume Input

変数と配列

Get All Actors Of Classノード
For Each Loopノード

データテーブル

構造体には、データテーブルの2列目から定義(1列目のUE Identification Number(UE4)は、定義必要なし)
Get DataTableRowノード
Integer -> to String -> RowNameに接続
Out Rowからデータを取得

HUD (ヘッドアップディスプレイ)

Sequenceノード

ゲームモード

Player Controller
Game Mode
Set View Target with Blendノード

マテリアル交換 パートA: コントローラーブループリントの作成

Add ...ノード
modulusノード
switch on ... ノード

マテリアル交換 パートC: 操作への反応

Rerouteノード

起動時のカバースクリーンの有効、無効の切り替え

Set Collision Response to All Channelsノード

アクセントマテリアルの交換

Make Arrayノード

データのHUDへの設定

Pure
AsCurrency
Append

ユーザーインタラクション用のHUD準備

Event Dispatcher
bind event to...ノード
Add Custom Eventノード

カメラインタラクションロジックの開発

Integer + Integer ノード
CompareIntノード
Delayノード

ボタン操作音の追加

Play Soundノード

単純な音楽再生プレイヤーと曲トラックの追加

Audio Component
Sound Base
Stopノード
Set Soundノード
Playノード

HMR(Human Mesh Recovery) をつかってみた

参考にしたのはこちらのプロジェクト
End-to-end Recovery of Human Shape and Pose
akazawa/hmr

Python2.7が推奨されています
サポートは切れていますがとりあえず動きがみたいので2.7で環境設定していきます

環境設定

macOS 10.14.4

サイトを見るとLinuxとWindowの設定が記述されていたのでWindowsを設定していたのですが、環境が作れなかったため、macで環境設定することになりました
macでもデモが動きました

手順

  1. Anaconda3を入れます
    公式ページの下の方に Installersリンク があります
    (前の記事でAnacondaのコマンドをまとめてます)

  2. 環境を作ります
    $ conda create -n [env_name] python=2.7

  3. Tensorflowをいれる
    公式ページに入れ方が載っています

  4. モデルをダウンロード
    $ wget https://people.eecs.berkeley.edu/~kanazawa/cachedir/hmr/models.tar.gz && tar -xf models.tar.gz

  5. デモを動かす
    $ python -m demo --img_path data/im1954.jpg
    これで動くと思います

エラー

私はデモ実行で複数のエラーがでました

ImportError: No module named absl

abls-pyを入れます
$ sudo pip install abls-py
私はpipで入れてしまったのですがpipとcondaが入るのはよくないので
condaで入れた方がよかったと思います

$ conda install -c anaconda absl-py

一度pip uninstallをしてcondaで入れ直しましたが問題なくデモは動きました

ImportError: No module named cv2

absl-pyを入れたあと、さらにエラーが発生しました

pythonでopencvを使うときによくみるやつです
$ conda install opencv
こちらで入ります

ImportError: No module named opendr.camera

次のエラーはopendrです
$ conda install opendr==0.77

デフォルトチャンネルのままだと入らないようでした

PackagesNotFoundError: The following packages are not available from vurrent channels

このときpipではいるという記事をみてpipでインストールしてしましました
$ pip install opendr==0.77
無事 "Successfully installed opendr-0.77" となりましたが
インストール先のチャンネル追加ができるコマンドを見つけたので
そちらで入れた方がよかったかもしれません

ダウンロード先を追加
$ conda config --append channels [channel_name]
ダウンロード先を確認
$ conda config --get channels

次のエラーです

TypeError: load() got on unexpected keyword argument 'encoding'

このエラーの上の行に
File "src/tf_smpl?batch_smple.py" line 32, in __init_
とありました

dd = pickle.load(f, encoding="latin-1")
このpickle.loadの引数がpython2とpython3で変わってしまったようです
32行目を
dd = pickle.load(f)
と書き直して
デモ実行!

デモ実行

無事実行されました

f:id:filot_nextd2:20200925153522p:plain

名称 バージョン
abls-py 0.5.0
opencv 3.4.2
opendr 0.77

windows10で設定をやめた理由

windowsが推奨されていたため、Anaconda3を入れて環境をつくっていました
python2.7はサポートがないと思ってpython3.6でやってみてました
macと同じようにエラーが発生
cv2がないとかscikit-imageがないとか、、、
macより色々でましたがだいたいモジュールが見つからないエラーでした
ただ、致命的なのがopendrがpython3に用意されていないということです

そこでpython2.7にしようと環境をつくりなおしました
今までと同じようにエラーを一つずつ潰していきます
そしてTensorflowが対応していないことに気づきました、、
https://www.tensorflow.org/install/pip?lang=python2#windows_1
なるほど。
python2.7を推奨しているのに

Windows Setup with python 3 and Anaconda

と書いてあるわけです

python2.7の環境を消そうとしたらAnacondaが起動しなくなりました、、

anaconda-navigator 起動しない

結構検索でてきます

https://github.com/ContinuumIO/anaconda-issues/issues?q=anaconda-navigator+
結果win64bit版のインストーラーが壊れているらしいという、、
そこでmacでやってみることにしました

anaconda-navigatorが動かないことに関しては
minicondaなどを試してみてもよかったかもです
condaコマンドが使えたら良いと思うので。

初めてさわるものばかりで
あとでこうした方が良かったと思うことがちらほらですが、
デモが動いたので次はpython3で動かしたいのと動画で実行してみたいです

UE4公式オンラインラーニングの備忘録を作る_3

目的

UE4公式オンラインラーニングの備忘録を作る_1
本記事の目的は↑を参照のこと

後で振り返りそうな内容のみ記載

今回の題材

Unreal Engine 入門
Unreal Engine 最初の一時間~よりよいパイプラインの構築
※ログイン必要

感想

「よりよいパイプラインの構築」が勉強になった

Unreal Engine 最初の一時間

Epic Games Launcherにようこそ

エンジンのインストール方法
マケプレで購入したアセットの使い方

初めてのプロジェクトを作成する

特に振り返りそうなことなし

コンテンツを扱う

Starter Contentの取り込み方
MarketPlace上のコンテンツの取り込み方
他のPJからのMigrate

初めてのレベルを作成する

Alt + ドラッグによるオブジェクト複製
Player Start
Atmosphere FogをDirectional Lightにattach
Reflection Capture

ビジュアルをコントロールする

反射光(Skylight)
露光(Post Process Volume)
BP_Sky_Sphere + Directional Light

アクタ

Lightingのビルド

Unreal Engine 入門

Viewport

Bookmark
Game View
Focus

World Outliner

ActorのGroup化(Lock、UnLock)

Details(詳細)パネル

プレイ中に非表示となるPropertyの表示方法
Property Matrix
Property Lock

Modes(モード)パネル

Geometry Editing

コンテンツブラウザ

Column View
Developer Content
Engine Content
Plugin Content
Localize Content
Collection(静的、動的)

メインツールバー

Settings(Preview Rendering Level)
BruePrintClassへの変更

エディタの環境設定

設定のexport/import

プロジェクト設定

設定のexport/import
Maps & Modes
Packaging
Collision
input
Rendering(Default Settings)

ワールドセッティング

Kill Z

プロジェクトとファイル構造について

プロジェクトの管理

新versionで開く際のプロジェクトのコピー

.uprojectファイルについて

switch version
Visual Studio Project生成
plugin version

プロジェクトの構造

削除可能(Intermediate、Binaries)
基本削除不能(Config、Content、Source)

ダウンロードキャッシュ

格納先パスの変更

DDC(Derived Data Cache)

格納先パスの変更
チームでの共有

よりよいパイプラインの構築

Document Reference
Project Download(and Powerpoint)

ソースコントロール

Perforce
SVN

テクスチャ

スタイルガイド
https://github.com/Allar/ue4-style-guide

サイズ(2の累乗)
alpha channel(埋め込み、分離)
RGB Mask Packing
Embed Alpha対応している拡張子はPNGとPSDとTGA、
HDR形式のみCube Mapが2の累乗である必要が無い
Mip Map
Mip Gen Settings(ちらつき対策)
Texture Groups

スタティックメッシュ

1 Unreal Unit = 1 Centimeter
LightMapとShadowMap(UV01内、重ねずに配置)
UCX{FullNameOfMesh}Number
Convex Decomposition
Overdrawの制限
Shader Complexity
LOD

エクスポートとインポート

Static Mesh(Smoothing Groups、Triangulate、Preserve Edge Orientation)
Skeltal Mesh(Smoothing Groups、Triangulate、Preserve Edge Orientation、Animation、Deformation、Skin)
Reimport
Auto Reimport
Full Scene Import(MaterialはDiffuseとNormalのみ、CameraはAnimationを含めない)

マテリアル パート1

Material Domain
Blend Mode
Shading Model
Master Material
Material Instance
RGB Mask Packing
Static Switches
Feature Level Switch

マスターマテリアルとマテリアル関数

VectorParameter node
テクスチャ選択後T Key
パラメータ変換
StaticSwitchPatameter node
scalar(1キー + 左クリック)
StaticComponentMaskParameter node
Lerp(Lキー + 左クリック)
Texture Cordinate node
Function Input node
Multiply(Mキー + 左クリック)

マテリアルインスタンスの活用

Material Property Overrides(確認用で使う)
頂点アニメーション
Opacity Mask
SimpleGlassWind

テクスチャストリーミング

UE4 Console 開き方(バッククオート、USキーボードはチルダ(日本語環境では@))
Default.iniで設定可能

LODとスタティックメッシュのマージ

Automatic LOD Creation Tools
BaseEngine.iniで設定可能
LOD Group

Marge Actor Tool -> 破壊的
LODSelection Type(Use specific LOD levelを選択 -> 新しいマテリアルの選択および調整が難しくなる)
Specific LOD(0を選択 -> 他はマージ後、最適か判別が難しいため)
Texture Sizing Type(用途に合わせて試す)
Blend Mode(親マテリアルによる)
マージ失敗対策で、事前にメモ帳などにコピぺ

HLOD(階層的LOD) -> 非破壊的

UE4公式オンラインラーニングの備忘録を作る_2

目的

UE4公式オンラインラーニングの備忘録を作る_1
本記事の目的は↑を参照のこと

今回の題材

Unreal Engine Kickstart (デベロッパー向け)
プログラミングキックスタート~マテリアルキックスタート
※ログイン必要

1-1. プログラミング - 概要と理念

f:id:filot_nextd2:20200925172139p:plain

1-2. プログラミング - スキマティック f:id:filot_nextd2:20200925172157p:plain

f:id:filot_nextd2:20200925172212p:plain f:id:filot_nextd2:20200925172235p:plain f:id:filot_nextd2:20200925172330p:plain f:id:filot_nextd2:20200925172403p:plain f:id:filot_nextd2:20200925172414p:plain GameMode
GameState
PlayerController
PlayerState
f:id:filot_nextd2:20200925172426p:plain f:id:filot_nextd2:20200925172448p:plain memreport

1-3. プログラミング - アドバイス

f:id:filot_nextd2:20200925172506p:plain Live++
f:id:filot_nextd2:20200925172517p:plain f:id:filot_nextd2:20200925172531p:plain f:id:filot_nextd2:20200925172606p:plain f:id:filot_nextd2:20200925172623p:plain f:id:filot_nextd2:20200925172635p:plain f:id:filot_nextd2:20200925172643p:plain f:id:filot_nextd2:20200925172656p:plain f:id:filot_nextd2:20200925172704p:plain

2-1. ブループリント - 概要と理念

f:id:filot_nextd2:20200925172716p:plain

2-2. ブループリント - スキマティック

f:id:filot_nextd2:20200925172724p:plain f:id:filot_nextd2:20200925172733p:plain
f:id:filot_nextd2:20200925172743p:plain f:id:filot_nextd2:20200925172755p:plain f:id:filot_nextd2:20200925172805p:plain f:id:filot_nextd2:20200925172814p:plain Event Dispatchers
Replication
f:id:filot_nextd2:20200925172822p:plain Child Actors
Blueprint Components
Blueprint Nativization
f:id:filot_nextd2:20200925172832p:plain Actor BluePrint
Level BluePrint
Anim BluePrint
Sequencer
UMG
Niagara
Variants Manager
f:id:filot_nextd2:20200925172842p:plain Direct References
Casting
Interfaces
f:id:filot_nextd2:20200925172854p:plain Blueprint Debugger
Logic Visualizer
Blueprint Watcher
Visual Logger

2-3. ブループリント - アドバイス

f:id:filot_nextd2:20200925172909p:plain f:id:filot_nextd2:20200925172914p:plain f:id:filot_nextd2:20200925172934p:plain f:id:filot_nextd2:20200925172940p:plain f:id:filot_nextd2:20200925172949p:plain f:id:filot_nextd2:20200925172958p:plain f:id:filot_nextd2:20200925173005p:plain f:id:filot_nextd2:20200925173014p:plain f:id:filot_nextd2:20200925173023p:plain f:id:filot_nextd2:20200925173032p:plain f:id:filot_nextd2:20200925173040p:plain f:id:filot_nextd2:20200925173048p:plain dumpticks
f:id:filot_nextd2:20200925173056p:plain f:id:filot_nextd2:20200925173137p:plain

3-1. キャラクター - 概要と理念

f:id:filot_nextd2:20200925173144p:plain

3-2. キャラクター - スキマティック

f:id:filot_nextd2:20200925173154p:plain f:id:filot_nextd2:20200925173201p:plain f:id:filot_nextd2:20200925173208p:plain f:id:filot_nextd2:20200925173216p:plain f:id:filot_nextd2:20200925173224p:plain SpringArm
f:id:filot_nextd2:20200925173230p:plain Behavior Tree
Black Board
Perception System
Environment Query System
f:id:filot_nextd2:20200925173243p:plain NavLink Proxies
NavModifiers
f:id:filot_nextd2:20200925173256p:plain f:id:filot_nextd2:20200925173305p:plain f:id:filot_nextd2:20200925173313p:plain Crowd Manager
Movement Component
Character Movement Component

3-3. キャラクター - アドバイス

f:id:filot_nextd2:20200925173322p:plain f:id:filot_nextd2:20200925173328p:plain f:id:filot_nextd2:20200925173336p:plain f:id:filot_nextd2:20200925173343p:plain f:id:filot_nextd2:20200925173350p:plain f:id:filot_nextd2:20200925173357p:plain f:id:filot_nextd2:20200925173406p:plain

4-1. マテリアル - 概要と理念

f:id:filot_nextd2:20200925173414p:plain

4-2. マテリアル - スキマティック

作成、操作方法、最適化
f:id:filot_nextd2:20200925173428p:plain f:id:filot_nextd2:20200925173437p:plain USF、HLSL
Shading Model
Blend Mode
Material Domain
Material Node
Expressions Workspace
f:id:filot_nextd2:20200925173445p:plain Texture Groups
Texture Streaming (StreamingPool)
Streaming Virtual Texturing
Compression (GrayScale Mask ×)
DDC
f:id:filot_nextd2:20200925173452p:plain Material Functions
Material Layers
Parameter Collections
Material Instances
f:id:filot_nextd2:20200925173500p:plain Shader Permutations
f:id:filot_nextd2:20200925173511p:plain Decal
Post Processing
Volumetric
Light Function
Runtime Virtual Texture
f:id:filot_nextd2:20200925173517p:plain Material Stats
Platform Stats
Shader Complexity
Quality / Feature Switches
Material Analyzer

4-3. マテリアル - アドバイス

f:id:filot_nextd2:20200925173525p:plain f:id:filot_nextd2:20200925173534p:plain f:id:filot_nextd2:20200925173541p:plain f:id:filot_nextd2:20200925173549p:plain f:id:filot_nextd2:20200925173556p:plain Incredibuild
f:id:filot_nextd2:20200925173604p:plain f:id:filot_nextd2:20200925173613p:plain f:id:filot_nextd2:20200925173619p:plain f:id:filot_nextd2:20200925173627p:plain

落ち着いたらどこかで辞書的にまとめる。

Anaconda3 コマンド集

Anaconda3 環境設定時に使ったコマンド

conda公式リンク

仮装環境の作成

  • conda create --name [env]
  • conda create -n [env] python=x.x

環境の有効化

conda activate

環境の無効化

conda deactivate

パッケージのインストール

  • そのままインストール
    conda install xxx
  • ファイルからインストール
    conda install --yes --file requirements.txt

インストールしたパッケージ参照

conda list

パッケージの更新

conda update xxx

ダウングレードの許可

conda config --set allow_conda_downgrades true

ダウングレード

conda install conda==x.x.xx

python バージョンの変更

conda install python=x.x

情報確認

conda info

環境一覧

conda info -e

terminal起動時の自動有効化をやめる

conda config --set auto_activate_base false

config確認

  • cat ~/.condarc
  • conda config --show-sources

環境の削除

本当に削除したい場合は先にクリーン
    conda install anaconda-clean
    anaconda-clean


conda remove --name [env] --all

環境複製して名称をつける

conda create -n [new_name] --clone [old_name]

ダウンロード先を追加

conda config --append channels [channel_name]

ダウンロード先を確認

conda config --get channels

anaconda-navigatorインストール

conda install -c anaconda anaconda-navigator




あまり使わなそう、、、

初期化

conda init


※auto_activate_base trueとなる

UE4公式オンラインラーニングの備忘録を作る_1

目的

  • Epics Games社公式のオンラインラーニング、どこから着手するのが正解なのか迷う
    (タグ:Getting_Started選択時に順番が記載されていない)
  • ラーニングパスでやればよさそう
    (各ラーニングパス毎の動画の合計時間が5時間以上有る為(最長約15時間)、学びながら流すのは、正直しんどい)
  • 重要になりそうなキーワードを思い出す手段が欲しい(ドキュメントを検索できる、ググれる)
  • 後から動画を辿りたくはない
    結果、画像、キーワードを羅列した、備忘録を作ることにした

画像はすべてEpicGames社のオンラインラーニングから引用
なお、あくまで画像やキーワードの備忘録とするので、説明の記載はしない
詳細を知りたい方は、動画を見るか、キーワードで公式ドキュメントを検索する、もしくはググった方がはやい
また個人的に後で必要になるかもと思ったところを記載してるので、セクション丸ごと無い箇所もある

今回の題材

  • Unreal Engine Kickstart (デベロッパー向け)
    ワールドビルディングキックスタート~エンジン構造キックスタート
    ※ログイン必要
  • チュートリアルのように1つの機能を1ステップずつレクチャーするのではなく、
    Engineの全体の概要、機能がどう絡んでいるのかを俯瞰して把握できるように作成されている。
    最初に確認すべきものが何か?知っておきたかった。といったものが掴めるようにしてある
    まずはここからといった印象
    なお、業界用語説明のようなものがほぼ無いため。全くのCG初心者やゲームエンジン初心者は苦戦すると思われる
    そういった方は、CGのモデリングでもテクスチャの作成など何でもいいので、CGに触れておくと話が理解できるかも

1-1. ワールド ビルディング - 概要と理念

Unreal Engine におけるレベルとワールドの作成の歴史を振り返り、ワークフローの進化の背後にある理念について説明します
ー>これの通りなので、興味のある人は、動画をどうぞ。
f:id:filot_nextd2:20200925142300p:plain
f:id:filot_nextd2:20200925142404p:plain

1-2. ワールド ビルディング - スキマティック

f:id:filot_nextd2:20200925142424p:plain
f:id:filot_nextd2:20200925142451p:plain
f:id:filot_nextd2:20200925142520p:plain
f:id:filot_nextd2:20200925142540p:plain
f:id:filot_nextd2:20200925142556p:plain
f:id:filot_nextd2:20200925142607p:plain
f:id:filot_nextd2:20200925142619p:plain
StaticMesh
HLOD
Instanced Static Mesh
Splines
Skeletal Meshes
Geometry
Procedual Mesh
Foliage
Grass
Landscapes
Sky
Sculpting
Modeling
UVTools
Mesh Simplefication
World Properties
LevelBlueprints
Timeline
Variant Manager
Sequencer
LightMaps
Lightmass Importance Volume
Precomputed Visibility
Reflaction Captures
Navmesh
Light Scenario
Level Streaming
Runtime Navimesh
Stat
GPU Profiler
Statics Panels
ViewMode

1-3. ワールド ビルディング - アドバイス

f:id:filot_nextd2:20200925142654p:plain

  • Level organization
    Important actor standards
    Outliner
    Groups
    Layers
    Selection tools

  • Level cleanliness
    Rotation and scale
    Grid and snapping
    Shadows/Collision

  • Landscape
    Lodding and Collision
    Per Component Settings
    Material complexity and Shared Samplers
    Distance Fading scale/textures
    Hard blends

  • Foliage
    Foliage Assets
    Range and Shadow
    Lower position material trick
    Slope material trick

2-1. レンダリング - 概念と理念

Unreal Engineレンダリングの歴史と理念について習得します。
ー>これの通りなので、興味のある人はどうぞ。
f:id:filot_nextd2:20200925142724p:plain

2-2. レンダリング - スキマティック

f:id:filot_nextd2:20200925142741p:plain
f:id:filot_nextd2:20200925142753p:plain
Distance Culling(Volume)
Frustum Culling
Pre Computed Visibility(Volume)
Visibility Culling
f:id:filot_nextd2:20200925142806p:plain
Early Z Pass
Basepass
RenderDoc(プロファイラ)
Dynamic Instancing
Lightmass
Lightmap
Unreal Swarm
f:id:filot_nextd2:20200925142819p:plain
〇Gbuffer
https://www.slideshare.net/EpicGamesJapan/renderdoc
〇Direct
Dynamic Lighting Shadow
IES texture
Light Function
Cascade Shadow map
Distance Field Shadows
Raytraced Shadow
Inset Shadow
Contact Shadow
〇Indirect
Light Propagation
Raytraced GI
Capsule Shadows
Distance Field Ambient Occlusion
Raytraced AO
f:id:filot_nextd2:20200925142839p:plain
Reflection Capture
Planar Reflections
Screen Space Reflections
f:id:filot_nextd2:20200925142856p:plain
Atmospherics
Volumetric Fog
Volumetric Material
Distance Fog
Translucency
f:id:filot_nextd2:20200925142910p:plain
Tonemapper
Bloom
Screen Space Sub Surface Scattering
Screen Space Global Illumination
Deoth Of Field
Exposure
Blendables
Camera Effects
f:id:filot_nextd2:20200925143814p:plain
CVars
f:id:filot_nextd2:20200925143830p:plain

3-1. アニメーション - 概念と理念

f:id:filot_nextd2:20200925143843p:plain

3-2. アニメーション - スキマティック

f:id:filot_nextd2:20200925143900p:plain
Skeleton
Skeletal Mesh
Physics Assets
Virtual Bones
Socket
Animation Retargeting Manager
LOD(Material)
f:id:filot_nextd2:20200925143914p:plain
Live Link
Anim Notifies
Anim Curves
Sync Markers
Blend Space
Montage
Pose Asset
f:id:filot_nextd2:20200925143926p:plain
Slot
Pose Caching
Blend and Additive
f:id:filot_nextd2:20200925144050p:plain
Rigid Body Node
Anim Dynamics
IK Nodes
Control Rig
Animation Layers
f:id:filot_nextd2:20200925144150p:plain
Animation Sharing Manager
Sequence Recorder
f:id:filot_nextd2:20200925144206p:plain
Animation Budget Allocator
Animation Tick
LOD
Fast Path Node
Multi Thread Animation Update

3-3. アニメーション - アドバイス

f:id:filot_nextd2:20200925144221p:plain
f:id:filot_nextd2:20200925144232p:plain
f:id:filot_nextd2:20200925144301p:plain
f:id:filot_nextd2:20200925144314p:plain
f:id:filot_nextd2:20200925144326p:plain
f:id:filot_nextd2:20200925144342p:plain

4-1. エンジン構造 - 概念と理念

Unreal Engine がどのようにして現在の姿になったのかの歴史を振り返っている
f:id:filot_nextd2:20200925144402p:plain

4-2. エンジン構造 - スキマティック

f:id:filot_nextd2:20200925144425p:plain
f:id:filot_nextd2:20200925144435p:plain
Git
Subversion
Perforce
Plastic
Unreal Game Sync
.uproject (Build ID)
f:id:filot_nextd2:20200925144453p:plain
f:id:filot_nextd2:20200925144512p:plain
UAssets
Redirector
Derived Data Cache
Shared DDC
f:id:filot_nextd2:20200925144538p:plain
f:id:filot_nextd2:20200925144550p:plain
Unreal FrontEnd
Unreal Insights
f:id:filot_nextd2:20200925144605p:plain
Build、Cooking、Staging、Packaging
Device Profiles
Project Launcher
Packaging Settings
Unreal Automation Tool
Cultures(Localize)
Signing / Encryption
Cooker Statics
Asset Audit
Reference Viewer
Size Map
Gauntlet

4-3. エンジン構造 - アドバイス

f:id:filot_nextd2:20200925144618p:plain
f:id:filot_nextd2:20200925144635p:plain
https://github.com/Allar/ue4-style-guide
f:id:filot_nextd2:20200925144655p:plain
f:id:filot_nextd2:20200925144708p:plain
f:id:filot_nextd2:20200925144720p:plain
f:id:filot_nextd2:20200925144731p:plain

※長くなったので、続きはまた今度