游戏蓝图
假设你正在玩GTA5或Minecraft,我们将使用它们的例子来学习所有内容。
-
游戏设置(GameUserSettings):当你打开GTA5/Minecraft,并且你之前选择了最大帧率60时,当你退出游戏时,它仍然会被锁定在60FPS。游戏设置会保存游戏的.ini文件,这些.ini文件在游戏启动时会被执行,用于设置窗口模式、垂直同步和帧率限制等设置。在游戏选项菜单中,你可以允许玩家直接通过这个类来设置这些设置,UE会自动处理。可以通过游戏保存手动设置,但这并不合理。
-
游戏存档(GameSave):当你完成GTA的任务或在Minecraft中找到宝石时,当你下次进入游戏时,它们仍然会存在。游戏存档允许你保存变量,以便下次加载游戏时可以使用。对于Minecraft世界的复制或GTA5的存档槽,有一个称为槽名的输入来保存游戏。
-
游戏实例(GameInstance):当你在GTA中选择在线模式时,Rockstar不会打开故事模式,因为游戏实例的存在使得你可以在不同关卡之间传递变量。如果你不想保存某个变量,但又想保留它直到游戏结束时,你可以将其放在这里。游戏实例只在游戏周期内存在,过后其变量会恢复默认值。
-
关卡(Level):在GTA 5中,有两个主要关卡,一是主菜单,一是城市。在Minecraft中,并没有不同的关卡,仅有一个世界关卡,通过保存游戏的变量来使其看起来像你离开的游戏。关卡很难解释,但当你进展到一定程度时,你会知道它是什么。
-
动画序列(Animation Sequences):这些通过序列器和时间线窗口创建。这些是GTA游戏中的剪辑片段。
-
游戏模式(GameMode):这个告诉关卡,当玩家点击“开始游戏”时,使用哪个角色、哪个控制器、哪个HUD类(UI)等。它通过世界设置选项卡来设置。
-
玩家控制器(PlayerController):在超级英雄游戏中,你可以成为铁人和蜘蛛人。玩家控制器定义了共有的内容,通常我们会在关卡中使用鼠标输入来查看周围的环境。除了这些,我们还会放置暂停菜单、道具箱(如果两个角色共享相同的道具箱)和显示鼠标光标或隐藏它以便于在UI或游戏中导航。在多人游戏中,每个玩家只有一个控制器,在合作游戏中,每个物理玩家都有一个控制器。在一个真实的人类玩家玩一个关卡时,也只有一个PlayerController。
-
Pawn/角色(Pawn/Character):关卡可以通过Pawn或角色来控制,角色是Pawn的子蓝图,具有更多模块,如运动。我们为铁人和蜘蛛人设计了两个不同的角色,因为它们有不同的游戏玩法。GTA的迈克尔弗兰金和特拉沃尔都是同一个角色蓝图的子角色。这一行你可能还不能理解,如果你是UE5的新手。但是,GTA5中的所有三个角色都可以行走、开车、射击,创建三个不同的角色类将是一种浪费时间和内存的做法。相反,我们创建了一个主角色,可以行走、射击、说话、开车,并将其子角色作为一个蓝图,给它们不同的身体(骨骼网格)、不同的声音和不同的超能力(如时间减慢等)。
-
HUD类(HUD class):我不使用它,它基本上允许你构建地图、枪支切换和游戏中看到的主HUD。我们通常会使用角色和控制器类来实现。
-
游戏状态(GameState):在在线游戏中,你会看到一些变量是所有玩家共有的,如PUBG/FORTNITE中的玩家存活人数。这里,我们放置了所有全局规则的逻辑,如PUBG中的新状态,你可以将被击倒的敌人变成队友,这些逻辑都依赖于这里的状态。所有队伍的逻辑也在这里。
-
玩家状态(PlayerState):最简单的解释是,如果你在Minecraft中关闭了道具箱,当你死亡时,道具会掉落到世界中。如果你打开了道具箱,那么道具会在游戏存档中保存。尽管在真正的Minecraft中,无论如何都会保存道具。在玩家状态中,你放置了你希望在玩家死亡时设置为默认值的变量。
-
观察者类(Spectator Class):在Fornite和PUBG中,当你等待复活时,你可以自由地在世界中徘徊,没有碰撞、没有任何限制,只有飞行的摄像机和控制器。你可以放置逻辑,如观察者类不应该看到或听到除了他的队友之外的任何人,因为如果他可以通过飞行告诉队友敌人的位置。
评论 (0)