• 追加された行はこの色です。
  • 削除された行はこの色です。
#contents

----
*参考 [#k2e391f5]
- UE4 VisualStudioを使ってエンジンをデバッグする - Let's Enjoy Unreal Engine
http://unrealengine.hatenablog.com/entry/2014/08/22/215802

* 初期設定 [#t8eadc68]
+ ソースコードの取得
https://github.com/EpicGames/UnrealEngine/tree/master
のページの右側「Clone or Download」を押して取得
-- Gitの場合はそこのURLをコピー、GitからCloneでそのURLを指定
--- Master以外のバージョンにしたい場合はswichする
-- Downloadだと、zipファイルが取得できるのでそのまま
+ 落としてきた中にある「Setup.bat」を実行
+ 「Generate Project File.bat」を実行
+ 「UE4.sln」が出来上がる

+ 「UE4.sln」を立ち上げて「Development Editor」構成でビルド。実行。
+ プロジェクトブラウザが立ち上がるので「C++」タブで何か作る
+ プロジェクト用のVisual Studioが立ち上がる
-- この時点で「UE4.sln」のVisual Studioは閉じていい
+ 「Development Editor」構成でビルド。実行
+ 「Development Editor」構成でビルド。実行。
+ いつものエディターが立ち上がる。以後はこれを弄っていく

* マテリアル関連 [#pa056c7f]
** Shading Modelの追加 [#h0763e5c]
*** 参考 [#te88a92d]
- UE4のShading Modelを拡張して独自のライティングや描画機能を追加する方法を公開するよ! - Qiita @junyash
http://qiita.com/junyash/items/472c49b09d0e4f4cc010

*** やってみた [#g6b49fb5]
UE4.12
** 参考 [#e5bd56d6]
- [UE4] エンジンのシェーダコードを変更する 基礎編 - もんしょの巣穴
http://monsho.blog63.fc2.com/blog-entry-155.html
- UE4.14.0 Forward Shadingのエンジン改造でセルシェードやってみた - SlideShare
https://www.slideshare.net/com044/ue4140-forward-shading-69295343

+ Engine/Config/ConsoleVariables.ini
r.ShaderDevelopmentModeを1に
+ Engine/Source/Runtime/Engine/Classes/Engine/EngineTypes.h
EMaterialShadingModel
に追加
+ Engine/Source/Runtime/Engine/Private/Materials/MaterialShader.cpp
GetShadingModelString
UpdateMaterialShaderCompilingStats
+ Engine/Source/Runtime/Engine/Private/Materials/MaterialShared.cpp
FMaterial::SetupMaterialEnvironment
+ Engine/Shaders/DeferredShadingCommon.usf
#define SHADINGMODELID_*
+ Engine/Shaders/BasePassPixelShader.usf
void Main
+ Engine/Shaders/ShadingModels.usf
SurfaceShading
自作関数に
+ Engine/Shaders/PostProcessAmbient.usf
ImageBasedLightingMISに必要なら

** シェーダーの流れ [#v9c2b632]
- SurfaceShading
がMicrofacet Specular, lambertの計算。
- GetDynamicLighting - LightAccumulator_Add
辺りがライティング決定部分。NoLがライティング係数。

*** Defferd Shading時のシェーダーの流れ [#x820b8f2]
 RadialPixelMain(DefferdLightPixelShader.usf)
  GetDynamicLighting(DeferredLightingCommon.usf)
   SurfaceShading(ShadingModels.usf) 


*** Forward Shading時のシェーダーの流れ [#r6405ca8]
 FPixelShaderInOut_MainPS(BasePassPixelShader.usf)
  GetForwardDirectLighting(ForwardLightingCommon.usf)
   GetDynamicLighting(DeferredLightingCommon.usf)
    SurfaceShading(ShadingModels.usf) 

** Shading Modelの追加 [#h0763e5c]
[[エンジン改造-ShadingModel拡張]]

** マテリアルの出力にパラメーターを追加 [#u9935729]
[[エンジン改造-マテリアルの出力にパラメーターを追加]]

** Gバッファの拡張 [#vb2bef0a]
[[エンジン改造-Gバッファの拡張]]

** PostProcessMaterialのタイミング追加 [#j1f825f2]
[[PostProcessMaterialのタイミング追加]]

** シェーダーの変更 [#ccd7acf3]
*** 参考 [#e5bd56d6]
- [UE4] エンジンのシェーダコードを変更する 基礎編 - もんしょの巣穴
http://monsho.blog63.fc2.com/blog-entry-155.html
- https://docs.unrealengine.com/latest/JPN/Programming/Rendering/ShaderDevelopment/index.html
> シェーダーで作業をする場合、r.ShaderDevelopmentMode を必ず 1 に設定して有効にしてください。最も簡単な方法は、ConsoleVariables.ini を編集して、ロード時に毎回有効になるようにします。これで、エラー時のリトライ、シェーダー開発関連のログ、および警告が有効になります。
Engine\Config\ConsoleVariables.ini

*** メモ [#p244e1e6]
- シェーダーコード変更した後は、エディター上でCtrl+Sfhit+.
-- r.ShaderDevelopmentMode=1 の設定をしておく必要あり。(config or console)


* エディタ拡張 [#le7870a5]
- UE4のアセットに説明文・タグなどを追加するエディタ拡張について - ぼっちプログラマのメモ
http://pafuhana1213.hatenablog.com/entry/2017/01/24/012231

- マテリアルインスタンスのStaticSwitchParameterのOverrideフラグをロックするエディタ拡張について - ぼっちプログラマのメモ
http://pafuhana1213.hatenablog.com/entry/2017/01/26/001817

- マテリアルインスタンスのMaterial Property OverrideのOverrideフラグをロックするエディタ拡張について - ぼっちプログラマのメモ
http://pafuhana1213.hatenablog.com/entry/2017/01/29/164203


    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS