Hareket eden nesneler, 3D uzayda bir veya daha fazla eksen boyunca hareket eden nesnelerdir. Roblox'un simülasyon motorunun yerleşik gücünü kullanarak, nesneleri hareket ettirip ortamlarıyla etkileşime girecek şekilde tasarlayabilir, böylece oyunculara tanıdık ve sezgisel olan gerçek dünya fizik davranışlarını taklit edebilirsiniz; örneğin yerçekimi, aerodinamik ve sürtünme gibi.
Hareket Eden Nesneler .rbxl dosyasını referans olarak kullanarak, bu öğretici, fiziksel kuvvetlerin Studio'da doğrusal hareketi nasıl etkilediğini açıklamakta ve çeşitli teknikler göstererek farklı hareket davranışlarıyla deneyimlerinizde nesneleri A noktasından B noktasına nasıl hareket ettireceğinizi öğretecektir. Bu, aşağıdakiler hakkında rehberlik içerir:
- Tüm montajı sabit bir doğrusal hızda hareket ettirmek için LinearVelocity hareket kısıtlayıcısını kullanma.
- Bir montajı tek bir eksene kısıtlamak ve onu 3D uzayda bir noktaya göre sabit doğrusal hızda hareket ettirmek için PrismaticConstraint kullanma.
- Bir montajı başlangıç kuvveti ile hareket ettirmek için ApplyImpulse yöntemi ile yavaşça zamanla yavaşlayacak şekilde hareket ettirme.
Doğrusal hareket ve fiziksel kuvvetler
Roblox Studio, gerçek dünyadaki davranışları gerçek zamanlı olarak taklit eden bir simülasyon motorudur. Bu nedenle, nesnelerin doğrusal olarak nasıl hareket edebileceğini tahmin edebilmek için, nesnelerin gerçek hayatta doğrusal hareketle nasıl hareket ettiğine dair bir üst seviye anlayışa sahip olmak önemlidir.
Doğrusal hareket, bir eksen boyunca hareket etmektir. Örneğin, bir blok doğrusal hareket yaptığında, belirli bir eksen boyunca hareket eder.

Doğrusal hareket, nesneleri hareket ettirmek için dışsal fiziksel kuvvetlerin itme veya çekme etmesi olmadan var olamaz. Newton'un hareket yasası'na göre, durgun nesneler durgun kalır ve hareket eden nesneler, dışsal bir kuvvet etkisi altında olmadıkça sabit bir hızda hareket etmeye devam ederler. Örneğin, durgun bir blok, rüzgar gibi fiziksel bir kuvvet onu hareket ettirmedikçe durgun kalır.
Kuvvet, nesnelerin bir eksen boyunca doğrusal hızlarını değiştirmesine neden olan fiziksel itme veya çekmenin yönü ve büyüklüğünü ölçer. Hızdaki bir değişim ivme olarak adlandırılır. Bu kavram, Studio'da nesnelerin hareket etmesi için özellikle önemlidir; nesnelere uyguladığınız kuvvet ne kadar fazla olursa, nesneler o kadar hızlı ivmelenir.
Bunun nedeni, uygulanan kuvvetin, nesneye karşı itme yapan fiziksel kuvvetlerin, örneğin yerçekimi veya sürtünme gibi, daha büyük olması gerektiğidir. Örneğin, bloğu bir metal plakanın üzerine koyduğunuzda, rüzgarın fiziksel kuvvetinin, bloğu ivmelendirebilmesi için metal plakanın sürtünme miktarını aşması gerekir. Eğer rüzgarın kuvveti, metal plakanın sürtünmesinden çok daha fazla değilse, blok yavaşça ivmelenir.

Doğrusal hız, bir nesnenin hareketinin ölçüsüdür; yani, nesnenin bir eksen boyunca konumunu belirli bir zaman diliminde ne kadar hızlı değiştirdiğini belirtir. Studio, bir nesnenin saniyede kaç stud hareket ettiğini baz alarak doğrusal hızı ölçer. Stud, uzunluğu ölçmek için Roblox'un birincil fiziksel birimidir ve her bir stud, realitede yaklaşık olarak 28 cm'ye eşittir.

Doğrusal hızı anlamak, deneyimlerinizdeki oyun tasarımını düşünmek için önemlidir; çünkü bu, hareket eden nesneleriniz için belirli bir hıza ulaşmak için ne kadar kuvvet uygulamaya ihtiyaç duyduğunuzu belirlemenize yardımcı olur. Örneğin, nesneleri yukarı doğru itmek istediğinizde, kuvvetinizi çevredeki yerçekimini aşacak şekilde ayarlamayı düşünmek önemlidir; böylece nesneler doğru bir şekilde hareket eder.
Aşağıdaki bölümler, nesneleri sabit veya başlangıç doğrusal hızında gerekli kuvvetle hareket ettirme konusunda daha derin bir anlayış kazanmanıza yardımcı olacak. Bu fizik kavramlarını inceleyerek, Studio'daki ideal doğrusal hareket davranışını elde etmek için mülkiyet değerlerini nasıl ayarlayabileceğinizi daha doğru bir şekilde tahmin edebilirsiniz.
Sabit bir doğrusal hızı koruma
Bir nesnenin sabit bir doğrusal hıza ulaşması ve bunu koruması için, nesnenin doğrusal hızını yavaşlatan veya nesnenin durgun kalmasına neden olan karşıt fiziksel kuvvetleri aşacak bir kuvvet gerekir. Örneğin, Studio'da bir nesnenin [0, 12, 0] doğrusal hızına sahip olmasını istiyorsanız, nesnenin çevrede Y ekseni boyunca saniyede 12 stud hızında hareket etmesi için yeterli kuvvet sağlamanız gerekir.
Gerekli kuvvet miktarı, sadece çevredeki karşıt fiziksel kuvvetlere, örneğin yerçekimi ve sürtünme gibi, bağlı değildir; aynı zamanda nesnenin kendi özelliklerine de bağlıdır. İki nesneniz aynı şekle sahip olup aynı eksende hareket ediyorsa, daha çok kütleye sahip olan nesne, aynı doğrusal ivmeyi elde etmek için daha fazla kuvvete ihtiyaç duyar.
Aşağıdaki alt bölümler, farklı şekil ve boyutlardaki montaj parçalarını kullanarak, ya bir bütün nesneyi ya da nesnenin sadece bir bölümünü sabit bir doğrusal hızda hareket ettirmeyi öğrenmenizi sağlayacaktır. Farklı mülkiyet değerleri ile deneme yaparken, kendi deneyimlerinizde montajlar için ihtiyaç duyduğunuz maksimum kuvvet miktarını tahmin etmeyi öğreneceksiniz.
Doğrusal Hız Kısıtlamalarını Kullanma
LinearVelocity nesneleri, sabit bir doğrusal hızı korumak için tüm bir montaja kuvvet uygulayan bir hareket kısıtlayıcısı türüdür. Montajın hareketi sırasında pozisyonunu herhangi bir eksene kilitlemeyerek, montaj diğer nesnelerle çarpışırken serbestçe dönebilir. Bu tür bir hareket, oyuncuların tahmin etmesini daha zor hale getiren şaşırtıcı oyun senaryolarına yol açar.
Montajı hareket ettirmek için, LinearVelocity kısıtlayıcısının şunları bilmesi gerekmektedir:
- Kuvvet uygulamak için bir nokta ve pozitif veya negatif yön.
- Montajın saniyede kaç stud hareket etmesini istediğiniz.
- Montajın sabit bir doğrusal hıza ulaşması için motorun uygulayabileceği maksimum kuvvet.
Bu süreci göstermek için, bir nilüfer yaprağını, 3D uzayda dünyanın negatif X ekseni boyunca saniyede 15 stud hareket etmesi için referans alacağı bir ek parça ile yapılandıracaksınız.

Ek Parça Ekleme
Kuvvet uygulamak için bir noktayı belirtmek adına montaja bir Attachment nesnesi ekleyebilir ve ardından ek parçanın 3D uzaydaki konumunu yapılandırabilirsiniz. Örnek Hareket Eden Nesneler deneyimi, kısıtlamanın ek parça boyunca belirli bir eksende hareket etmesine izin vermek için nilüfer yaprağının merkezine bir ek parça yerleştirir.
Ek parçalar, hareket eksenlerini görselleştirmenize yardımcı olmak için görsel yardımcılar içerir. Sarı ok, ek parçanın birincil eksenini belirtir ve turuncu ok, ek parçanın ikincil eksenini belirtir. Bu teknik adımlar sırasında hiçbiri nilüfer yaprağının hareketini etkilemese de, bu görsel yardımcıları gelecekte referans olarak anlamak önemlidir; çünkü bunlar sizin farklı türdeki kısıtlamalar için ideal davranışı belirlemenizde yardımcı olabilir. Örneğin, bir sonraki teknikte PrismaticConstraint.

Bir ek parça eklemek için:
Explorer penceresinde LinearVelocityExample klasörünü genişletin, ardından içindeki LilyPad_DIY modelini genişletin.
Pad mesh'ine bir ek parça ekleyin.
- Mesh'in üzerine gelin ve ⊕ butonuna tıklayın. Bir bağlam menüsü görüntülenecektir.
- Menüden bir Ek Parça ekleyin. Ek parça, parçanın merkezinde görüntülenecektir.
- Ek parçayı MoveAttachment olarak yeniden adlandırın.

Kısıtlayıcıyı Yapılandırma
Artık mesh'iniz, nilüfer yaprağını hareket ettirmek için sabit bir noktaya sahip olduğuna göre, LinearVelocity kısıtlayıcısının sabit bir doğrusal hız için yön ve büyüklük, saniyede kaç stud hareket etmesini istediğiniz ve montajın sabit bir doğrusal hıza ulaşması için motorun uygulayabileceği maksimum kuvvet gibi özelliklerini yapılandırabilirsiniz.
Örnek Hareket Eden Nesneler deneyimi, nilüfer yaprağını, dünyanın negatif X ekseni boyunca sabit bir doğrusal hızla saniyede 15 stud hareket ettirmek için 5000 Rowton'a kadar sabit bir kuvvet uygular. Rowton'lar, Roblox'un kuvvet ölçmek için birincil fiziksel birimleridir. Roblox fiziksel birimleri ve bunların metrik birimlere nasıl dönüştüğü hakkında bilgi almak için Roblox Birimleri sayfasına bakın.
LinearVelocity kısıtlayıcısını yapılandırmak için:
Kısıtlamanın doğrusal yönünü referans alabilmek için görünüm alanında görünür hale getirmek üzere Studio'nun Görünüm menüsünden Kısıtlama Ayrıntılarını Göster seçeneğini etkinleştirin.
Pad mesh'ine bir LinearVelocity kısıtlayıcısı ekleyin.
- Explorer penceresinde, mesh'in üzerine gelin, ardından ⊕ simgesine tıklayın. Bir bağlam menüsü görüntülenecektir.
- Bağlam menüsünden LinearVelocity seçeneğini ekleyin.
Mesh'in ek parçasını yeni kısıtlamaya atayın.
- Explorer penceresinde, kısıtlamayı seçin.
- Özellikler penceresinde,
- Attachment0 değerini MoveAttachment olarak ayarlayın.
- MaxForce değerini 5000 olarak ayarlayıp, hedef doğrusal hıza ulaşmak için 5000 Rowton'a kadar sabit kuvvet uygulayın.
- RelativeTo değerini World olarak tutarak nilüfer yaprağını dünyanın konumuna ve yönüne göre hareket ettirin.
- VelocityConstraint değerini Line olarak ayarlayarak kuvveti ek parçadan bir çizgi boyunca kısıtlayın.
- LineDirection değerini -1, 0, 0 olarak ayarlayın ki nilüfer yaprağı, dünyanın negatif X ekseni boyunca hareket etsin. Eğer bu özelliği 1, 0, 0 olarak ayarlarsanız, nilüfer yaprağı dünyanın pozitif X ekseni boyunca hareket eder.
- LineVelocity değerini 15 olarak ayarlayarak nilüfer yaprağının 15 stud/saniye hızla hareket etmesini sağlayın.

Ayarladığınız kuvvet miktarının, mesh'in 15 stud/saniye hızla dünyanın negatif X ekseni boyunca hareket ettiğini doğrulayın.
Mezzanin menüsünden Run simülasyon modunu seçin ve Oyna butonuna tıklayarak başlayın. Studio, deneyimi mevcut kamera pozisyonunda, 3D uzayda avatarınız olmadan simüle eder.

Prizmatik Kısıtlama Kısıtlamalarını Kullanma
PrismaticConstraint nesneleri, iki ek parça arasında sağlam bir bağlantı oluşturan bir mekanik kısıtlama türüdür ve ana montajlarının bir eksen boyunca birbirlerine göre hareket etmesine olanak tanır. İki montajın konumunu tek bir eksene kilitleyerek, her montajın yalnızca aynı yön boyunca döndüklerinde dönebildiği bir durum yaratır.
Bu tür bir hareket, oyuncuların daha fazla tahmininde bulunabileceği kararlı oyun senaryolarına yol açar. Örneğin, örnek Hareket Eden Nesneler deneyimi, oyuncuların dev bir nehrin dikkatlice geçişlerinde kullanabilecekleri kütük platformlarını hareket ettirmek için PrismaticConstraint nesnelerini kullanır.
PrismaticConstraint.ActuatorType değerini Motor olarak ayarladığınızda, bu kısıtlama iki ek parçaya kuvvet uygular ve bu ek parçaların sabit bir doğrusal hıza ulaşmasını ve bunu sürdürmesini amaçlar. Eğer ek parçalardan birinin ana montajını sabitlerseniz, kuvvet, sabit montaja sahip montajı sabit doğrusal hızda hareket ettirmeye devam ederken, sabit montaj durur.
Montajı hareket ettirmeye başlamak için, PrismaticConstraint kısıtlamasının şunları bilmesi gerekmektedir:
- Kuvvet uygulamak için bir nokta ve pozitif veya negatif yön.
- Eşya ek parçalarının saniyede kaç stud hareket etmesini istediğiniz.
- Ek parçaların ve bağlı montajların sabit bir doğrusal hıza ulaşması için motorun uygulayabileceği maksimum kuvvet.
Bu süreci göstermek için, bir kütük montajının iki nesnesini, kütüğün 40 stud/saniye hızla dünyanın negatif X ekseninde sabit bir doğrusal hıza ulaşması için bir PrismaticConstraint referansı ile ek parçaları yapılandıracaksınız.

Ek Parçaları Yapılandırma
Bir montaj içinde belirli bir nesneyi hareket ettirmek için yön belirlemek adına iki Attachment nesnesi ekleyebilir ve ardından bunların hizalamasını ve yönünü 3D uzayda yapılandırabilirsiniz. Örnek Hareket Eden Nesneler deneyimi, iki ek parçayı dünyanın X ekseni boyunca, bağlı kütüğün ana parçasının üst üste geldiği yere yakın bir konumda hizalar ve her ek parçanın birincil eksenini dünyanın negatif X eksenine bakacak şekilde yönlendirir.
Bir sonraki bölümde PrismaticConstraint kısıtlamanızı yapılandırdığınızda, kütük bağlı olan parçaya ilişkin hareket edecektir. Başka bir deyişle, kütük, 3D uzayda bağlı kısım olduğu için hareket edemeyen sabit parçadan uzaklaşacaktır.
Prizmatik kısıtlama için ek parçaları yapılandırmak amacıyla:
Explorer penceresinde PrismaticConstraintExample klasörünü genişletin, ardından içindeki Log_DIY modelini genişletin.
Log mesh'ine bir ek parça ekleyin.
- Mesh'in üzerine gelin ve ⊕ butonuna tıklayın. Bir bağlam menüsü görüntülenecektir.
- Menüden bir Ek Parça ekleyin. Ek parça, parçanın merkezinde görüntülenecektir.
- Ek parçayı LogAttachment olarak yeniden adlandırın.

Aynı işlemi uygulayarak Anchor parçasına bir ek parça ekleyin ve ek parçayı AnchorAttachment olarak yeniden adlandırın.

Görünüm Seçici aracını dünyanın koordinatları için bir referans noktası olarak kullanarak, LogAttachment ve AnchorAttachment'in her birinin birincil ekseninin dünyanın negatif X eksenine bakacak şekilde döndürün.

AnchorAttachment'i yeniden konumlandırarak, her iki ek parçanın da dünyanın X ekseninde hizalanmasını sağlayın.

Kısıtlamayı Yapılandırma
Artık ek parçalarınız aynı eksende hizalanmış durumda ve kütüğün hareket etmesini istediğiniz yönü belirleten yönleri uygun duruma getirdiğinize göre, PrismaticConstraint kısıtlamasının özelliklerini yapılandırarak her bir ek parçanın birincil ekseninin pozitif veya negatif yönünde hedef sabit doğrusal hızı uygulayıp uygulamayacağını belirtebilir, her ek parçanın saniyede kaç stud hareket etmesini istediğinizi ve kütüğün sabit bir doğrusal hıza ulaşması için motorun uygulayabileceği maksimum kuvveti belirtebilirsiniz.
Kendi kullanım durumlarınıza göre farklı değerler seçseniz de, örnek Hareket Eden Nesneler deneyimi, ek parçaları her biri 40 rad/s hıza ulaşmak için 50000 Rowton'a kadar sabit bir kuvvet uygular. Ancak, çünkü ankraj ek parçası sabit bir nesnedir, yalnızca kütüğün ek parçası hareket edebilir.
Prizmatik bir kısıtlamayı yapılandırmak için:
Log mesh'ine bir PrismaticConstraint nesnesi ekleyin.
- Explorer penceresinde mesh'in üzerine gelin, ardından ⊕ simgesine tıklayın. Bir bağlam menüsü görüntülenecektir.
- Bağlam menüsünden bir PrismaticConstraint ekleyin.
Kütüğün ek parçalarını yeni kısıtlamaya atayın, böylece kütük ilişkin olarak bağlı blok parçası.
- Explorer penceresinde kısıtlamayı seçin.
- Özellikler penceresinde,
- Attachment0 değerini AnchorAttachment olarak ayarlayın.
- Attachment1 değerini LogAttachment olarak ayarlayın. Kısıtlama, görünüm alanında görüntülenir.

Explorer penceresinde kısıtlamayı seçin, ardından Özellikler penceresinde:
- ActuatorType değerini Motor olarak ayarlayın. Yeni özellik alanları görüntülenecektir.
- MotorMaxForce değerini 50000 olarak ayarlayıp, hedef doğrusal hıza ulaşmak için 50000 Rowton'a kadar sabit kuvvet uygulayın.
- Velocity değerini 40 olarak ayarlayarak kütüğün 40 stud/saniye hızla hareket etmesini sağlayın.

Ayarladığınız kuvvetin, kütüğü dünyanın negatif X ekseni boyunca 40 stud/saniye hızla hareket ettirdiğini doğrulayın.
Mezzanin menüsünden Run simülasyon modunu seçin ve Oyna butonuna tıklayarak başlayın. Studio, deneyimi mevcut kamera pozisyonunda, 3D uzayda avatarınız olmadan simüle eder.

Başlangıç doğrusal kuvvet uygulama
Bir nesnenin doğrusal hızını değiştirmek için başka bir yol, bir kuvvet dürtüsü uygulamaktır. Kuvvet dürtüsü uygulandıktan sonra, nesne sürtünme gibi bir karşıt kuvvet varsa durgun hale gelinceye kadar yavaşlar ya da karşıt kuvvet yoksa sabit bir doğrusal hızla hareket etmeye devam eder.
Bu teknik, önemli bir oyun olayı, örneğin bir patlama ya da çarpışma sonrası nesneleri hareket ettirmek için faydalıdır, çünkü oyunculara ani geri bildirim sağlar. Aşağıdaki alt bölüm, bir oyuncunun karakterini, başlangıç kuvveti ile gökyüzüne doğru yukarı doğru fırlatmak için bir zıplama pedine çarptığında nasıl fırlatacağınızı öğretecektir; bu değeri kendi oyun gereksinimlerinize uyacak şekilde uyarlayabilirsiniz.
ApplyImpulse kullanma
ApplyImpulse metodu, bir montaja başlangıç doğrusal hızı elde etmek için kuvvet uygular, daha sonra karşıt kuvvetler varsa durma noktasına dek yavaşlar. Montajı hareket ettirmeye başlamak için metodun şunları bilmesi gerekir:
- Hareket ettirmek istediğiniz montaj.
- Başlangıç doğrusal hızına ulaşmak için kuvvetin uygulanacağı eksen.
- Her bir eksene uygulamanız gereken kuvvet miktarı.
Bu değerlerin tümünü bir script içerisinde tanımlayabilirsiniz. Örneğin, örnek script, hareket ettirilecek montajı oyuncu karakterinin Humanoid objesi olarak tanımlar ve ardından oyuncuyu, dünyanın pozitif Y ekseni boyunca yukarı fırlatmak için 2500 Rowton-saniye kuvvet dürtüsü uygular. Unutmayın ki oyuncu karakterlerinin farklı kütleleri vardır, bu nedenle her oyuncuyu yukarı fırlatmak için bu kuvveti artırıp dengelemeniz gerekebilir.
ApplyImpulse kullanarak bir montajı hareket ettirmek için:
Explorer penceresinde ApplyImpulseExample klasörünü genişletin, ardından içindeki JumpPad_DIY modelini genişletin.
JumpPad parçasına bir script ekleyin.
- Parçanın üzerine gelin ve ⊕ butonuna tıklayın. Bir bağlam menüsü görüntülenecektir.
- Menüden bir Script ekleyin ve ek parça, parçanın merkezinde görüntülenecektir.
- Scripti JumpScript olarak yeniden adlandırın.
Varsayılan kodu aşağıdaki kod ile 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)