Tạo đối tượng di chuyển

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Di chuyển đối tượng là đối tượng di chuyển trên một hoặc nhiều trục trong không gian 3D.Sử dụng sức mạnh tích hợp của động cơ mô phỏng của Roblox, bạn có thể làm cho các đối tượng di chuyển và tương tác với môi trường của chúng theo cách mô phỏng hành vi vật lý thực tế mà quen thuộc và dễ hiểu với người chơi, như trọng lực, khí động học và ma sát.

Sử dụng tập tin Di chuyển đối tượng.rbxl dùng làm tài liệu tham khảo, bài hướng dẫn này giải thích cách các lực vật lý ảnh hưởng đến chuyển động dọc trong Studio, và cho bạn biết các kỹ thuật khác nhau để di chuyển các đối tượng từ điểm A đến điểm B trong kinh nghiệm của bạn với hành vi di chuyển khác nhau, bao gồm hướng dẫn về:

  • Sử dụng một hạn chế LinearVelocity di chuyển để di chuyển toàn bộ lắp ráp với tốc độ liên tục không thay đổi.
  • Sử dụng một PrismaticConstraint để giới hạn một lắp ráp vào một trục duy nhất và di chuyển nó với tốc độ liên tục tương đối với một điểm trong không gian 3D.
  • Sử dụng phương pháp ApplyImpulse để di chuyển một tập hợp với một động lực ban đầu của lực để tập hợp dần dần giảm tốc theo thời gian.

Chuyển động song song và lực vật lý

Roblox Studio là một động cơ mô phỏng thế giới thực mô phỏng hành vi vật lý trong thời gian thực, vì vậy để dự đoán cách các đối tượng di chuyển theo chiều hướng có thể hành động trong trải nghiệm, thì quan trọng là phải có sự hiểu biết cấp cao về cách các đối tượng di chuyển theo chiều hướng trong cuộc sống thực với chuyển động trực tiếp. Chuyển động dọc trục là chuyển động dọc theo một trục. Ví dụ, khi một khối có chuyển động dọc trục, nó di chuyển dọc theo một trục được xác định.

A gray block in front of a dark background. The movement axis is highlighted, and it faces toward the left of the screen to signify that the block is going to move along the world's Y axis.

Chuyển động dọc không thể tồn tại mà không có lực lượng ngoại vi, vật lý đẩy hoặc kéo các đối tượng để di chuyển.Theo luật di chuyển đầu tiên của Newton , các đối tượng cố định vẫn cố định và các đối tượng di chuyển vẫn di chuyển với tốc độ không đổi trừ khi chúng bị tác động bởi một lực ngoại vi.Ví dụ, một khối cố định vẫn còn cố định trừ khi một lực vật lý như gió đẩy nó di chuyển.

Lực là thước đo hướng và độ lớn của một lực đẩy hoặc kéo vật lý gây ra sự thay đổi tốc độ dọc trục của các đối tượng.Một thay đổi về tốc độ được gọi là tăng tốc .Khái niệm này rất quan trọng đối với các đối tượng di chuyển trong Studio; càng áp dụng nhiều lực lên các đối tượng, chúng càng tăng tốc nhanh hơn.

Điều này là do lực cần phải lớn hơn bất kỳ lực vật lý nào đẩy lùi vào đối tượng, chẳng hạn như trọng lực hoặc ma sát.Ví dụ, nếu bạn đặt khối trên tấm kim loại, lực vật lý của gió cần vượt qua lượng ma sát từ tấm kim loại để tiếp tục tăng tốc khối.Nếu lực gió không lớn hơn nhiều so với ma sát từ tấm kim loại, khối tăng tốc, chỉ chậm hơn ví dụ trước.

A gray block in front of a dark grey metal plate with a diagram that signifies the block will have a plate friction to slow the block's movement from the wind.

Tốc độ dọc là thước đo chuyển động của một đối tượng, hoặc tốc độ mà đối tượng thay đổi vị trí của nó theo một trục trong một khoảng thời gian.Studio đo tốc độ tuyến tính theo số lượng đinh tán mà một đối tượng di chuyển mỗi giây.Các stud là đơn vị vật lý chính của Roblox để đo chiều dài, và mỗi stud tương đương với khoảng 28cm trong thế giới thực.

A gray block in front of the default baseplate's 4x4 grid texture. A single stud cube rectangle is highlighted.

Hiểu vận tốc lineare là quan trọng đối với thiết kế trò chơi trong trải nghiệm của bạn bởi vì nó giúp bạn xác định bao nhiêu lực bạn cần để đạt được tốc độ cụ thể cho các vật thể di chuyển của bạn.Ví dụ, khi bạn muốn đẩy các đối tượng lên trên, thì quan trọng là phải xem xét cách bạn phải điều chỉnh lực để vượt qua trọng lực trong môi trường để các đối tượng di chuyển chính xác.

Các phần tiếp theo đi sâu hơn vào những khái niệm này khi bạn học cách di chuyển các đối tượng ở tốc độ liên tục hoặc ban đầu tuyến tính với lực cần thiết để vượt qua bất kỳ lực lượng chống đối nào bên trong môi trường.Khi bạn xem xét các khái niệm vật lý này với các kỹ thuật sắp tới, bạn có thể dự đoán chính xác hơn cách điều chỉnh giá trị tính chất để đạt được bất kỳ hành vi di chuyển tuyến tính lý tưởng nào trong Studio.

Giữ một tốc độ liên tục linear

Đối với một đối tượng để tiếp cận và duy trì tốc độ liên tục dọc, nó cần một lực để vượt qua bất kỳ lực lượng chống đối vật lý nào làm giảm tốc độ dọc của đối tượng hoặc khiến đối tượng đứng yên.Ví dụ, nếu bạn muốn một đối tượng có tốc độ tuyến tính là [0, 12, 0] trong Studio, bạn cần đủ lực để đối tượng đạt được và duy trì 12 đinh tán trên giây trên trục Y trong môi trường của nó.

Số lượng lực cần thiết không chỉ phụ thuộc vào lực lượng chống đối vật lý bên trong môi trường, chẳng hạn như trọng lực và ma sát, mà còn phụ thuộc vào chính đối tượng.Ví dụ, nếu bạn có hai đối tượng có cùng hình dạng đang di chuyển trên cùng một trục, đối tượng có lượng khối lượng lớn hơn yêu cầu nhiều lực hơn để đạt được tốc độ gia tốc tuyến tính tương tự.

Phần tam giác nhỏ có một lượng nhỏ khối lượng, vì vậy nó cần ít lực hơn để đạt được tốc độ tăng tương tự.
Phần tam giác lớn có một lượng lớn khối lượng, vì vậy nó cần thêm lực để đạt được tốc độ tăng tương tự.

Các phần tiếp theo sử dụng các tập hợp của các hình dạng và kích thước khác nhau để dạy bạn cách di chuyển toàn bộ đối tượng hoặc chỉ một phần đối tượng tại tốc độ liên tục.Khi bạn thử nghiệm với các giá trị tính chất khác nhau, bạn sẽ học cách ước tính số lượng lực tối đa bạn cần cho các lắp ráp trong kinh nghiệm của riêng bạn.

Sử dụng hạn chế Tốc độ song song

LinearVelocity các đối tượng là một loại hạn chế di chuyển mà áp dụng lực lên toàn bộ lắp ráp để duy trì tốc độ dòng chảy liên tục.Bằng cách không khóa vị trí của lắp ráp vào một trục trong quá trình di chuyển, lắp ráp có thể tự do xoay khi va chạm với các đối tượng khác trong không gian 3D.Loại di chuyển này dẫn đến các tình huống chơi bất ngờ khó để dự đoán hơn đối với người chơi.

Khi các đệm lily va chạm với nhau, chúng thay đổi hướng nhưng vẫn tiếp tục chảy xuống dòng sông với tốc độ liên tục.

Để bắt đầu di chuyển lắp ráp, yêu cầu LinearVelocity giới hạn cần biết:

  • Điểm và hướng tích cực hoặc tiêu cực để áp dụng một lực.
  • Số lượng khối bạn muốn lắp ráp di chuyển mỗi giây.
  • Số lực tối đa mà động cơ có thể áp dụng cho lắp ráp để đạt tốc độ dòng chảy liên tục.

Để minh họa quá trình này, bạn sẽ cấu hình một đệm lily với một phụ kiện mà một LinearVelocity yêu cầu ràng buộc để di chuyển đệm lily 15 đinh tán mỗi giây dọc theo trục X tiêu cực của thế giới với tốc độ tuyến tính không thay đổi.

A close up view of a lily pad. The lily pad's constraint visual aid is visible, and it points to the right, which is the world's negative X axis.

Thêm tệp đính kèm

Bạn có thể xác định điểm áp dụng lực bằng cách thêm một đối tượng Attachment vào lắp ráp, sau đó cấu hình vị trí của phụ kiện trong không gian 3D.Trải nghiệm Di chuyển đối tượng mẫu đặt một phụ kiện ở trung tâm của miếng đệm lily để giới hạn có thể di chuyển lưới từ phụ kiện theo một trục cụ thể.

Các tệp kèm theo bao gồm các công cụ hình ảnh để giúp bạn hình dung về trục di chuyển của chúng.Mũi tên vàng đại diện cho trục chính của phụ kiện, và mũi tên cam đại diện cho trục thứ cấp của phụ kiện.Trong khi không có trục di chuyển nào ảnh hưởng đến chuyển động của đệm lily trong các bước của kỹ thuật này, nó là quan trọng để hiểu những trợ giúp hình ảnh này cho tham khảo trong tương lai bởi vì chúng có thể giúp bạn xác định hành vi lý tưởng cho các loại hạn chế khác nhau, chẳng hạn như PrismaticConstraint trong kỹ thuật tiếp theo.

A attachment's visual aid arrows. The yellow arrow that signifies the attachment's primary axis points up, and the orange arrow that signifies the attachment's secondary axis points to the right.

Để thêm một tệp đính kèm:

  1. Trong cửa sổ Explorer , mở rộng thư mục LinearVelocityExample , sau đó mở rộng mô hình con của nó LilyPad_DIY .

  2. Thêm một tệp đính kèm vào lưới Pad .

    1. Di chuột qua lưới và nhấp vào nút ⊕. Một menu ngữ cảnh hiển thị.
    2. Từ menu, chèn Phụ lục . Phụ lục hiển thị ở giữa phần.
    3. Đổi tên phụ lục thành MoveAttachment .
    A close up view of a lily pad and its attachment visual aid. The primary axis points away from the camera, and the secondary axis points upward.

Tùy chỉnh hạn chế

Bây giờ khi lưới của bạn có điểm cố định để di chuyển đệm lily, bạn có thể cấu hình các thuộc tính của một LinearVelocity giới hạn để xác định hướng và tốc độ tuyến tính cố định cho tốc độ tuyến tính liên tục, số lượng đinh tán bạn muốn lưới di chuyển mỗi giây và số lượng lực tối đa mà động cơ có thể áp dụng cho lưới để đạt được tốc độ tuyến tính liên tục.

Trải nghiệm Di chuyển đối tượng mẫu áp dụng tối đa 5000 Rowtons lực liên tục để di chuyển miếng đệm lily 15 đinh tán mỗi giây dọc theo trục X tiêu cực của thế giới với tốc độ liên tục không đổi.Rowtons là đơn vị vật lý chính của Roblox để đo lực.Để tham chiếu các đơn vị vật lý của Roblox và cách chúng chuyển đổi thành đơn vị mét, xem Đơn vị Roblox.

Để cấu hình một LinearVelocity

  1. (Opcional) Làm cho hạn chế hiển thị trong không gian 3D để bạn có thể tham chiếu hướng tuyến tính của nó.

    1. Di chuyển đến tab Mô hình của thanh công cụ, sau đó là phần Giới hạn .
    2. Nếu nó hiện không được bật, hãy nhấp vào Chi tiết hạn chế để hiển thị các trợ giúp hình ảnh hạn chế.
    A close up view of the Studio's Constraints section UI.
  2. Thêm một LinearVelocity hạn chế vào lưới Pad .

    1. Trong cửa sổ Explorer , di chuột qua lưới, sau đó nhấp vào biểu tượng ⊕. Một menu bối cảnh hiển thị.
    2. Từ menu ngữ cảnh, chèn Tốc độ Linear .
  3. Gán phụ kiện của khối lưới vào hạn chế mới.

    1. Trong cửa sổ Khám phá , chọn hạn chế.
    2. Trong cửa sổ Tính năng ,
      1. Thiết lập Attachment0 đến MoveAttachment .
      2. Thiết lập MaxForce đến 5000 để áp dụng tối đa 5000 Rowtons lực liên tục để đạt được tốc độ song song mục tiêu.
      3. Giữ RelativeTo đến Thế giới để di chuyển miếng đệm hồng lan về vị trí và hướng của thế giới.
      4. Đặt Giới hạn tốc độ đến Dòng để giới hạn lực dọc theo một dòng từ phần kèm theo.
      5. Chỉnh Hướng dòng thành -1, 0, 0 để di chuyển miếng đệm lily dọc theo trục X tiêu cực của thế giới.Lưu ý rằng nếu bạn đặt thuộc tính này thành 1, 0, 0 thì đệm lily sẽ di chuyển dọc theo trục X tích cực của thế giới.
      6. Chỉnh LineVelocity thành 15 để di chuyển miếng đệm lily 15 đinh tán mỗi giây.
    A close up view of a lily pad and its constraint visual aid arrow that points to the right, or the world's negative X axis.
  4. Xác minh lượng lực bạn đặt di chuyển khối lưới 15 đinh tán trên giây theo trục X tiêu cực của thế giới.

    1. Trong thanh công cụ, di chuyển đến tab Thử nghiệm .
    2. Chọn Chạy từ các chế độ thử nghiệm. Studio mô phỏng trải nghiệm tại vị trí máy ảnh hiện tại mà không có avatar của bạn trong không gian 3D.
    Rapid playtest options in Studio.

Sử dụng các hạn chế PrismaticConstraint

PrismaticConstraint các đối tượng là một loại hạn chế cơ học tạo ra một khớp nối cứng giữa hai phụ kiện, cho phép các tập hợp cha của chúng di chuyển theo một trục so với nhau .Bằng cách khóa vị trí của cả hai lắp ráp vào một trục duy nhất, mỗi lắp ráp chỉ có thể xoay nếu chúng xoay cùng theo cùng một hướng.

Loại di chuyển này dẫn đến các tình huống chơi ổn định dễ dàng hơn cho người chơi dự đoán.Ví dụ, trải nghiệm Di chuyển đối tượng mẫu sử dụng PrismaticConstraint để di chuyển các nền tảng ghi nhật khẩu mà người chơi có thể sử dụng để cẩn thận vượt qua một con sông khổng lồ.

Khi bạn đặt PrismaticConstraint.ActuatorType đến Động cơ , giới hạn này áp dụng lực lên hai phụ kiện với mục tiêu các phụ kiện tiếp cận và duy trì tốc độ liên tục.Nếu bạn neo một trong những tập tin đính kèm của cha của các tập tin đính kèm, lực tiếp tục di chuyển tập tin đính kèm chưa neo với tốc độ liên tục không thay đổi trong khi tập tin đính kèm neo vẫn đứng yên.

Để bắt đầu di chuyển lắp ráp, yêu cầu PrismaticConstraint giới hạn cần biết:

  • Điểm và hướng tích cực hoặc tiêu cực để áp dụng một lực.
  • Số lượng stud bạn muốn các phụ kiện di chuyển mỗi giây.
  • Số lực tối đa mà động cơ có thể áp dụng cho các phụ kiện và tập hợp cha của chúng để đạt được tốc độ dòng chảy liên tục.

Để minh họa quá trình này, bạn sẽ cấu hình một lắp ráp nhật ký với hai đối tượng có các đính kèm con có tham chiếu PrismaticConstraint để di chuyển nhật ký 40 đinh tán mỗi giây dọc theo trục X tiêu cực của thế giới với tốc độ tuyến tính cố định.

A close up view of a brown log on top of a river. The log's constraint visual aid is visible and points to the right, or the world's negative X axis.

Tùy chỉnh phụ kiện

Bạn có thể xác định hướng di chuyển một đối tượng cụ thể trong một tập hợp bằng cách thêm hai đối tượng Attachment vào tập hợp, sau đó cấu hình sự sắp xếp và hướng của chúng trong không gian 3D.Trải nghiệm Di chuyển đối tượng mẫu phù hợp với hai phụ kiện dọc theo trục X của thế giới gần vị trí mà đăng nhập không neo chồng lấp với phần neo cố định, và chỉnh hướng trục chính của mỗi phụ kiện đối mặt với trục X tiêu cực của thế giới.

Khi bạn cấu hình giới hạn PrismaticConstraint của bạn trong phần tiếp theo, nó sẽ di chuyển đăng nhập theo mối quan hệ đến phần neo.Nói cách khác, nhật ký sẽ di chuyển khỏi phần cố định không thể di chuyển vì nó được neo trong không gian 3D.

Để cấu hình các phụ kiện cho hạn chế lăng trụ:

  1. Trong cửa sổ Explorer , mở rộng thư mục PrismaticConstraintExample , sau đó mở rộng mô hình con Log_DIY của nó.

  2. Thêm một tệp đính kèm vào mesh Nhật ký .

    1. Di chuột qua lưới và nhấp vào nút ⊕. Một menu ngữ cảnh hiển thị.
    2. Từ menu, chèn Phụ lục . Phụ lục hiển thị ở giữa phần.
    3. Đổi tên phụ lục thành LogAttachment .
    A close up view of a log and its attachment visual aid. The primary axis points toward the camera, and the secondary axis points upward.
  3. Sử dụng quá trình tương tự, chèn một tệp vào phần Neo , sau đó đổi tên tệp NeoAttachment .

    A close up view of a log and two attachment visual aids. The primary axis of the new attachment visual aid points to the right, and the secondary axis points upward.
  4. Sử dụng công cụ View Selector như một tham chiếu cho phương trình phối hợp của thế giới, xoay LogAttachmentAnchorAttachment cho đến khi mỗi trục chính của mỗi phụ kiện đối mặt với trục X âm của thế giới

    A close up view of a log and its attachment visual aid. Both attachments have a primary axis that points to the right, and a secondary axis that points upward.
  5. Chuyển vị trí Phụ kiện neo để cả hai phụ kiện được căn chỉnh trên trục X của thế giới.

    A close up view of a log and its attachment visual aids that are now positioned horizontally. Both attachments have a primary axis that points to the right, and a secondary axis that points upward.

Tùy chỉnh hạn chế

Bây giờ các tài liệu gắn kết của bạn được xếp theo trục tương tự và hướng tới cùng một hướng bạn muốn log di chuyển, bạn có thể thiết lập các thuộc tính của một PrismaticConstraint giới hạn để xác định xem có nên áp dụng tốc độ dòng chảy mục tiêu cố định trong chiều tích cực hoặc tiêu cực của mỗi chiều trục chính của các tài liệu gắn kết, số lượng đinh tán bạn muốn các tài liệu gắn kết di chuyển mỗi giây và số lượng tối đa lực mà động cơ có thể áp dụng cho log để đạt được tốc độ dòng chảy cố định.

Trong khi bạn có thể chọn các giá trị khác nhau cho các trường hợp sử dụng của riêng mình, kinh nghiệm Di chuyển đối tượng mẫu áp dụng tối đa 50000 Rowtons lực liên tục để di chuyển các phụ kiện 40 radians mỗi giây dọc theo trục X tiêu cực của thế giới với tốc độ liên tục không đổi.Tuy nhiên, vì phần kết nối neo nằm trong một đối tượng neo, chỉ phần kết nối của nhật ký có thể di chuyển.

Để cấu hình một hạn chế lăng trụ:

  1. Chèn một đối tượng PrismaticConstraint vào lưới Log .

    1. Trong cửa sổ Explorer , di chuột qua lưới, sau đó nhấp vào biểu tượng ⊕. Một menu bối cảnh hiển thị.
    2. Từ menu ngữ cảnh, hãy chèn PrismaticConstraint .
  2. Gán các phụ lục của nhật ký vào hạn chế mới để nhật ký di chuyển trong mối quan hệ với phần khối neo.

    1. Trong cửa sổ Khám phá , chọn hạn chế.
    2. Trong cửa sổ Tính năng ,
      1. Thiết lập Phụ lục 0 đến AnchorAttachment .
      2. Thiết lập Phụ lục 1 đến LogAttachment . Giới hạn hiển thị trong cửa sổ xem.
    A close up view of a log and its constraint visual aid. It doesn't have a arrow visual aid because it doesn't yet have a set velocity.
  3. Trong cửa sổ Explorer , chọn hạn chế, sau đó trong cửa sổ Thuộc tính,

    1. Đặt Loại Bộ Nạp thành Động cơ . Các trường tính năng mới hiển thị.
    2. Đặt MotorMaxForce đến 50000 để áp dụng tối đa 50000 Rowtons lực cố định để đạt được tốc độ song song mục tiêu.
    3. Chỉnh Tốc độ thành 40 để di chuyển 40 đinh tán mỗi giây.
    A close up view of a log and its constraint visual aid arrow that points to the right, or the world's negative X axis.
  4. Xác minh lượng lực bạn đặt di chuyển ghi nhật ký 40 đinh tán trên giây theo trục X tiêu cực của thế giới.

    1. Trong thanh công cụ, di chuyển đến tab Thử nghiệm .
    2. Chọn Chạy từ các chế độ thử nghiệm. Studio mô phỏng trải nghiệm tại vị trí máy ảnh hiện tại mà không có avatar của bạn trong không gian 3D.
    Rapid playtest options in Studio.

Áp dụng một lực liên tục ban đầu

Một cách khác để thay đổi tốc độ song song của một đối tượng là bằng cách áp dụng một động lực đẩy.Sau động lực của lực, đối tượng hoặc giảm tốc cho đến khi trở thành cố định nếu có một lực chống lại như ma sát, hoặc vẫn tiếp tục di chuyển với tốc độ liên tục nếu không có bất kỳ lực chống lại nào.

Kỹ thuật này hữu ích để di chuyển các đối tượng sau một sự kiện chơi lớn, chẳng hạn như một vụ nổ hoặc va chạm đáng chú ý, bởi vì nó cung cấp phản hồi ngay lập tức cho người chơi.Để minh họa, phần tiếp theo dưới đây dạy bạn cách khởi chạy nhân vật của người chơi lên trên không khi chúng va chạm với bệ nhảy với động lực ban đầu mà bạn có thể thích ứng với các giá trị mới để đáp ứng các yêu cầu chơi game của riêng bạn.

Sử dụng ApplyImpulse

Phương pháp ApplyImpulse áp dụng lực lên toàn bộ lắp ráp để có được tốc độ song song ban đầu trước khi chậm lại khi có lực chống lại.Để bắt đầu di chuyển lắp ráp, phương thức cần biết:

  • Bộ lắp để di chuyển.
  • Trục để áp dụng lực để đạt được tốc độ dòng chảy ban đầu.
  • Số lượng lực để áp dụng cho mỗi trục.

Bạn có thể xác định tất cả các giá trị này trong một kịch bản.Ví dụ, kịch bản mẫu xác định lắp ráp di chuyển như đối tượng của nhân vật người chơi Humanoid, sau đó áp dụng một động lực lực là 2500 Rowton-giây để khởi động người chơi lên trên trục dương của thế giới.Lưu ý rằng các nhân vật người chơi có các số lượng khối khác nhau, vì vậy bạn có thể cần phải tăng và cân bằng lực này để khởi chạy mọi người chơi mà không khởi chạy các nhân vật người chơi với số lượng khối nhỏ hơn quá cao.

Để di chuyển một tập hợp bằng cách sử dụng ApplyImpulse :

  1. Trong cửa sổ Explorer , mở rộng thư mục ApplyImpulseExample , sau đó mở rộng mô hình con của nó JumpPad_DIY .

  2. Thêm một kịch bản vào phần JumpPad .

    1. Chuyển con trỏ qua phần và nhấp vào nút ⊕. Một menu ngữ cảnh hiển thị.
    2. Từ menu, chèn Tập lệnh . Phụ lục hiển thị ở giữa phần.
    3. Đổi tên kịch bản thành JumpScript .
  3. Thay thế mã mặc định bằng mã sau:


    local volume = script.Parent
    local function onTouched(other)
    local impulse = Vector3.new(0, 2500, 0)
    local character = other.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    if humanoid and other.Name == "LeftFoot" then
    other:ApplyImpulse(impulse)
    end
    end
    volume.Touched:Connect(onTouched)