MikuMikuCombat开发笔记 - 角色

概述

目前有基于mmd的v家两位来自日本的明星初音未来与亚北加入了MMC的战场。不但能跳舞。打架也是非常的擅长!

技能设计

Miku

  • 生命值:200
  • 充能需求:1000
  • 使用武器:连射机枪
  • 伤害:15/发
  • 弹夹容量:30

    没有什么事一发子弹解决不了的。如果有,那就一梭子
    把你mikumiku掉

Akita

  • 生命值:200
  • 充能需求:800
  • 使用武器:野太刀
  • 伤害:40
  • 弹夹容量:无限

    竜人の剣を喰え(雾)

Unreal学习笔记 - 蓝图使用手册

概述

来源于官方蓝图简明手册说明
英文版PDF源文件

内容

图表操作

  • 图表操作菜单 在蓝图右键

    选择

  • 选择节点 点击节点
  • 添加选择 Shift+点击节点
  • 切换选择 Ctrl+点击节点
  • 框选(替换当前) 左键拖曳
  • 框选(添加) Shift+左键拖曳
  • 框选(移除) Ctrl+左键拖曳

    导航

  • 拖动图表 右键拖曳
  • 缩放合适大小 Home
  • 缩放大小 鼠标滚轮
  • 缩放大小 按住鼠标左右键并拖曳
  • 超过1:1放大 Ctrl+放大
  • 进入子视图 PageDn
  • 进入父视图 PageUp

    生成命令

  • 在内容浏览器中查找 Ctrl+B
  • 保存蓝图 Ctrl+S
  • 重做 Ctrl+Y
  • 撤销 Ctrl+Z
  • 在当前蓝图中查找 Ctrl+F
  • 在所有蓝图中查找 Ctrl+Shift+F
  • 编译蓝图 F7

    变量操作(我的蓝图)

  • 根据条件的Get/Set变量 拖动到兼容的引脚
  • Get/Set变量(通过菜单) 拖动到图表
  • Get变量 Ctrl+拖动到图表
  • Set变量 Alt+拖动到图表
  • 修改已存在的节点 拖动到Get/Set的边缘
  • 修改目录/排列 在我的蓝图中拖动

    节点操作

  • 节点相关操作菜单 右键节点
  • 跳转到声明节点/图表 双击节点
  • 移动节点 左键拖动节点
  • 移动选中节点 方向键
  • 删除选中节点 Delete
  • 重命名节点/修改注释 点击标题
  • 重命名节点/修改注释 F2
  • 切换断点 F9
  • 清除所有断点 Ctrl+Shift+F9
  • 剪切选中内容 Ctrl+X
  • 复制选中内容 Ctrl+C
  • 粘贴节点 Ctrl+V
  • 重复节点 Ctrl+W
  • 在选中内容上添加注释 C

    引脚操作

  • 引脚相关操作 右键引脚
  • 高亮连接的线 鼠标在引脚上悬浮
  • 连接到另一个引脚 点击并拖曳到引脚
  • 打开引脚相关操作菜单并连接 点击并拖曳到图表
  • 断开所有连接 Alt+点击引脚
  • 移动所有连接 Ctrl+左键拖动到引脚

    创建节点快捷键

  • 数组获得节点 A+点击
  • 分支节点 B+点击
  • 注释框节点 C
  • 延时节点 D+点击
  • 序列节点 S+点击
  • 开关节点 G+点击
  • For-Each循环节点 F+点击
  • 多重开关节点 M+点击
  • Do N times节点 N+点击
  • Do Once节点 O+点击
  • 开始运行事件 P+点击

blender学习笔记 - 常用快捷键

概述

在使用blender的过程中。快捷键是必不可少,因此我将我实际操作过程中的一些快捷键整理一下。方便后人学习

编辑模式

  • G 平移(按两下为沿线位移)
  • R 旋转(按两下垂直于屏幕操作)
  • S 缩放

    可以在后面加上X`YZ`按键表示按照XYZ方向进行操作 在后面加上`Shift+XShift+YShift+Z`表示锁定XYZ方向进行操作
    一次为全局。两次当前选中项相关方向(如自身)

  • C 刷选

  • B 框选
  • A 全选
  • Z 线框模式
  • T 左侧页
  • N 右侧页
  • W 更多选项(一些不常用但偶尔会用到的操作)
  • F 建面
  • E 挤出
  • K 切割(按住切割,回车确定)
  • Y 分割
  • P 分离(单独个体)
  • X 删除(融并)
  • V 分割
  • M 移动到层
  • H 隐藏
  • I 内插面
  • Alt+H 显示隐藏项
  • Alt+S 法向缩放
  • Shift+S 吸附
  • Shift+C 重置3D游标位置并使视图能展示所有物体
  • Ctrl+A 添加
  • Ctrl+R 环切
  • Ctrl+L 选中相连项
  • Ctrl+D 复制
  • Ctrl+P 设定父级
  • Ctrl+J 合并
  • Ctrl+B 边倒角
  • Ctrl+Shift+B 点倒角
  • Ctrl+Alt+Q 切换四格视图

视图

  • 小键盘1 前视图
  • 小键盘3 右视图
  • 小键盘7 顶视图
  • 小键盘5 透视
  • 小键盘9 切换到当前视图背面
  • 小键盘0 摄像机视角
  • 小键盘. 以当前活动项为中心
  • F12 渲染
  • Shitf+空格 最大化当前视图

雕刻

  • F 调整笔刷大小
  • LMB 突出
  • Ctrl+LMB 凹陷
  • Shift+LMB 平滑

动画

  • Shift+E 手动中间帧
  • Ctrl+C 复制当前姿态
  • Ctrl+V 粘贴复制的姿态
  • Ctrl+Shift+V 粘贴复制的镜像姿态
  • T 关键帧过渡样式

一些实用技巧

  • 在N面板有一个选项是锁定到视图。点选可以在摄像机视图模式实现航拍效果,对于动画来说就非常实用

Unreal学习笔记 - 绘制准心

在屏幕中央绘制准心

创建继承于HUD的蓝图类。在Gamemode中将原始HUD指向到新的HUD蓝图上

然后在创建的蓝图类中加入如下节点:
/images/unreal/HudDrawTexture.png
ReceiveDrawHUD为绘制事件调用
DrawTexture为绘制贴图的方法,需要传入绘制贴图,屏幕坐标,绘制大小,UV宽高,填充颜色(纯白贴图可以通过修改填充颜色的方法来修改绘制图形颜色)

Unreal学习笔记 - 图形选项

在选项中用户根据自己的环境调整游戏的画质

使用Execute Console Command输入指令

  • 屏幕缩放 r.screenPercentage [百分比][0~100]
  • 视距 sg.ViewDistanceQuality [Low|Medium|High|Wow][0|1|2|3]
  • 抗锯齿 sg.AntiAliasingQuality [Low|Medium|High|Epic][0|1|2|3]
  • 后期处理特效(视觉效果) sg.PostProcessQuality [Low|Medium|High|Epic][0|1|2|3]
  • 阴影质量 sg.ShadowQuality [Low|Medium|High|Epic][0|1|2|3]
  • 贴图质量 sg.TextureQuality [Low|Medium|High|Epic][0|1|2|3]
  • 特效 sg.EffectsQuality [Low|Medium|High|Epic][0|1|2|3]
  • 垂直同步 r.VSync [0|1]
  • 设置屏幕分辨率 r.SetRest [640x480|1280x720|1366x768|1920x1080|..(格式为 宽度x长度 后缀可以跟上wf表示window或fullscreen)]
  • 设置全屏模式 r.FullScreenMode [0|1|2]

    0: normal full screen (renders faster, more control over vsync, less GPU memory, 10bit color if possible)
    1: windowed full screen, desktop resolution (quick switch between applications and window mode, full quality)
    2: windowed full screen, specified resolution (like 1 but no unintuitive performance cliff, can be blurry, default)

Unreal学习笔记 - 使用JoinSession成功加入服务器但是无法跳转到服务器当前地图

现象

创建session后。第二个找到可用的session,但是当前玩家数量显示为0。并且加入后无法跳转到服务器当前的地图。
日志如下:

1
2
3
4
5
6
7
LogGameMode:Display: Match State Changed from InProgress to LeavingMap
LogGameState: Match State Changed from InProgress to LeavingMap
LogNet: Browse: 10.10.85.66:0//Game/Maps/StartLevel
LogInit: WinSock: Socket queue 32768 / 32768
PacketHandlerLog: Loaded PacketHandler component: Engine.EngineHandlerComponentFactory (StatelessConnectHandlerComponent)
LogNet: Game client on port 0, rate 10000
LogNet: UPendingNetGame::InitNetDriver: Sending hello. [UNetConnection] RemoteAddr: 10.10.85.66:0, Name: IpConnection_78, Driver: PendingNetDriver IpNetDriver_77, IsServer: NO, PC: NULL, Owner: NULL

解决方案

原因在于使用CreateSession创建完毕后使用OpenLevel进行跳转。需要给予OpenLevel参数Options中写入listen关键字才可以成功跳转

具体原因可以查看Unreal控制台命令相关说明

Unreal学习笔记 - 使用steam来进行多人联机

配置

在DefaultEngine.ini添加如下设置

1
2
3
4
5
6
7
8
9
10
11
12
[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
DefaultPlatformService=Steam

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"

完成对steam的引用。其中

480 SteamDevAppId 是 Valve 的测试应用 ID,所有人共享。随着工作的深入您需要自己的应用 Id,但 Steam 的大部分功能均可通过测试 ID 使用。

如果仅需要本地LAN联机。可以值添加

1
2
[OnlineSubsystem]
DefaultPlatformService=Steam

模块

在项目插件选项中勾选OnlineSubsystemSteam完成steam在线子系统模块的导入。

使用

创建会话

加入会话

查找会话

销毁会话

进阶

不满足于默认的功能?想要诸如好友、成就、语音…这些steam的拓展功能?在UnrealForum有一款插件正是满足了这些需求Advanced Sessions Plugin而且这款插件是完全免费的

Unreal学习笔记 - 修复右键菜单

背景

重装了一下Unreal。发现不知道为什么.uproject文件没有被自动关联。谷歌了一下找到了修复的解决方案。
原文:http://www.davidmoore.info/blog/2014/09/05/fix-the-missing-right-click-menu-for-unreal-engine-projects-uproject/

不过可能是因为适用于老版本的Unreal。新版本的Unreal的文件结构发生了变化。包括很多谷歌上的描述也是使用的原文的结构。而我用的Unreal 4.13.1版本并不适用。因此进行了一些修改。贴出解决方案cmd命令行文件。
不过该版本适用于自编译的Unreal引擎。对于使用Launcher安装的版本来说并不适用因此在原来的基础上进行了一些修改具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
:: UnrealProjectMenuRegistration.cmd
::
:: This batch file will try to find where the Unreal Engine is installed, then update your registry
:: to register the Unreal Project File type (and its right click menu for things such as generating
:: Visual Studio project files, and launching)
::
:: Run as an Administrator, as it's required for writing to HKLM.
::
:: Author: David Moore <[email protected]>
::
:: 二次修改:moonrailgun
:: http://www.moonrailgun.com/

::@ECHO OFF

echo.
echo Locating where Unreal Engine Launcher...
set UnrealLauncherDir= %~pd0

IF "%UnrealLauncherDir%"=="" GOTO CannotFindUnrealEngine

echo.
echo Using Unreal Engine directory: %UnrealLauncherDir%

set LauncherPath=%UnrealLauncherDir%Engine\Binaries\Win64\UnrealVersionSelector.exe

echo.
echo Adding registry keys for the Unreal Project right click menu...

:: HKLM\SOFTWARE\Classes\.uproject
reg ADD "HKLM\Software\Classes\.uproject" /ve /d Unreal.ProjectFile /f
IF ERRORLEVEL 1 (
echo Couldn't write to registry. Did you forget to run this batch file as an administrator?
goto TheEnd
)

:: HKLM\SOFTWARE\Classes\Unreal.ProjectFile
reg ADD "HKLM\Software\Classes\Unreal.ProjectFile" /ve /d "Unreal Engine Project File" /f

:: HKLM\SOFTWARE\Classes\Unreal.ProjectFile\DefaultIcon
reg ADD "HKLM\Software\Classes\Unreal.ProjectFile\DefaultIcon" /ve /d "\"%LauncherPath%\"" /f

:: HKLM\SOFTWARE\Classes\Unreal.ProjectFile\shell\open
reg ADD "HKLM\Software\Classes\Unreal.ProjectFile\shell\open" /ve /d "Open" /f
reg ADD "HKLM\Software\Classes\Unreal.ProjectFile\shell\open\command" /ve /d "\"%LauncherPath%\" /editor \"%%1\"" /f

:: HKLM\SOFTWARE\Classes\Unreal.ProjectFile\shell\run
reg ADD "HKLM\Software\Classes\Unreal.ProjectFile\shell\run" /ve /d "Launch game" /f
reg ADD "HKLM\Software\Classes\Unreal.ProjectFile\shell\run" /v Icon /t REG_SZ /d "\"%LauncherPath%\"" /f
reg ADD "HKLM\Software\Classes\Unreal.ProjectFile\shell\run\command" /ve /d "\"%LauncherPath%\" /game \"%%1\"" /f

:: HKLM\SOFTWARE\Classes\Unreal.ProjectFile\shell\rungenproj
reg ADD "HKLM\Software\Classes\Unreal.ProjectFile\shell\rungenproj" /ve /d "Generate Visual Studio project files" /f
reg ADD "HKLM\Software\Classes\Unreal.ProjectFile\shell\rungenproj" /v Icon /t REG_SZ /d "\"%LauncherPath%\"" /f
reg ADD "HKLM\Software\Classes\Unreal.ProjectFile\shell\rungenproj\command" /ve /d "\"%LauncherPath%\" /projectfiles \"%%1\"" /f

:: HKLM\SOFTWARE\Classes\Unreal.ProjectFile\shell\switchversion
reg ADD "HKLM\Software\Classes\Unreal.ProjectFile\shell\switchversion" /ve /d "Switch Unreal Engine version..." /f
reg ADD "HKLM\Software\Classes\Unreal.ProjectFile\shell\switchversion" /v Icon /t REG_SZ /d "\"%LauncherPath%\"" /f
reg ADD "HKLM\Software\Classes\Unreal.ProjectFile\shell\switchversion\command" /ve /d "\"%LauncherPath%\" /switchversion \"%%1\"" /f

:Done
echo.
echo Done.
echo.
goto TheEnd

:CannotFindUnrealEngine
echo.
echo DOH! Can't find the Unreal Engine.
echo.
goto TheEnd

:TheEnd
pause

用法

将文件保存为UnrealProjectMenuRegistration.cmd到Epic Game根目录下(Epic Games\Launcher\UnrealProjectMenuRegistration.cmd)
右键点击以管理员的身份运行。如果有杀软拦截请选择允许
完成后尝试重启电脑/重启Epic Games Launcher完成关联操作

Unreal学习笔记 - 综合

材质

通过绘制顶点贴图来让一个材质混合两种贴图

用于地面水潭。墙上青苔等等

在材质中获取顶点颜色vertex color 。选中RBGA任意一数值将两种贴图(漫反射,法线,高光贴图)以插值的方式混合起来。连接到对应输出

然后在unreal编辑器中用画笔工具进行绘制(注意选择的颜色通道)

蓝图

蓝图是通过调用Unreal预先写好的API与基本C++语法以及内置标准宏指令将图形编译成c++语言的一种方式。简单易懂,不需要考虑复杂的内存操作而使得程序员能够专注于逻辑上的操作。
缺点:有些时候复杂的逻辑可能会导致蓝图的线路布的一团糟,减少可读性

骨骼

动作

免费资源

mixamo上可以下载到很多丰富的游戏动作与角色资源。更重要的是。这些资源都是免费的!你只需要申请一个免费的Adobe账号就能拥有它。

使用blender+ridigy导出动画

非常重要!
https://www.youtube.com/watch?v=jiXwDxCZtOc
解决Blender与Unreal接合时的很多奇怪的问题

动画偏移

动画偏移即在一个pose中根据一些参数混合多个pose。可以实现如角色转头。枪指向的目标和玩家想要指向的一致。一样的效果。

混合空间

动画蒙太奇

根骨骼运动

UMG

在原始stale UI架构上更新的一种UI方式。比之前的UI系统更为友好

网络

事件复制

Unreal 有三种RPC方式进行事件的网络调用

  • 多路传输:已在位置为服务器。向客户端执行该流程
  • 只在客户端运行:已在位置为服务器。向所属客户端执行该流程
  • 只在服务端运行:已在位置为客户端,想所属服务端执行该流程