物理部分的一些设置

一、Physics Bodies:

老生常谈,AActor只是一个容器,所以是不可能有物理模拟部分的(AStaticMeshActor实例在世界大纲中可以设置,这个梗要看代码)。在API文档中搜索SetSimulatePhysics,也证明了猜测,在virtual void UPrimitiveComponent::SetSimulatePhysics(bool bSimulate) 首次出现;并分别被USkeletalMeshComponent和UDestructibleComponent组件override。所以物理模拟是针对组件的,更具体一步,是针对图元(primitive)组件及子类的。明白这一点,继续。

二、在世界大纲中,Physics Bodies是什么?

呃,其实就是这个了:

三、如何才能有这个东东?

勾选物理模拟就自动有了(Nvidia PhysX SDK决定的)。偷下懒,引用“Unreal engine physics essentials”原话:We can also create Physics Bodies by creating Physics Assets and Skeletal Meshes, which automatically have the properties of physics by default. Lastly, Shape Components in blueprints, such as spheres, boxes, and capsules will automatically gain the properties of a Physics Body if they are set for any sort of collision, overlap, or other physics simulation events. As always, remember to ensure that our asset has a collision applied to it before attempting to simulate physics or establish Physics Bodies, otherwise the simulation will not work.

四、代码中如何访问?

AMyActor::AMyActor()
{
     // Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don‘t need it.
    PrimaryActorTick.bCanEverTick = true;

    SC_RootSphere = CreateDefaultSubobject<USphereComponent>(TEXT("RootSphere"));
    SC_RootSphere->InitSphereRadius(50.0f);
    SetRootComponent(SC_RootSphere);

    SM_MyMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("模拟网格"));
    SM_MyMesh->SetupAttachment(SC_RootSphere);

    ConstructorHelpers::FObjectFinder<UStaticMesh> MeshAsset(TEXT("StaticMesh‘/Game/StarterContent/Shapes/Shape_Sphere.Shape_Sphere‘"));
    if (MeshAsset.Succeeded())
    {
        SM_MyMesh->SetStaticMesh(MeshAsset.Object);
    }

    SM_MyMesh->SetSimulatePhysics(true);
    SM_MyMesh->BodyInstance.SetMassOverride(1000.0f);
}

五、引用UE官档一句原话(https://docs.unrealengine.com/latest/INT/GettingStarted/FromUnity/index.html):In UE4, The collision component and rigidbody component are one.  The base class for this is UPrimitiveComponent, which has many subclasses (USphereComponent, UCapsuleComponent, etc.) to suit your needs.

所以,按unity的观点来讲,UPrimitiveComponet自动有了Rigidbody,只是如果勾选模拟物理,就是Unity中的Rigidbody,如果不勾选,就相当于unity中勾选了“Is Kinematic”选项,这时该组件的行为表现出运动学的特征,唔,运动学请参考前一篇。在官档中的例子也很有趣,摘录如下:

Kinematic Rigidbodies

Unity C#:

public class MyComponent : MonoBehaviour
{
    void Start()
    {
        rigidbody.isKinimatic = true;
        rigidbody.velocity = transform.forward * 10.0f;
    }
}

UE4 C++:

UCLASS()
class AMyActor : public AActor
{
    GENERATED_BODY()

    UPROPERTY()
    UPrimitiveComponent* PhysicalComp;

    AMyActor()
    {
        PhysicalComp = CreateDefaultSubobject<USphereComponent>(TEXT("CollisionAndPhysics"));
        PhysicalComp->SetSimulatePhysics(false);
        PhysicalComp->SetPhysicsLinearVelocity(GetActorRotation().Vector() * 100.0f);
    }
};
时间: 2024-11-07 00:17:01

物理部分的一些设置的相关文章

linuxRedhat7 windows物理机与虚拟机设置共享目录

一                   windows物理机与虚拟机设置共享目录 1.1        WMware Workstation点击重新安装WMware Tools 此时会弹出在客户机装载CD驱动来解压安装程序,然后执行vmware-install.pl 1.2        新建虚拟光驱挂载目录 mkdir /dvd 1.3        挂载虚拟光驱 mount /dev/cdrom /dvd cd /dvd ls 1.4        将安装包复制到根目录下并且解压 cp VM

centos7 配置虚拟交换机(物理交换机truck端口设置)(使用brctl)

转自:http://blog.csdn.net/qq_21398167/article/details/46409503 虚拟交换机配置 inux VLAN配置(vconfig) 安装vlan(vconfig)和加载8021q模块 [[email protected]~]#yum install vconfig [[email protected]~]#modprobe 8021q [[email protected]~]#lsmod |grep -i 8021q 使用linux vconfig

移动端一物理像素边框的设置

.border-1{ position: relative; } .border-1:after{ content: ' '; position: absolute; width: 100%; left: 0; bottom: 0; border-top: 1px solid rgba(7, 17, 21, 0.1); } @media (-webkit-min-device-pixel-ratio: 1.5),(min-device-pixel-ratio: 1.5) { .border-1:

在 Windows Vista、Windows 7 和 Windows Server 2008 上设置 SharePoint 2010 开发环境

适用范围: SharePoint Foundation 2010 | SharePoint Server 2010 本文内容 步骤 1:选择和预配置操作系统 步骤 2:安装 SharePoint 2010 的必备组件 步骤 3:安装 SharePoint 2010 步骤 4:安装 Visual Studio 2010 和开发人员文档 步骤 5:从已安装的系统创建 Hyper-V 映像 当您创建或自定义 SharePoint 解决方案时,通常最好在安装了 Microsoft SharePoint

iOS开发——高级篇——UIDynamic 物理引擎

一.UIDynamic 1.简介什么是UIDynamicUIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象重力.弹性碰撞等现象 物理引擎的价值广泛用于游戏开发,经典成功案例是“愤怒的小鸟”让开发人员可以在远离物理学公式的情况下,实现炫酷的物理仿真效果提高了游戏开发效率,产生更多优秀好玩的物理仿真游戏 知名的2D物理引擎Box2dChipmunk 2.使用步骤要想使用UIDynamic来实现物理仿真效果,大致的步骤如下

VMware vSphere vCenter 5.1之管理网络及安全设置

作者:在路上(老李)   QQ群:384423770 一.管理冗余网络设置 1. 选择esxi主机,本次选择192.168.1.21,在右边"配置"选项卡选择"硬件"的"网络",选择"vSwitch0"交换机的"属性" 2. 在"vSwitch0属性"对话框中选择"网络适配器" 3. 选择"添加",添加一块物理网卡 4. 选择一块和vmnic0在同

Cocos2d-x学习笔记(十五)--------&gt;物理引擎

物理引擎 Cocos2d-x引擎内置了两种物理引擎,它们分别是Box2D和Chipmunk,都是非常优秀的2D物理引擎,而且x引擎将它们都内置在SDK中.Box2D使用较为广泛,在这里选择Box2D来进行学习. 物理引擎模拟的内容: 重力:在游戏中模拟重力加速度,当游戏中人物跳跃起来后会受到重力影响而向下移动,在没有地面的场景,人物和物体会由于重力而做自由落体运动. 牵引力(动力):在游戏中比如汽车的引擎,人物本身能够提供向前进行的动力,这种牵引力是持续不断地作用在物体上的,物体因此可以向作用力

cocos2dx-3.x物理引擎Box2D介绍

物理引擎 Cocos2d-x引擎内置了两种物理引擎,它们分别是Box2D和Chipmunk,都是非常优秀的2D物理引擎,而且x引擎将它们都内置在SDK中.Box2D使用较为广泛,在这里选择Box2D来进行学习.  物理引擎模拟的内容: 重力:在游戏中模拟重力加速度,当游戏中人物跳跃起来后会受到重力影响而向下移动,在没有地面的场景,人物和物体会由于重力而做自由落体运动.牵引力(动力):在游戏中比如汽车的引擎,人物本身能够提供向前进行的动力,这种牵引力是持续不断地作用在物体上的,物体因此可以向作用力

UIDynamic物理仿真

UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象, 比如重力.弹性碰撞等现象,UIKit动力具有可组合.可重用和声明式的特点 物理引擎的价值 广泛用于游戏开发,经典成功案例是“愤怒的小鸟” 让开发人员可以在远离物理学公式的情况下,实现炫酷的物理仿真效果 提高了游戏开发效率,产生更多优秀好玩的物理仿真游戏 要想使用UIDynamic来实现物理仿真效果,大致的步骤如下 1.创建一个物理仿真器(顺便设置仿真范围) 2.创