BlueRoseNote/02-Note/演讲与教程笔记/杭州UnrealCircle2022笔记.md
2023-06-29 11:55:02 +08:00

4.6 KiB
Raw Permalink Blame History

title, date, tags, rating, excerpt
title date tags rating excerpt
杭州UnrealCircle2022笔记 2022-08-09 13:55:15

杭州UnrealCircle

ChaosCloth

  1. 与引擎其他模块协作,比如动画系统
  2. 基于PositionBase稳定的表现效果。应该是基于粒子的。
  3. 允许使用AnimDriveMask 动画蓝图节点以及参数设置。
  4. 支持蓝图设置参数以及对应的Debug工具。
  5. 支持老算法NvCloth的结算结果。
  6. Chaos没有碰撞体数量限制NvCloth<32。新增只会影响Cloth的TaperedCapsules。
  • 对角色的Clothing菜单里的勾选与环境进行碰撞即可实现与环境碰撞。collision with environment。
  • MeshSkinning->Mesh Skinning选项对与高面Cloth的优化方案
  • CVARs Debug命令与PIE参数可视化
    • p.ChaosClothEditor.Debugxxx
    • p.ClothPhysics.WaitForParallelClothTask 1
    • p.ChaosDebugView.DebugRaw;
  • Lo-Hi值与Mask值相关。

博采传媒 基于Unreal的虚拟制片

剧本->资产制作->剧本可视化 制作预演短片。 Previz-》Techviz-》虚拟制景-》LED环幕拍摄

博采制作了一个半圆柱形的LED棚来解决工业光魔 棚的缺陷。杭州750平米5米高;安吉900平米8米高。

一个月制作 0特效 科幻短片LED棚实拍。 优点:可以节约实景道具,同时获得结果接近的光影效果。 难点如何将LED屏幕的光打到角色身上。比如拍摄夜景时控制DMX灯光与LED屏场景同步来对角色进行补光。 道具研发:比如模拟棚内汽车颠簸的承载系统。

需要大量拍摄技巧

为了保证演员脸上的间接照明演员必须里LED屏幕非常接近(2m,夹角150°)。

个人想法:是否可以使用无人机矩阵进行补光处理。

  • 小场景丁达尔光
  • 小置景大场景:需要小场景与背景结合经验。
  • 丁达尔光:可以直接做出丁达尔光的场景。
  • 摄像机仰拍:部分镜头因为圆顶屏幕的限制需要使用仰拍视角来规避。
  • 虚拟拍摄与DMX拍摄

虚幻引擎在短视频中的应用

可以购买LED电视代替LED屏低配版

虚幻录像系统

视频地址:https://www.bilibili.com/video/BV1Z34y1n72n?share_source=copy_web

概念

  • ReplaySubsystem一个全局的回放子系统封装核心接口并且暴露给上层使用。
  • DemoNetdriver继承自NetDriver宏观控制回放的录制与播放。
  • DemoNetConnection继承自NetConnection自定义实现回放数据的发送位置。
  • ReplayHelper防撞一些放回处理数据的接口将回放逻辑与DemoNetDriver进行解耦。
  • XXXNetworkReplayStreamer序列化数据的存储类。

Streamer流送有5种方式

  1. Null
  2. Http
  3. 内存
  4. 文件
  5. 还有一个忘记了

实现快进

  1. CheckPoint存档点即一个完整的世界快照每隔一段时间记录一个。
  2. Stream一段连续时间的数据流存储着从上一个Checkpoint到当前的所有录制数据。
  3. Event记录一些特殊的自定义事件。

录像系统的Streamer使用方式

  • UGameInstance* GameInstance=GetWorld()->GetGameInstrance();
  • GameInstance->StarrtRecordingRecord()
  • GameInstance->PlayReplay()
  • 在CS模块文件中增加NetworkReplayStreamingLocalFileNetworkReplayStreaming模块按照需求还可以增加InMemoryNetworkReplayStreaming与HttpNetworkReplayStreaming。

版本兼容

  • SendProperties_BackwardsCompatible_r/ReciveProperties_BackwardsBackwardsCompatible_r
    • 跨版本兼容将本版蹦属性的名称等信息一并写入NetFieldExports结构体再进行序列化
  • SendProperties_r/RecevieProperties_r
    • 不考虑兼容只序列化某个属性的Index以及内容不记录属性名称。

关卡设计思路

  • 游戏中的死亡回放要使用内存Streamer。
  • 在进行比赛的同时播放死亡录像采用DuplicatedLevelCollection方案实现。
  • 对Level进行划分DynamicSourceLevel原始世界、StaticLevel存放静态Actor、DynamicDuplicatedLevels存放回放世界。
  • 使用ActorGUID来区分是服务器Actor还是本地Actor。

观战系统

FHttpNetworkReplayStreamer通过服务器发送一个拷贝到观战服务器中。

优化

  • 尽量避免RPC而多使用属性同步
  • 使用PlayerState不适用Controller来存储同步数据
  • 服务器与客户端都可以录制回放
  • 建立对象池来避免加载、Spawn、Destroy、Actor GC的卡顿问题
  • 回放世界与真实世界是同一个物理场景,需要避免碰撞
    • 避免在回放世界打开物理
    • 通过设置PxFilterFlags FCollisionFilterData并修改引擎的碰撞规则处理