Taşınabilir nesneler 3B uzayında bir veya daha fazla eksende hareket eden nesnelerdir.Roblox'un simülasyon motorunun yerleşik gücünü kullanarak, nesneleri yerçekimi, aerodinamik ve sürtünme gibi oyuncular için tanıdık ve anlaşılır olan gerçek dünya fizik davranışını taklit eden bir şekilde hareket ettirebilir ve çevreleriyle etkileşime girebilirsiniz.
Hareket eden nesneler dosyasını bir referans olarak kullanarak, bu öğretici Studio'daki fiziksel güçlerin lineer hareketi nasıl etkilediğini açıklar ve size farklı hareket davranışıyla deneyimlerinizde nesneleri A noktasından B noktasına taşımanız için çeşitli teknikler gösterir, bunlar arasında şunlar bulunur:
- Sürekli lineer bir hızda bütün bir montajı hareket ettirmek için bir LinearVelocity taşıyıcı kısıtlaması kullanılıyor.
- Bir montajı tek bir eksene sınırlandırmak ve 3B uzaydaki bir noktaya göre sabit lineer hızla hareket ettirmek için bir PrismaticConstraint kullanmak
- Bir montajı bir başlangıç gücü ile hareket ettirmek için ApplyImpulse yöntemini kullanarak montaj yavaşça zamanla azalır.
Lineer hareket ve fiziksel kuvvetler
Roblox Studio, gerçek dünya deneyimlerinde fiziksel davranışı gerçek zamanlı olarak taklit eden bir simülasyon motorudur, bu nedenle nesnelerin lineer olarak hareket etmesinin deneyimlerde nasıl davranabileceğini tahmin etmek için, nesnelerin lineer hareketle gerçek hayatta nasıl hareket edeceğine dair yüksek düzeyde bir anlayışa sahip olmak önemlidir. Lineer hareket bir eksen boyunca harekettir. Örneğin, bir bloğun lineer hareketi olduğunda, bir eksen boyunca hareket eder.

Lineer hareket, nesneleri hareket ettiren veya çeken dış, fiziksel kuvvetler olmadan var olamaz.Newton'un ilk hareket yasasına göre, sabit nesneler sabit kalır ve hareket eden nesneler dış bir kuvvet tarafından hareket ettirilmedikçe sabit hızla hareket eder.Örneğin, bir sabit blok, rüzgar gibi fiziksel bir kuvvet onu hareket ettirmediği sürece sabit kalır.
Güç bir eksen boyunca nesnelerin lineer hızını değiştiren fiziksel bir itme veya çekme anındaki yön ve büyüklüğün ölçüsüdür.Hızda bir değişiklik hızlanma olarak bilinir.Bu konsept, nesnelerin Stüdyoda hareket etmesi için özellikle önemlidir; nesneler için uyguladığınız güç arttıkça, daha hızlı hızlanırlar.
Bunun nedeni, kuvvetin nesneye karşı iten herhangi bir fiziksel kuvvetten daha büyük olması gerektiğidir, örneğin yerçekimi veya sürtünme.Örneğin, bloku bir metal plakaya yerleştirirseniz, rüzgarın fiziksel gücü, blokun hızlanmasını sürdürmek için metal plakadaki sürtünme miktarını aşması gerekir.Rüzgarın gücü metal plakadan gelen kayganın çok daha fazla olmadığında, blok daha yavaş bir şekilde hızlanır, önceki örneğin aksine.

Lineer hız bir nesnenin hareketinin ölçüsüdür veya nesne bir süre boyunca bir eksen boyunca konumunu ne kadar hızlı değiştirir.Stüdyo, bir nesnenin saniye başına kaç tane hareket ettiğine göre lineer hızı ölçer.Studlar, uzunluğu ölçmek için Roblox'un temel fiziksel birimleridir ve her bir stud gerçek dünyada yaklaşık 28cm eşdeğerdir.

Lineer hızın anlaşılması, deneyimlerinizde oyun oynamayı tasarlamak için önemlidir, çünkü hareket eden nesneler için belirli bir hıza ulaşmak için ne kadar güce ihtiyacınız olduğunu belirlemenize yardımcı olur.Örneğin, nesneleri yukarı itmek istediğinizde, nesnelerin doğru hareket etmesi için çevredeki yerçekimini aşmak için gücünüzü nasıl ayarlayacağınızı düşünmek önemlidir.
Aşağıdaki bölümler, nesneleri çevredeki herhangi bir itici fiziksel kuvvetle sabit veya başlangıçsal lineer hızda hareket ettirmenin yolunu öğrendikçe bu konulara daha derin dalıyorlar. as you learn how to move objects at either a constant or initial linear velocity with the necessary force to overcome any oppositional physical forces within the environment.Bu fizik konseptlerini yaklaşan tekniklerle incelerken, Studio'da herhangi bir ideal lineer hareket davranışını elde etmek için özellik değerlerini nasıl ayarlayacağınızı daha doğru bir şekilde tahmin edebilirsiniz.
Sürekli lineer hızı koru
Bir nesnenin sabit lineer hıza ulaşması ve koruması için, nesnenin lineer hızını azaltan veya nesneyi sabit tutan herhangi bir karşıt fiziksel kuvveti aşması gereken bir kuvvete ihtiyacı vardır.Örneğin, bir nesnenin Studio'da lineer bir hıza sahip olmasını istiyorsanız, nesnenin çevresindeki Y ekseninde saniye başına 12 damla ulaşması ve koruması için yeterli güce ihtiyacınız var.
Gerekli güç miktarı yalnızca çevrenin kendisi içindeki karşıt fiziksel güçler, örneğin yerçekimi ve sürtünme gibi, değil, ayrıca nesnenin kendisine de bağlıdır.Örneğin, aynı eksende hareket eden iki aynı şekildeki nesneniz varsa, daha fazla kütle kapasitesine sahip nesne aynı lineer hızlanmayı elde etmek için daha fazla güce gerektirir.
Aşağıdaki alt bölümler farklı şekil ve boyutlardaki montajları kullanarak size bir tüm nesneyi veya sadece nesnenin bir kısmını sabit lineer hızda nasıl hareket ettireceğinizi öğretir.Farklı özellik değerleriyle deney yaparken, kendi deneyimlerinizde montajlar için ihtiyacınız olan maksimum güç miktarını nasıl tahmin edeceğinizi öğreneceksiniz.
Lineer Hız sınırlarını kullan
LinearVelocity nesneleri, bir bütün montaj üzerinde sabit lineer hızı korumak için bir tür hareket kısıtlaması uygulayan bir türdür.Hareket sırasında montajın konumunu bir eksene kilitlemeden, montaj 3B uzaydaki diğer nesnelerle çarpıştığında dönebilir.Bu tür hareket, oyuncuların tahmin etmesi daha zor olan şaşırtıcı oyun senaryolarına yol açar.
Montajı hareket ettirmeye başlamak için, LinearVelocity sınırın bilmesi gerekir:
- Bir kuvvet uygulamak için nokta ve pozitif veya negatif yön.
- Montajın saniye başına hareket etmesini istediğiniz çivilerin miktarı.
- Motorun montaj için uygulayabileceği en yüksek güç miktarı sabit lineer hıza ulaşmak için.
Bu süreci göstermek için, bir lily pedi dünyanın negatif X ekseninde sürekli lineer hızda dakika başına lily pedini taşımak için bir bağlantı ile bir lily pedi yapılandıracaksınız.

Eklenti ekleyin
Montaja bir Attachment nesnesi ekleyerek uygulanacak noktayı belirleyebilir ve ardından 3B uzayda bağlantının konumunu yapılandırabilirsiniz.Örnek Taşınabilir Nesneler deneyimi, kısıtmanın mesheyi belirli bir eksen boyunca taşıyabilmesi için lily padın merkezine bir ek bağlıyor.
Eklentiler, hareket eksenlerini görselleştirmenize yardımcı olacak görsel yardımlar içerir.Sarı ok, bağlantının ana eksenini gösterir ve turuncu ok, bağlantının ikincil eksenini gösterir.Herhangi bir hareket ekseninin bu teknik adımlarda lily pad'in hareketini etkilemesine rağmen, gelecekteki referans için bu görsel yardımların anlaşılması önemlidir, çünkü ideal kısıtma türleri için ideal davranışı belirlemenize yardımcı olabilirler, örneğin bir sonraki teknikteki PrismaticConstraint .

Bir ek eklemek için:
Araştırmacı penceresinde, LinearVelocityExample klasörünü genişletin, ardından çocuğunu genişletin LilyPad_DIY .
Bir ek dosyayı Pad örgüsüne ekleyin.
- Kafanızı örüntünün üzerine getirin ve ⊕ düğmesine tıklayın. Bir kontekst menüsü görüntülenir.
- Menüden, bir Eklenti ekleyin. Eklenti parçanın merkezinde görüntülenir.
- Eklentiyi Hareket Eklentisi olarak yeniden adlandırın.
Kısıtlamayı yapılandır
Artık çatınızın lilya pedini hareket ettirmek için sabit bir noktaya sahip olduğuna göre, LinearVelocity kısıtlamasının özelliklerini yön ve süreklilik hızı için belirtmek için konfigüre edebilirsiniz: çatınızın saniye başına hareket etmesini istediğiniz miktar çiviler, çatınızın sürekli lineer hız için uygulayabileceği maksimum güç miktarı ve motorun çatıya sürekli lineer hız ulaşmak için uygulayabileceği maksimum güç miktarı.
Örnek Hareketli Nesneler deneyimi, dünyanın negatif X ekseninde sürekli lineer hızda 15 mili saniye başına lilya pedini hareket ettirmek için sürekli 5000 Rowton sürekli kuvvet uygular.Rowtons, gücü ölçmek için Roblox'un temel fiziksel birimleridir.Roblox fiziksel birimlerine ve bunların metrik birimlere nasıl dönüştürüleceğine referans vermek için, Roblox Birimleri görün.
Bir LinearVelocity sınırı yapılandırmak için:
(Opsiyonel) 3B uzayda kısıtın görünür olmasını sağlayın, böylece lineer yönünü referans alabilirsiniz.
- Araç çubuğunun Model sekmesine ve ardından Kısıtlamalar bölümüne geçin.
- Şu anda etkinleştirilmediyse, sınırlama görsel yardımlarını görüntülemek için Sınırlama Detayları 'na tıklayın.
LinearVelocity sınırını Pad örgüsüne ekleyin.
- Kâşif penceresinde, örümceğin üzerine gelin, ardından ⊕ simgesine tıklayın. Bir bağımsız menü görüntülenir.
- Kontekst menüsünden, lineer hız ekleyin.
Dokunun bağlantısını yeni kısıtlamaya atayın.
- Kâşif penceresinde, kısıtlayıcıyı seçin.
- Özellikler penceresinde,
- Eklenti0 HareketEklenti 'ye ayarlayın.
- Hedef lineer hıza ulaşmak için 5000 R Newton sabit kuvvet uygulamak için Maksimum Güç 5000 ayarlayın
- Lilya pedini dünyanın konumuna ve yönüne göre hareket ettirmek için RelativeTo Dünyaya taşın.
- Bağlantıdan bir çizgede gücü sınırlandırmak için Hız Sınırı Çizgi 'ye ayarlayın, gücü bir çizgide sınırlandırmak için.
- Dünyanın negatif X ekseninde lilya pedini hareket ettirmek için Çizgi Yönü -1, 0, 0 ayarını ayarlayın.Bu özelliği 1, 0, 0 olarak ayarlarsanız lily pedi dünyanın pozitif X ekseninde hareket edecektir.
- Lilya pedini her saniye 15 damga hareket ettirmek için Hattı Hızı 'e ayarlayın.
Ayarladığınız güç miktarının, dünyanın negatif X ekseninde her saniye 15 damga hareket ettirdiğini doğrulayın.
- Araç çubuğunda, Test sekmesine gidin.
- Oynatma modlarından Çalıştır seçin. Stüdyo, avatarınızın 3B uzayda olmadığı mevcut kamera konumunda deneyimi simüle eder.
Prizmatik Kısıtlayıcı sınırlarını kullan
PrismaticConstraint nesneler, iki bağlantı arasında sert bir eklem oluşturan bir mekanik kısıtlama türüdür, böylece ebeveyn montajları bir eksen üzerinde hareket edebilir birbirine göre .Her iki montajın konumunu tek bir eksene kilitleerek, her montaj yalnızca aynı yönde birlikte dönerse dönebilir.
Bu tür hareket, oyuncuların tahmin etmesi daha kolay olan istikrarlı oyun senaryolarına yol açar.Örneğin, örnek Hareketli Nesneler deneyimi, oyuncuların dikkatlice dev bir nehirden geçmek için kullanabileceği log platformlarını hareket ettirmek için PrismaticConstraint nesneleri kullanır.
PrismaticConstraint.ActuatorType Motora ayarlandığında, bu sınır, bağlantıların sabit lineer hıza ulaşması ve korunması hedefiyle iki ekipmana güç uygular.Eklentilerden birinin ebeveyn montajlarından birini sabitleyecekseniz, kuvvet sabitlenmiş montaj sabit kalırken sabitlenmemiş montajı sabit hızda hareket ettirmeye devam eder.
Montajı hareket ettirmeye başlamak için, PrismaticConstraint sınırın bilmesi gerekir:
- Bir kuvvet uygulamak için nokta ve pozitif veya negatif yön.
- Eklentilerin saniye başına hareket etmesini istediğiniz çentik miktarı.
- Motorun bağlantılar ve onların ebeveyn montajları için uygulayabileceği maksimum güç miktarı, sabit lineer hıza ulaşmak için.
Bu süreci göstermek için, dünyanın negatif X ekseninde her saniye 40 vida taşımak için bir çocuk bağlantıya sahip iki nesneyle bir günlük derleme yapılandıracaksınız ve bunun için sabit lineer hızda dünyanın negatif X ekseninde hareket edecek.

Eklentileri yapılandırma
Bir montaj içinde belirli bir nesneyi hareket ettirmek için montaja iki Attachment nesne ekleyerek yönü belirleyebilir ve ardından 3B uzayda yerleşimini ve yönünü yapılandırabilirsiniz.Örnek Taşınabilir Nesneler deneyimi, sabitlenmemiş kaydın sabitlenmiş parçayla üzerine geçtiği konumun yakınındaki dünyanın X ekseninde iki ek bağı eşleştirir veya her bir ekipmanın birincil eksenini dünyanın negatif X eksenine yönlendirir.
Bir sonraki bölümde prismatik kısıtlayıcı sınırınızı yapılandırdığınızda, günlük ilişkiye göre sabit parçaya taşınacaktır.Diğer bir deyişle, günlük, 3B uzayda sabit kalan parçadan uzaklaşacaktır, çünkü sabitlenmiştir.
Prizmatik kısıt için bağlantıları yapılandırmak için:
Araştırmacı penceresinde, PrismaticConstraintExample klasörünü genişletin, ardından çocuk Log_DIY modelini genişletin.
Bir ek dosyayı Günlük örgüsüne ekleyin.
- Kafanızı örüntünün üzerine getirin ve ⊕ düğmesine tıklayın. Bir kontekst menüsü görüntülenir.
- Menüden, bir Eklenti ekleyin. Eklenti parçanın merkezinde görüntülenir.
- Eklentiyi LogAttachment olarak yeniden adlandırın.
Aynı süreci kullanarak, Kelepçe bölümüne bir ek dosya ekleyin, ardından ek dosyayı yeniden adlandırın Kelepçe Bağlantısı .
Dünyanın koordinatlarına referans olarak Görüntü Seçicisi aracını kullanarak, her bir ekipmanın birincil ekseninin dünyanın negatif X eksenine yöneldiğine kadar LogAttachment ve AnchorAttachment döndürün
Her iki bağlantının da dünyanın X ekseninde hizalanması için AnchorAttachment yeniden konumlandırın.
Kısıtlamayı yapılandır
Artıklarınız aynı eksende hizalandı ve istediğiniz yöne doğru yönlendirildi, şimdi kayıtların hedef sabit hızını pozitif veya negatif her bir eklemlerin ana ekseninin birincil yönünde hareket etmesi için belirtmek için bir PrismaticConstraint sınırın özelliklerini yapılandırabilirsiniz: hedef sabit hızını her saniye hareket etmesi için bağlantıların hızının miktarını, her bir eklemlerin birincil eksenin pozitif veya negatif yönünde hareket etmesi için motorun uygulayabileceği maksimum güç miktarı ve motorun log'un sabit lineer hıza ulaşması için uygulayabileceği maksimum güç miktarı.
Kendi kullanım durumlarınız için farklı değerler seçebilirken, örnek Taşınabilir Nesneler deneyimi dünyanın negatif X ekseninde saniye başına 40 radyandaki bağlantıları hareket ettirmek için sabit lineer hızda 50000 Rowton sürekli kuvvet uygular.Ancak, çapa bağlantısı sabitlenmiş bir nesneye olduğundan, sadece günlüğün bağlantısı hareket edebilir.
Bir prizmatik kısıtlamayı yapılandırmak için:
Bir PrismaticConstraint nesnesini Günlük örgüsüne yerleştirin.
- Kâşif penceresinde, örümceğin üzerine gelin, ardından ⊕ simgesine tıklayın. Bir bağımsız menü görüntülenir.
- Kontekst menüsünden, bir Prismatik Sınır ekleyin.
Günlüğün eklerini yeni kısıtlamaya atayın, böylece günlük sabitlenmiş blok parçasına ilişkin olarak hareket eder.
- Kâşif penceresinde, kısıtlayıcıyı seçin.
- Özellikler penceresinde,
- Eklenti0 Çapa Bağlantısı 'ya ayarlayın.
- Set Eklenti1 LogAttachment olarak ayarlanır. Kısıtlama görüntü alanında görüntülenir.
Kâşif penceresinde kısıtlayıcıyı seçin, ardından Özellikler penceresinde
- AktüatörTipi Motora ayarlandı. Yeni özellik alanları görüntülenir.
- Hedef lineer hıza ulaşmak için MotorMaxForce 50000
- Günlüğü her saniye 40 damga hareket ettirmek için Hız 40
Ayarladığınız güç miktarının, dünyanın negatif X ekseninde saniye başına 40 damga hareket ettirdiğini doğrulayın.
- Araç çubuğunda, Test sekmesine gidin.
- Oynatma modlarından Çalıştır seçin. Stüdyo, avatarınızın 3B uzayda olmadığı mevcut kamera konumunda deneyimi simüle eder.
İlk lineer kuvvet uygulayın
Bir nesnenin lineer hızını değiştirmenin başka bir yolu, bir kuvvet dalgası uygulayarak olur.Kuvvetin tepkisinden sonra, nesne ya sabit hale gelene kadar yavaşlar, ya da sürtünme gibi bir direnç kuvveti yoksa sabit hızda hareket eder, ya da herhangi bir direnç kuvveti yoksa sabit hızda hareket eder.
Bu teknik, bir patlama veya etkili bir çarpışma gibi önemli bir oyun deneyiminden sonra nesneleri hareket ettirmek için yararlıdır, çünkü oyunculara anlık geri bildirim sağlar.Göstermek için, aşağıdaki bölüm, bir oyuncunun karakterini gökyüzüne doğru fırlatmayı öğretir, böylece yeni değerlerle oyun gereksinimlerinizi karşılayabilirsiniz. oyun ihtiyaçlarınızı karşılamak için.
ApplyImpulse kullanın
yöntemi, bir durdurma noktasına yavaşladan önce ilk lineer hızı elde etmek için bütün bir montaja güç uygular ve direnç güçleri varsa.Montajı hareket ettirmeye başlamak için, yöntem şunu bilmelidir:
- Hareket etmek için montaj.
- Başlangıç lineer hıza ulaşmak için kuvvet uygulamak için eksen.
- Her eksene uygulanacak güç miktarı.
Tüm bu değerleri bir senaryoda tanımlayabilirsiniz.Örneğin, örnek kod, montajı oyuncu karakterinin Humanoid nesnesi olarak hareket etmesi için tanımlar, ardından oyuncuyu dünyanın pozitif Y ekseninde yukarı doğru fırlatmak için 2500 Rowton saniyesi güç dalgası uygular.Oyuncu karakterlerinin farklı miktarda kütleye sahip olduğunu unutmayın, bu nedenle oyuncu karakterleri daha az miktarda kütle ile başlatmadan her oyuncuyu başlatmak için bu kuvveti artırmanız ve dengelemeniz gerekebilir.
Bir montajı ApplyImpulse kullanarak taşımak için:
Araştırmacı penceresinde, ApplyImpulseExample klasörünü genişletin, ardından çocuğunu genişletin JumpPad_DIY .
Bir JumpPad bölümüne bir senaryo ekleyin.
- Parçanın üzerine gelin ve ⊕ düğmesine tıklayın. Bir kontekst menüsü görüntülenir.
- Menüden, bir Kript ekleyin. Eklenti parçanın merkezinde görüntülenir.
- Komutu JumpScript olarak yeniden adlandırın.
Varsayılan kodu aşağıdaki kodla değiştirin:
local volume = script.Parentlocal function onTouched(other)local impulse = Vector3.new(0, 2500, 0)local character = other.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and other.Name == "LeftFoot" thenother:ApplyImpulse(impulse)endendvolume.Touched:Connect(onTouched)