索尼:VR产品有着不同舒适度阈值的玩家反馈是关键
2898
VR 2019-11-06 00:07:18 字数:2116

索尼伦敦工作室一直以来都是主要负责探索和制作PSVR体验。在日前举行的XRDC大会中,索尼伦敦工作室的VR产品开发总监斯图亚特·怀特(Stuart Whyte)向我们分享了他们所积累的经验教训。


索尼:VR产品有着不同舒适度阈值的玩家反馈是关键


怀特讲起了《Blood & Truth》的开始。站长资源平台当时PSVR头显的研发尚未完成,而工作室设计了数款与头显捆绑的VR体验合集《PlayStation VR Worlds》。在PSVR上市后,工作室发现里面的《London Heist》是最成功的作品。

怀特说道:“很明显,比其他更受欢迎的作品是《London Heist》。我们希望在这一基础上进行扩展,并创造一种令你感觉自己成为了动作英雄的体验。”

团队为《Blood & Truth》的开发制定了数条支柱。除了强调“动作英雄”美学外,他们优先考虑了亲民度,支持就座式游戏,兼容DualShock手柄或Move控制器。

怀特指出:“我们知道我们的游戏玩起来会相当费劲,所以我们围绕就座式游戏进行了优化。”所以,他们需要思考如何相应地构建出有趣的射击体验和其他动作电影元素。

团队尝试了几种不同的移动机制,最后放弃了常见的“点和传送”方法,而是选择了一种更加自然的移动系统:允许玩家从点到点进行走动(或奔跑)。

他补充说:“我们希望设计一款与环境相适应的游戏,而传送似乎不太适合。”所以他们设计了一种遍历系统,玩家可以瞄准一个目标点,并致使角色行进到所述位置。目标越远,玩家移动速度越快。”

1. “有着不同舒适度阈值的玩家的反馈是关键。”

怀特解释说:“无论你选择什么系统,重要的是让尽可能多的人尝试。有着不同舒适度阈值的玩家的反馈是关键。”

怀特演讲的一个关键主题是,尽早从测试者身上获取大量的反馈,因为对于新兴的虚拟现实媒介,行业对于如何设计出舒适亲民的VR体验知之甚少。

他说道:“最大的发现是设计语言。原本已经成形的大量游戏设计规则已经不适合VR,我们尚未制定像主机和PC游戏一样的标准化设计语言。”

举例来说,他谈到了乍看之下非常简单,但设计时却充满挑战的元素:库存系统。

怀特解释说:“《VR Worlds》没有库存的概念。”但对于《Blood & Truth》中,团队希望尝试创造一种允许玩家直观切换武器和重新装载武器的库存系统额。他们最终采用了众多VR开发者尝试的解决方案:附接在(虚拟)身体之上,而你可以将手伸到后背或臀部来取出武器。然而,开发过程并非一帆风顺。

怀特说道:“当玩家探身,比如靠在桌面,然后低头抓取诸如枪夹之类的物品,这时你将会感到十分痛苦。你不知道玩家想拿什么,而如果他们在战斗中尝试抓取某个物品但最终失败时,这将会打破沉浸感。”

由于PSVR仅追踪玩家的头部和手部,所以团队必须花费大量时间来尝试构建支持玩家运动的系统。最终,挑战过于巨大,以至于他们几乎放弃了要求玩家重新装弹的要求。

怀特表示:“我们最终进行了大量的实验,并一度对系统和方法失去了信心。我们非常接近提供通过Move控制器按钮进行重新装填的快捷方式;但我们在游戏发行前几周删除了这一功能,因为装填子弹的物理性对于我们尝试为玩家提供的体验至关重要。”

团队同时在弹药管理方面遇到了困难。即使重新装弹的效果出色,但在激战中寻找备用弹夹或多余弹药会十分棘手:弹药太少,你将难以享受其中的乐趣;弹药太多,挑战性就会大大降低。

怀特表示:“我们知道搜索环境并寻找弹药十分有趣,而我们希望超级慷慨…因为子弹用完可不好玩。”但从技术上讲,你总是有可能会耗尽弹药。当出现这种情况时,由于移动系统的限制,你很难回溯和继续探索游戏的关卡。

他继续说道:“我们尝试(增加)投掷匕首,但体验不够好。我们提供了备用手枪,但这令许多玩家感到困惑。两种解决方案的效果都不够好。”

最后,团队决定简化体验,并为玩家的基础手枪提供无线弹药,只是为突击步枪和猎枪等武器制定弹药限制。这能够帮助玩家实现在游戏战斗强度波峰和波谷之间实现流畅的过渡,无需过分担心弹药问题。

怀特指出:“游戏总是包含波峰和波谷,从而确保玩家不会感到疲惫。你必须确保合适的节奏,不能一直都是高强度战斗。”

2. 维持好游戏的节奏,确保波峰和波谷的存在

《Blood & Truth》团队为关卡投注了大量精力来为特定关卡制定节奏,细分了强度波峰和波谷的位置。为了为帮助充实世界,增强“动作英雄”主题,并为波峰和波谷之间的区域添加更多纹理,他们频繁进行头脑风暴,并添加了“有趣”的系统和机制。

怀特指出:“我记得我们添加的第一个元素是能够用牙齿拉动榴弹针。然后,我们添加了枪法技巧,因为它们很酷。然后,我们添加了手势。”

他说:“所述的设计决定都是团队投入大量时间和精力后所得出的结果。最终,所有这一切都有助于将玩家沉浸在世界之中,并强化了动作英雄的感觉。”

除了把握节奏,团队同时在故事板勾勒出具体的情节和动作场景,而怀特再次强调通过头显进行测试的重要性。

他指出:“实际上,对于某些动作场景,我们发现将故事板放到头显中非常有用。我们团队及相关工具都是为了通过头显进行测试,而越早让团队中的所有成员通过头显进行体验越好。它确实有助于为你提供游戏的感觉。”


0人参与回答
  • 未添加任何数据~~


提示信息

联系电话:
1585150508*
QQ交谈:
小编
站长微信:
站长邮箱: service@qingjiuzhubei.com
966.46msRequest Duration2MBMemory UsageGET zixun/detail/{id?}.htmlRouteAuth status
    • Booting (19.87ms)
    • Application (956.26ms)
      6 templates were rendered
      • site.zixun.detail (resources/views/site/zixun/detail.blade.php)8blade
        Params
        0
        prevArticle
        1
        nextArticle
        2
        newDetail
        3
        comment
        4
        hotnews
        5
        t
        6
        d
        7
        k
      • layouts.site.layout (resources/views/layouts/site/layout.blade.php)18blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        device
        4
        isMobile
        5
        errors
        6
        prevArticle
        7
        nextArticle
        8
        newDetail
        9
        comment
        10
        hotnews
        11
        t
        12
        d
        13
        k
        14
        __empty_1
        15
        __currentLoopData
        16
        loop
        17
        hotnewsVal
      • layouts.site.top (resources/views/layouts/site/top.blade.php)18blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        device
        4
        isMobile
        5
        errors
        6
        prevArticle
        7
        nextArticle
        8
        newDetail
        9
        comment
        10
        hotnews
        11
        t
        12
        d
        13
        k
        14
        __empty_1
        15
        __currentLoopData
        16
        loop
        17
        hotnewsVal
      • layouts.site.bottom (resources/views/layouts/site/bottom.blade.php)18blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        device
        4
        isMobile
        5
        errors
        6
        prevArticle
        7
        nextArticle
        8
        newDetail
        9
        comment
        10
        hotnews
        11
        t
        12
        d
        13
        k
        14
        __empty_1
        15
        __currentLoopData
        16
        loop
        17
        hotnewsVal
      • common.upgrade_vip (resources/views/common/upgrade_vip.blade.php)18blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        device
        4
        isMobile
        5
        errors
        6
        prevArticle
        7
        nextArticle
        8
        newDetail
        9
        comment
        10
        hotnews
        11
        t
        12
        d
        13
        k
        14
        __empty_1
        15
        __currentLoopData
        16
        loop
        17
        hotnewsVal
      • kefu.kefu (resources/views/kefu/kefu.blade.php)18blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        device
        4
        isMobile
        5
        errors
        6
        prevArticle
        7
        nextArticle
        8
        newDetail
        9
        comment
        10
        hotnews
        11
        t
        12
        d
        13
        k
        14
        __empty_1
        15
        __currentLoopData
        16
        loop
        17
        hotnewsVal
      uri
      GET zixun/detail/{id?}.html
      middleware
      web
      controller
      App\Http\Controllers\Site\ZixunController@detail
      namespace
      App\Http\Controllers
      prefix
      /zixun
      where
      as
      zixunDetail
      file
      app/Http/Controllers/Site/ZixunController.php:105-132
      7 statements were executed930.84ms
      • select * from `news` where `news`.`id` = '63416' and `news`.`deleted_at` is null limit 117.22ms/app/Http/Controllers/Site/ZixunController.php:109zzshuju
        Metadata
        Bindings
        • 0. 63416
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 14. /app/Http/Controllers/Site/ZixunController.php:109
        • 22. /vendor/silber/page-cache/src/Middleware/CacheResponse.php:38
        • 56. /public/index.php:53
      • select * from `new_cates` where `new_cates`.`id` in ('48') and `new_cates`.`deleted_at` is null3.24ms/app/Http/Controllers/Site/ZixunController.php:109zzshuju
        Metadata
        Bindings
        • 0. 48
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 19. /app/Http/Controllers/Site/ZixunController.php:109
        • 27. /vendor/silber/page-cache/src/Middleware/CacheResponse.php:38
        • 61. /public/index.php:53
      • select * from `news` where `news`.`deleted_at` is null order by `browse` desc limit 10821.32ms/app/Http/Controllers/Site/ZixunController.php:110zzshuju
        Metadata
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 12. /app/Http/Controllers/Site/ZixunController.php:110
        • 20. /vendor/silber/page-cache/src/Middleware/CacheResponse.php:38
        • 54. /public/index.php:53
      • update `news` set `browse` = `browse` + 1, `updated_at` = '2025-05-15 00:51:14' where `id` = '63416' and `news`.`deleted_at` is null6.77ms/app/Http/Model/News/News.php:170zzshuju
        Metadata
        Bindings
        • 0. 2025-05-15 00:51:14
        • 1. 63416
        Backtrace
        • 12. /app/Http/Model/News/News.php:170
        • 13. /app/Http/Controllers/Site/ZixunController.php:111
        • 21. /vendor/silber/page-cache/src/Middleware/CacheResponse.php:38
        • 55. /public/index.php:53
      • select * from `news` where `id` < '63416' and `newscate_id` = '48' and `news`.`deleted_at` is null order by `id` desc limit 177.8ms/app/Http/Controllers/Site/ZixunController.php:115zzshuju
        Metadata
        Bindings
        • 0. 63416
        • 1. 48
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 13. /app/Http/Controllers/Site/ZixunController.php:115
        • 21. /vendor/silber/page-cache/src/Middleware/CacheResponse.php:38
        • 55. /public/index.php:53
      • select * from `news` where `id` > '63416' and `newscate_id` = '48' and `news`.`deleted_at` is null order by `id` asc limit 12.56ms/app/Http/Controllers/Site/ZixunController.php:116zzshuju
        Metadata
        Bindings
        • 0. 63416
        • 1. 48
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 13. /app/Http/Controllers/Site/ZixunController.php:116
        • 21. /vendor/silber/page-cache/src/Middleware/CacheResponse.php:38
        • 55. /public/index.php:53
      • select * from `comments` where `news_id` = '63416'1.93ms/app/Http/Controllers/Site/ZixunController.php:117zzshuju
        Metadata
        Bindings
        • 0. 63416
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 12. /app/Http/Controllers/Site/ZixunController.php:117
        • 20. /vendor/silber/page-cache/src/Middleware/CacheResponse.php:38
        • 54. /public/index.php:53
        web
        array:2 [ "name" => "Guest" "user" => array:1 [ "guest" => true ] ]
        api
        array:2 [ "name" => "Guest" "user" => array:1 [ "guest" => true ] ]
          _token
          vDe2hZUhQPnn0TpQFfGlpHxDcLpgJMo4eQXbsCTq
          _previous
          array:1 [ "url" => "http://data.winndoo.cn/zixun/detail/63416.html" ]
          PHPDEBUGBAR_STACK_DATA
          []
          format
          html
          content_type
          text/html; charset=UTF-8
          status_text
          OK
          status_code
          200
          request_query
          []
          request_request
          []
          request_headers
          array:10 [ "accept-encoding" => array:1 [ 0 => "gzip, deflate" ] "accept" => array:1 [ ...
          request_server
          array:33 [ "USER" => "apache" "HOME" => "/usr/share/httpd" "HTTP_ACCEPT_ENCODING" => "gzip, de...
          request_cookies
          []
          response_headers
          array:5 [ "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ ...
          path_info
          /zixun/detail/63416.html
          session_attributes
          array:3 [ "_token" => "vDe2hZUhQPnn0TpQFfGlpHxDcLpgJMo4eQXbsCTq" "_previous" => array:1 [ "u...