AE中使用toComp()表达式转换坐标系

上一篇 C4D运动追踪导出到AE合成教程 中讲到讲三维空间中的坐标点及对应的运动相机导入到了AE中,要在AE中将粒子或其它特效去完全跟随三维空间的坐标运动是比较容易的,而如果要实现屏幕空间坐标(2D UI)与世界空间坐标(3D坐标)的运动追踪则要使用简单的表达式进行坐标转换处理.

首先准备好要显示的UI层,这里我使用一枚”钻石”做为示例,将该层的锚点修改到钻石底部:

在AE中可以看到”钻石”图层,展开该层找到Position位置参数,如果新建的图层没有,可以按P键添加Position参数,从Position参数处使用橡皮筋连接到要跟随的三维空间点的层,如下图所示:

继续阅读

macOS下的ffmpeg批处理脚本命令

首先夸奖ffmpeg程序是真的棒.通过命令行可以轻松转换音视频格式,对于多个文件批量转换略繁琐,所以写了该批处理脚本命令,并push在github仓库(https://github.com/huaikitty/ffmpegBatchConvert.git).

也可从此下载command文件:

ffmpegBatchConvert 批量转换脚本命令

  • 用于在macOS系统下调用ffmpeg工具批量转换音视频文件.
  • 如批量将某目录下所有avi文件转为mp4格式.
  • 如批量将某目录下所有flac文件转为mp3格式.
继续阅读

UE4人称控制器中相机俯仰角限定方法

在UE编辑器中,要给预设的人称控制器模板(ThirdPersonCharacter或FirstPersonCharacter)加相机俯仰角(Pitch)的限定是比较容易的.模板中使用了AddControllerPitchInput 节点来操纵控制器相机的俯仰角.我们不需要在此做判断限制俯仰角.

我们可以使用SetViewPitchMax和SetViewPitchMin这两个节点来设定相机俯仰角的最大值和最小值,它们归属于PlayerCameraManager,如下图在BeginPlay时设置俯仰角即可实现俯仰角的限定.

默认情况下俯仰角的最大值为89.9度和最小值为-89.9度.

在PlayerCameraManager中还有两个比较省时省力的节点,其中StartCameraFade节点可以用来做画面的淡入淡出效果.StartCameraShake节点可以用来做相机的颤动效果.简单易用.

今天就写到这里,回见!

UE4.27的PixelStreaming像素流送的分流

本地网络中配置UE的像素流送还是挺简单的,基本上勾选启用PixelStreaming插件编译出可执行程序后简单配置即可成功,这里对于基本配置不再赘述.

由于硬件性能的限制,在一台主机上跑满足访问的多个可执行程序实例是不现实的,加上Nvidia显卡对硬编码的限制,默认情况下在GeForce显卡上同时只能进行3个像素流送实例的编码.要满足多人访问不同的实例就要对像素流送进行分流,即根据客户端访问动态的分配空闲的主机和程序实例给客户访问.

上面提到的硬编码全程是Hardware-Accelerated Video Encoding,缩写为NVENC.
Nvidia官网对NVENC的说明:https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new
不同显卡型号同时支持编码会话数量的矩阵表:https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new#Encoder

下面以在一台主机配置出能满足3个用户同时访问独立内容像素流送进行说明

继续阅读

UE4.26的PixelStreaming像素流送崩溃问题

UE4的PixelStreaming的内网测试环境搭建还是比较简单的,按照虚幻官方文档一步步操作即可(https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/PixelStreaming/PixelStreamingIntro/).

搭建好之后,在使用较新的浏览器浏览,可以连接,点击Start后可能会出现类似”Player 101 not found”的崩溃错误.

Assertion failed: Player [File:D:/Build/++UE4/Sync/Engine/Plugins/Media/PixelStreaming/Source/PixelStreaming/Private/Streamer.cpp] [Line: 173]
player 101 not found

继续阅读

解决UE4编译项目后提示插件缺失问题

正在开发一个测试项目,没有使用C++,纯蓝图编写,使用了iTween插件,编辑器内运行没有问题,编译发布为可执行程序也能正常编译完成,但是运行可执行程序就会提示某某插件没有找到的提示(Plugin ‘iTween’ failed to load because module ‘iTween’ could not be found. Please ensure the plugin is properly installed, otherwise consider disabling the plugin for this project.).

而插件也确认在项目的Plugin目录下,为什么就提示找不到呢,经过搜寻才找到解决办法,即创建一个C++类,不用给这个类写任何代码,再次编译即可解决这个问题.

继续阅读