Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • CreatiCode
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

CreatiCode Scratch Forum

  1. CreatiCode Forum
  2. 知识库
  3. 三维积木
  4. 第一人称视角的摄像头

第一人称视角的摄像头

Scheduled Pinned Locked Moved 三维积木
1 Posts 1 Posters 1.6k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • CreatiCodeI Offline
    CreatiCodeI Offline
    CreatiCode
    wrote on last edited by admin
    #1

     

    预备知识

    • 追踪摄像头

     

    介绍

    许多 3D 游戏让玩家采用“第一人称视角”,就好像自己在虚拟世界中漫游一样。玩家可以使用鼠标控制观看世界的方向和角度。你可以在创益编程平台中轻松创建这样的体验。

     
     

    使用追踪摄像头的新方法

    要创建“第一人称视角“,你其实只需要使用追踪摄像头,但是采用一个新的用法。

    回顾一下,在使用追踪摄像头的时候,我们首先需要有一个目标物体(如化身或者赛车),然后添加追踪摄像头来跟随该目标。这是一个常见的例子:

    d916178a-1483-4f28-8f87-19b94a1ceaaf-image.png

     
    当运行这个程序时,玩家可以用鼠标转动摄像头从不同的角度观看这个化身,所以玩家感觉自己不是那个化身,而是跟在化身后面的傍观者。

     
    要想从化身自己的视角看这个世界, 最直接的方法就是把摄像头移动到化身眼睛的地方。为此,我们需要将摄像头和化身之间的距离更改为 0 或者一个很小的数值。此外,如果化身的身高是 100 个单位,我们可以假设它的眼睛距离地面大约 86 个单位,因此我们将“z 位移”设置为 86,让它保持在视线水平。

    6e04d723-65a2-41cf-b7a3-ed0f484cd150-image.png

     
    现在,如果我们再运行这段程序,我们的摄像头就出现在化身的头里面了,所以我们正好看到化身的眼睛的背面:

     

    当然,这时候化身的头挡住我们的摄像头,所以我们看不到其他任何东西。要解决这个问题,我们只需要把化身隐藏起来:

    c239f768-c9c5-4a5a-b3c3-45896d1e2f8c-image.png

     

    现在我们得到了一个完美的第一人称视角。当我们用鼠标转动摄像头时,我们不再看到化身,而是看它周围的场景。

     
     

    使用转换器,而不是物体

    除了化身或汽车之类的物体,你还可以选择使用“转换器”物体作为摄像头的追踪目标。由于转换器是不可见的,你不再需要隐藏它,而且它的加载速度比化身快得多。但是,你需要先将转换器移动到合适的高度。

    3952da02-027e-484b-ab95-372d33c31ee0-image.png

     
    你将获得与前一种方法相同的第一人称视角的效果。

     
     

    将鼠标指针锁定

    在上面的程序中,要转动相机,我们必须按下鼠标按钮并在舞台上拖动指针。但是,很多时候玩家需要用鼠标按钮做别的交互动作,如选择或者射击,所以我们需要一个别的方式来控制摄像头的方向。

    因此,我们可以“锁定鼠标指针”,让摄像头随着鼠标指针转动,而且玩家无需按下任何鼠标按钮。

    你可以使用以下积木来锁定或解锁鼠标指针。选择“是”来锁定,选择“否”来解锁。

    ae4f28fe-e46d-42b3-8662-caae68036db7-image.png

     
    例如,让我们将它添加到上面的程序中:

    66ac8274-1b8a-4aa7-99ad-20f3a06b7085-image.png

     
    现在,如果你单击绿色旗帜按钮运行程序,鼠标将被锁定:指针将被隐藏,摄像头将随着你移动鼠标而转动。请注意,你可以随时按键盘左上角的“ESC”键来解锁鼠标指针。之后,如果你单击舞台上的任意位置,鼠标将再次被锁定。

    mouse.gif

     
     

    使用“开始”按钮来触发鼠标指针锁定

    通常情况下,使用按钮控件来触发鼠标指针锁定对玩家更加友好。玩家可以选择何时进入锁定模式,而且当进入锁定模式时,鼠标指针的起始位置就是玩家点击按钮的位置(一般是舞台中央)。

    这是一个示例程序。单击“开始”按钮时,我们首先隐藏该按钮,然后锁定指针:

    0a785a0f-c5c6-4731-ba03-ab1ed69e5b75-image.png

     
    这样的话,鼠标指针只有在玩家点击开始后才会被锁定:

    mouse.gif

    1 Reply Last reply
    0
    • CreatiCodeI CreatiCode pinned this topic on

    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

    With your input, this post could be even better 💗

    Register Login
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • CreatiCode