Hareketli Nesneler Oluşturulması

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Hareketli nesneler , 3D alanındaki bir veya daha fazla eksen hareket ettiren nesnelerdir. Roblox'un simülasyon motorunun içindeki gücü kullanarak, nesneleri hareket ettirip etkileşim kurabilirsiniz nesneleri gerçek dünya fiziksel davranışının oyunculara tanıdık ve mantıksal olarak kullanıcılarını

Bu referans olarak Hareketli Nesneler.rbxl dosyasını kullanarak, bu öğretici Studio'da fiziksel güçlerin lineer hareketi üzerinde nasıl etkilediğini açıklar ve size farklı hareket davranışlarındaki nesneleri nokta A'dan nokta B'ye hareket etmenin çeşitli yöntemlerini gösterir, hướnglendirme dahil:

  • Bir Class.LinearVelocity mover kısıtlayıcısını kullanarak bir tüm montajı sabit bir hızda hareket ettirme.
  • Bir montajı tek bir eksen üzerinde sınırlamak ve 3D alanındaki bir noktaya kadar konvektör olarak hızlandırmak için bir PrismaticConstraint kullanıyor.
  • Class.BasePart.ApplyImpulse|ApplyImpulse yöntemini kullanarak bir montajı hızlı bir şekilde yer değiştirerek hızlı bir şekilde hızlandırma eylemini yapar.

Dizilsel Hareket ve Fiziksel Güçler

Roblox Studio, fiziksel davranışları gerçek zamanlı olarak simüle eden gerçek dünya simülasyon motorudur, bu nedenle nesnelerin lineer olarak hareket ettiğini tahmin etmek için yüksek seviyeli bir anlayışa sahip olmak önemlidir. Linear motion eksenler boyunca hareket. Örneğin, bir blokun lineer hareketi olduğunda, set eksenleri boyunca hareket eder.

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.

Yer çekimi olmadan hareket edilemezsiniz. Newton'un ilk hareket yasası gereğince, hareket edilemeyen hareketli nesneler hareket edilemez ve hareket edilebilir nesneler hareket edilebilir hızla hareket eder. Örneğin, bir duraklı blok hareket edilemezsiniz, bir hareket edilebilir nesne hareket edilebilir hızla hareket eder, a

Güç bir nesnenin eksenleri boyunca direksiyon ve büyüklüğünü değiştiren fiziksel bir itme veya çekme gücünün ölçeğidir. Bir değişiklik hızının şeklini hızlandırma olarak bilinir. Bu konu Studio'da nesnelerin hareket etmesi için özellikle önemlidir; nesnelerin hızına

Bunun nedeni, gücün herhangi bir fiziksel gücün arkasına doğru itilmesi gerektiğinden daha büyük olması gerektiğidir, örneğin, yer çekimi veya kayma gibi. Örneğin, eğer blok bir metal plakaya yerleştirilseydi, rüzgarın gücü metal plaktan çok daha fazla

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.

Linear velocity bir nesnenin hızını ölçer, veya nesnenin bir eksen üzerinde bir süre içinde pozisyonunu değiştirme hızı. Studio, nesnenin hızını Roblox'un başına gelen hızla ölçer. Studs, uzunluğu ölçmek için Roblox'un ana fiziksel birimi olup her stud yaklaşık 28cm'lik bir

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

Linel hızını anlamak, deneyimlerinizde oyun oynama tasarımı için önemlidir, çünkü bu, hareket eden nesneleriniz için belirli bir hız için gereken gücü belirlemenize yardımcı olur. durum, nesneleri yukarı yönlendirmek istediğinizde, gücünüzü çevre çevresi içinde hızlı bir şekilde ayarlamanız gerekt

Aşağıdaki bölümler, objeleri herhangi bir sabit veya yer çekimi hızıyla hareket ettirmeyi öğrendiğinizde bu konulara daha derine iner. Bu fiziksel güçleri Studio ile herhangi bir karşılıklı hareket davranışının üstesinden gelmek için gerekli güçle yer çekimi hızını ayarlamanız gerektiğini görmek için bu fiziksel güçleri gözden

Konsantrik Hızı Korumak

Bir nesnün konvektörünü aşmak ve tutmak için bir güce ihtiyacı vardır, böylece nesnenin lineer hızını azaltır veya nesneyi durdurur. Örneğin Studio'da nesnenin lineer hızını [0, 12, 0] olarak ayarlayabilirsiniz, ancak nesnenin

Gereken güç miktarı sadece çevredeki fiziksel güçlerin miktarına bağlı değil, aynı eksenin hareketindeki iki nesneye de, bununla birlikte nesnenin kendisi için daha fazla güç gerekir. Örneğin, eğer aynı şekilde hareket eden iki nesneye sahipseniz, daha büyük hacme sahip olan nesnenin daha fazla güce sahip olması gerekir.

Küçük üçgen kısmının biraz masası var, bu yüzden aynı hızı elde etmek için daha az güce ihtiyacı var.
Büyük üçgen kısmının büyük bir miktarı var, bu yüzden aynı hızı elde etmek için daha fazla güce ihtiyacı var.

Aşağıdaki alt bölümler farklı şekiller ve boyutların bir araya getirilmesini kullanır kullanıcılara bir nesneyi hızlı bir şekilde hareket ettirmeyi öğretmek için. Senaryoların farklı özellikleri değerleriyle deneyler yaparken, senaryoların maksimum gücünü tahmin etmeyi öğreneceksin.

Yer çekimi kısıtlamalarını kullanmak

LinearVelocity nesneleri bir tür mover约束 nedir ki, bir bütün montaj üzerinde gücü korumak için kuvveti uygulayan bir tür şekildir. Montajın pozisyonunu bir eksen boyunca kilitlemezken, montaj özgür bir şekilde dönebilir. Bu tür bir hareket, oyuncular

Lily pads birbirleriyle çarpıştığında, yönü değiştirir, ancak aynı hızda nehir boyunca akar.

Class.LinearVelocity kısıtlamasının başlamak için bilmesi gereken:

  • Bir gücü uygulamak için nokta ve olumlu veya olumsuz yön.
  • Yapının her saniye hareket etmesi gereken adım sayısı.
  • Motorun üretim hızına ulaşması için uygulayabileceği maksimum güç miktarı.

Bu süreci göstermek için, bir LinearVelocity kısıtlayıcısına sahip bir lily pad'i yapılandırırsınız, lily pad'i dünyanın olumsuz X ekseninde 15 stud başına saniyede dünyanın olumsuz X ekseninde dünyanın olumsuz X ekseninde dünyanın olumsuz X ekseninde dünyanın olumsuz X ekseninde d

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.

Eklentileri Ekle

Gücü uygulamak için bir Attachment nesneyi bağlayarak nesneyi kaynağa ekleyin ve ardından bağlantının konumunu 3D alanında yapılandırın. Örnek Hareketli Nesneler deneyim, bir bağlantıyı merkezinde hareket ettirme sınırının malzemeyi belirli bir eksen ü

Eklentiler, hareket eksenlerinin bakış açılarını görmenize yardımcı olacak görsel yardımcıları içerir. Sarı ok, eklentinin ana eksenini gösterir ve turuncu ok, eklentinin birincil eksenini gösterir. Bu teknikteki lily pad'in hareketini etkilemeyen görsel

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

Bir bağlantıyı eklemek için:

  1. In the Explorer window, expand the LinearVelocityExample folder, then expand its child LilyPad_DIY model.

  2. Bir eklentiyi Pad meshesine gir.

    1. Meshe üzerine fareyi geçirin ve ⊕ düğmesine tıklayın. Bir konteyner menüsü görüntülenir.
    2. Menüden bir Eklentisi girin. Eklenti parçanın merkezinde görüntülenir.
    3. Eklentiyi EklentiyiHareket ettirmeEklentisi olarak yeniden adlandırın.
    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.

Kısıtlayıcıyı Yapılandır

Şimdi meselenizin bir noktasını sabit hale getirdiği için lily pad'i hareket ettirmeyi yapabilirsiniz, bir LinearVelocity kısıtlayıcısının yönünü ve büyüklüğünü belirtmek için meselenizin bir özelliğini yapılandırabilirsiniz, meselenizin hareket ettiği anda hareket hızınızın y

Örnek Hareketli Nesneler deneyimi, dünyanın olumsuz X ekseninde saniyede 15 adet gül padsını hareket etmek için 5000 Roblox'a kadar sürekli güç gereksinimini uygulayarak 5000'e kadar güç hareketi yapar. Robtonlar, gücü ölçmek için Roblo

Bir LinearVelocity kısıtlamasını yapılandırmak için:

  1. (isteğe bağlı) 3D alanında kısıtlayıcıyı görünür hale getirin, böylece onun lineer yönünü referans edebilirsiniz.

    1. Menü çubuğunda, Model sayfasına, sonra Sınırlar bölümüne gidin.
    2. Eğer şu anda etkin değilse, Kısıtlayıcı Ayrıntıları tıklayarak kısıtlayıcı görsel yardımcıları gösterin.
    A close up view of the Studio's Constraints section UI.
  2. Bir Pad meshesine bir Class.LinearVelocity kısıtlayıcısı ekleyin.

    1. In the Explorer window, hover over the mesh, then click the ⊕ simge. A contextual menu displays.
    2. Konteks menüsünden LinearVelocity ekleyin.
  3. Meshenin bağlantısını yeni kısıtlayıcıya atar.

    1. In the Explorer window, select the constraint.
    2. Özellikler penceresinde,
      1. Set Attachment0 to MoveArrow .
      2. Hedef yer çekimi hızını yakalamak için MaxForce ı 5000 ına ayarlayın, böylece hedef yer çekimi hızını yakalayın.
      3. Lily pad'i dünyanın pozisyon ve yönüne göre hareket ettirmek için RelativeTo ile World 'e tut.
      4. VelocityConstraint ile çizgiye gücü sınırlayanı ayarlayın.
      5. Set LineDirection-1, 0, 0 に ayarlayarak lily pad'i dünyanın olumsuz X ekseninde hareket ettirin. Not edin ki, bu özelliği 1, 0, 0 olarak ayarlarsanız lily pad'i dünyanın olumsuz X ekseninde hareket ettirir.
      6. Set Hizmet Hızınızı 15 to move the lily pad 15 studs per second.
    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. Belirlediğin güç miktarının dünyanın olumsuz X ekseninde her saniye 15 adet meshes hareket ettirdiğini doğrula.

    1. Menü çubuğunda, Test sekmesine gidin.

    2. Simülasyon bölümünde, Mod Seçici 'yı tıklayın. Bir dropdown menüsü görüntülenir.

      Rapid playtest options in Test tab of Studio
    3. Select Koşu . Studio 3D alanındaki avatar'ınız olmadan mevcut kameranın pozisyonunda deneyimi simüle eder.

PrismaticConstraint Kısıtlama Kullanıyor

PrismaticConstraint nesneleri, iki bağlantı arasında bir katlanma oluşturan bir tür meханиче kısıtlayıcı nesneleridir, böylece onların ebeveynleri birbirlerine paralel olarak hareket edebilir. Locking both assemblies' position to a single axis, eachAssembly is only able to rotate if they rotate together in the same

Bu tür hareketler, oyuncuların tahmin etmesi daha kolay olan sabit oyun senaryolarına yol açar. Örneğin, örnek Hareketli Nesneler deneyimi, oyuncuların devasa bir nehiri dikkatlice geçmelerine yardımcı olmak için PrismaticConstraint nesnelerini kullanır.

Motor'a PrismaticConstraint.ActuatorType ayarladığınızda, bu kısıtlayıcı Motor üzerindeki iki bağlantıyı zorla uygulayarak gücü kullanır. Eğer bir bağlantının ebeveyn kısmını bağlayan bir bağlantının ebeveyn kısmını bağ

Class.PrismaticConstraint kısıtlaması, montajı başlatmak için bilmesi gereken:

  • Bir gücü uygulamak için nokta ve olumlu veya olumsuz yön.
  • Eklentilerin hareket etmesi için istediğiniz başına sayısı.
  • Motorun bağlantıları ve onların ebeveynleri için uygulayabileceği maksimum güç miktarı.

Bu süreci göstermek için, bir PrismaticConstraint referansına sahip iki objeyle bir günlük montajı yapılandırırsınız, böylece günlük 40 milisaniye boyunca dünyanın olumsuz X ekseninde sabit bir hızla logu hareket ettirirsiniz.

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.

Eklentileri Yapılandır

Bir öğeyi bir montaj içinde hareket etmenin yönünü belirlemek için, montaja iki Attachment nesneyi ekleyerek, yönünü ve yerini 3D alanında yapılandırerek, yapılandırmayı ve yönlendirmeyi yeniden ayarlayarak, örnek Hareket Etmek İ

PrismaticConstraint kısıtlamanızı bir sonraki bölümde yapılandırdığınızda, günlüğü ilişki olarak yerleştirme parçasına hareket edecek. Diğer bir deyişle, günlüğu 3D alanında sabit olarak tutulan sabit parçasından uzaklaştırır.

Prismatic kısıtlaması için bağlantıları yapılandırmak için:

  1. In the Explorer window, expand the PrismaticConstraintExample folder, then expand its child Log_DIY model.

  2. Bir eklentiyi Günlük meshesine gir.

    1. Meshe üzerine fareyi geçirin ve ⊕ düğmesine tıklayın. Bir konteyner menüsü görüntülenir.
    2. Menüden bir Eklentisi girin. Eklenti parçanın merkezinde görüntülenir.
    3. Eklentiyi Günlük Eklentisi olarak yeniden adlandırın.
    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. Aynı süreci kullanarak, bir bağlantıyı Anchor parçasına yerleştir, sonra bağlantıyı AnchorAppearance olarak yeniden adlandır.

    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. Dünyanın koordinatları için referans olarak Seçiciyi Görüntülemez araç kullanıyor, LogArrow ve AnchorArrow 'i her bağlantının ana eksenine kadar döndürür

    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. Eşyaların tümü dünyanın X ekseninde hizalanabilir hale getirmek için AnchorAmount adlı eklentiyi yeniden konumlandırın.

    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.

Kısıtlayıcıyı Yapılandır

Şimdi bağlantılarınız aynı eksen üzerinde hizalanır ve aynı yönü istediğiniz yönlendirmeyi yapmak için günlüğün hareket etmesini istediğiniz yön veya bir bağlantının birincil eksenindeki hedef hızını belirtmek için özelliklerini yapabilirsiniz.

Kendi kullanım senaryoların için farklı değerler seçebilirsiniz, ancak örnek Hareketli Nesneler deneyimi, bağlayıcıları dünyanın olumsuz X ekseninde saniyede 40 radyuslu hareket etmek için sürekli güçte 50000 Rowtons'a kadar değişken güç uygulanır. Ancak, ana ç

Bir prismatic kısıtlayıcıyı yapılandırmak için:

  1. Bir Class.PrismaticConstraint nesneyi Log meshesine girer.

    1. In the Explorer window, hover over the mesh, then click the ⊕ simge. A contextual menu displays.
    2. Konteks menüsünden bir PrismaticConstraint ekleyin.
  2. Günlüğün bağlantılarını yeni kısıtlayıcıya atayarak günlüğü ancorlanmış blok bölümüne hareket ettirin.

    1. In the Explorer window, select the constraint.
    2. Özellikler penceresinde,
      1. Set Attachment0 to AnchorAttachment .
      2. Eklentisi1 LogAmounti bağlayıcıyı ayarlar. Kısıtlayıcı, görüntü alanında görüntülenir.
    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. In the Explorer window, select the constraint, then in the Properties window,

    1. Set ActuatorType to Motor . New property fields display.
    2. MotorMaxForce'ı 50000 ile yüklenmiş olacak şekilde ayarla, hız hedefine ulaşmak için maksimum 50000 Rowtons'luk statik gücünü uygula.
    3. Hızı Velocity bir saniyede 40 stud'u hareket ettirmek için 40 olarak ayarla.
    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. Belirlediğin güç miktarının dünyanın olumsuz X ekseninde her saniye 40 adet hareketi hareket ettiğini doğrula.

    1. Menü çubuğunda, Test sekmesine gidin.

    2. Simülasyon bölümünde, Mod Seçici 'yı tıklayın. Bir dropdown menüsü görüntülenir.

      Rapid playtest options in Test tab of Studio.
    3. Select Koşu . Studio 3D alanındaki avatar'ınız olmadan mevcut kameranın pozisyonunda deneyimi simüle eder.

Bir İlk Lineer Gücü Uygulanması

Bir nesnenin lineer hızını değiştirmek için bir güç dalgası uygulayarak. Sonra güç dalgasından sonra, nesnenin durma hızına kadar yavaşlar veya direnç gibi bir güç olmazsa hızlı hareket eder. Bir direnç olmadığından hareket ederse, yer çekimi gibi bir güç değeri hızını değiştirir.

Bu teknik, bir çığlık veya etkili bir çarpışma gibi önemli bir oyun etkinliğinden sonra nesneleri hareket ettirmek için yararlıdır, çünkü oyuncular anında geri geri dönüşsağlar. Göstermek için, aşağıdaki bölüm oyuncunun karakterini yeni değerlerle gökyüzüne doğru yükseltir.

ApplyImpulse'ı Kullanıyor

Class.BasePart.ApplyImpulse|ApplyImpulse yöntemi, bir tüm montaj üzerinde güç uygular ve böylece yavaşlatıcıyla durdurulduğunda başlangıç ​​liner hızını elde etmek için gerekir. Montajı hareket etmeye başlamak için yöntemin bilmesi gereken:

  • Hareket ettirilecek montaj.
  • Bir ilk lineer hızına ulaşmak için gücü uygulayacak eksen.
  • Her eksen için uygulanacak güç miktarı.

Tüm bu değerleri bir kısmınızda tanımlayabilirsiniz. Örneğin, örnek kısmı, oyuncu karakterinin Humanoid nesnini birleştirmeyi tanımlar, sonra oyuncu karakterleri dünyanın olumlu Y ekseninde oyuncu karakterleri

Bir montajı ApplyImpulse kullanarak hareket ettirmek için:

  1. In the Explorer window, expand the ApplyImpulseExample folder, then expand its child JumpPad_DIY model.
  2. Bir JumpPad bölümüne bir senaryo girin.
    1. Parçaya fareyi getirin ve ⊕ düğmesine tıklayın. Bir konteyner menüsü görüntülenir.
    2. Menüden bir Script ekle. Aksesuar parçanın merkezinde görüntülenir.
    3. Skripti Zıplama Komutu olarak yeniden adlandırın.
  3. Aşağıdaki kodu varsayılan kodla değiştirin:

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)