Inizia
Tutorial intermedi

Crea oggetti in movimento

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Oggetti in movimento sono oggetti che si muovono su uno o più assi all'interno dello spazio 3D. Utilizzando la potenza integrata del motore di simulazione di Roblox, puoi far muovere gli oggetti e interagire con il loro ambiente in un modo che emula il comportamento fisico del mondo reale, familiare e intuitivo per i giocatori, come la gravità, l'aerodinamica e l'attrito.

Utilizzando il file Moving Objects .rbxl come riferimento, questo tutorial spiega come le forze fisiche influenzano il movimento lineare in Studio e ti mostra varie tecniche per spostare oggetti dal punto A al punto B nei tuoi giochi con diversi comportamenti di movimento, inclusa la guida su:

  • Utilizzare un vincolo LinearVelocity per muovere un'intera assemblaggio a una velocità lineare costante.
  • Utilizzare un PrismaticConstraint per vincolare un'assemblaggio a un singolo asse e muoverlo a una velocità lineare costante rispetto a un punto nello spazio 3D.
  • Utilizzare il metodo ApplyImpulse per muovere un'assemblaggio con un impulso iniziale di forza in modo che l'assemblaggio deceleri lentamente nel tempo.

Movimento lineare e forze fisiche

Roblox Studio è un motore di simulazione del mondo reale che emula il comportamento fisico in tempo reale, quindi per prevedere come gli oggetti in movimento lineare possono comportarsi nei giochi, è importante avere una comprensione di alto livello di come gli oggetti si muovono nella vita reale con movimento lineare.

Movimento lineare è il movimento lungo un asse. Ad esempio, quando un blocco ha movimento lineare, si muove lungo un asse impostato.

Un blocco grigio davanti a uno sfondo scuro. L'asse di movimento è evidenziato e punta verso sinistra dello schermo per significare che il blocco si muoverà lungo l'asse Y del mondo.

Il movimento lineare non può esistere senza forze fisiche esterne che spingono o tirano gli oggetti per muoversi. Secondo la prima legge del moto di Newton, gli oggetti fermi rimangono fermi e gli oggetti in movimento rimangono in movimento con una velocità costante a meno che non siano soggetti a una forza esterna. Ad esempio, un blocco fermo rimane fermo a meno che una forza fisica come il vento non lo spinga a muoversi.

Forza è la misura della direzione e della grandezza di una spinta o di un tiro fisico che causa il cambiamento della velocità lineare degli oggetti lungo un asse. Un cambiamento nella velocità è noto come accelerazione. Questo concetto è particolarmente importante per far muovere gli oggetti in Studio; più forza applichi agli oggetti, più rapidamente accelerano.

Questo perché la forza deve essere maggiore di qualsiasi forza fisica che spinge contro l'oggetto, come la gravità o l'attrito. Ad esempio, se posizionassi il blocco su una piastra di metallo, la forza fisica del vento deve superare l'ammontare di attrito dalla piastra di metallo per continuare ad accelerare il blocco. Se la forza del vento non è molto maggiore dell'attrito della piastra di metallo, il blocco accelera, solo più lentamente rispetto all'esempio precedente.

Un blocco grigio davanti a una piastra di metallo grigio scuro con un diagramma che indica che il blocco avrà un'attrito della piastra per rallentare il movimento del blocco dal vento.

Velocità lineare è la misura del movimento di un oggetto, o quanto velocemente l'oggetto cambia la sua posizione lungo un asse nel corso del tempo. Studio misura la velocità lineare in base a quanti stud si muove un oggetto al secondo. Gli stud sono le unità fisiche primarie di Roblox per misurare la lunghezza, e ogni stud equivale a circa 28 cm nel mondo reale.

Un blocco grigio davanti alla texture a griglia 4x4 della base predefinita. Un singolo cubo stud rettangolare è evidenziato.

Comprendere la velocità lineare è importante per progettare il gameplay perché ti aiuta a determinare quanta forza hai bisogno per raggiungere una velocità particolare per i tuoi oggetti in movimento. Ad esempio, quando vuoi spingere gli oggetti verso l'alto, è importante considerare come devi regolare la tua forza per superare la gravità all'interno dell'ambiente in modo che gli oggetti si muovano accuratamente.

Le sezioni seguenti approfondiscono questi concetti mentre impari a muovere oggetti a una velocità lineare costante o iniziale con la forza necessaria per superare eventuali forze fisiche opposte all'interno dell'ambiente. Mentre rivedi questi concetti fisici con le tecniche in arrivo, puoi prevedere più accuratamente come regolare i valori delle proprietà per ottenere qualsiasi comportamento di movimento lineare ideale in Studio.

Mantenere una velocità lineare costante

Affinché un oggetto raggiunga e mantenga una velocità lineare costante, ha bisogno di una forza per superare eventuali forze fisiche opposte che decelerano la velocità lineare dell'oggetto o causano che l'oggetto rimanga fermo. Ad esempio, se vuoi che un oggetto abbia una velocità lineare di [0, 12, 0] in Studio, hai bisogno di abbastanza forza affinché l'oggetto raggiunga e mantenga 12 stud al secondo lungo l'asse Y nel suo ambiente.

La quantità di forza necessaria dipende non solo dalle forze fisiche opposte all'interno dell'ambiente stesso, come la gravità e l'attrito, ma anche dall'oggetto stesso. Ad esempio, se hai due oggetti della stessa forma che si muovono sullo stesso asse, l'oggetto con una maggiore quantità di massa richiede più forza per raggiungere la stessa accelerazione lineare.

La piccola parte triangolare ha una piccola quantità di massa, quindi ha bisogno di meno forza per raggiungere la stessa accelerazione.
La grande parte triangolare ha una grande quantità di massa, quindi ha bisogno di più forza per raggiungere la stessa accelerazione.

Le seguenti sottosezioni utilizzano assemblaggi di diverse forme e dimensioni per insegnarti come muovere un'intero oggetto o solo una parte dell'oggetto a una velocità lineare costante. Mentre sperimenti con diversi valori delle proprietà, imparerai a stimare la massima quantità di forza di cui hai bisogno per gli assemblaggi nei tuoi giochi.

Usa vincoli LinearVelocity

Gli oggetti LinearVelocity sono un tipo di vincolo di movimento che applica forza su un'intera assemblaggio per mantenere una velocità lineare costante. Non bloccando la posizione dell'assemblaggio su un asse durante il suo movimento, l'assemblaggio è libero di ruotare mentre collide con altri oggetti nello spazio 3D. Questo tipo di movimento porta a scenari di gioco sorprendenti che sono più difficili da prevedere per i giocatori.

Quando le ninfee collidono tra loro, cambiano orientamento ma continuano a fluire lungo il fiume a una velocità lineare costante.

Per iniziare a muovere l'assemblaggio, il vincolo LinearVelocity deve sapere:

  • Il punto e la direzione positiva o negativa per applicare una forza.
  • La quantità di stud che vuoi che l'assemblaggio si muova al secondo.
  • La massima quantità di forza che il motore può applicare affinché l'assemblaggio raggiunga la velocità lineare costante.

Per dimostrare questo processo, configurerai una ninfea con un attacco a cui un vincolo LinearVelocity fa riferimento per muovere la ninfea di 15 stud al secondo lungo l'asse X negativo del mondo a una velocità lineare costante.

Una vista ravvicinata di una ninfea. L'aiuto visivo del vincolo della ninfea è visibile e punta a destra, che è l'asse X negativo del mondo.

Aggiungi attacco

Puoi specificare il punto per applicare forza aggiungendo un oggetto Attachment all'assemblaggio, quindi configurando la posizione dell'attacco nello spazio 3D. Il gioco di esempio Moving Objects posiziona un attacco al centro della ninfea in modo che il vincolo possa muovere la mesh dall'attacco lungo un particolare asse.

Gli attacchi includono aiuti visivi per aiutarti a visualizzare i loro assi di movimento. La freccia gialla denota l'asse principale dell'attacco, e la freccia arancione denota l'asse secondario dell'attacco. Anche se nessuno degli assi di movimento influenza il movimento della ninfea nei passaggi di questa tecnica, è importante comprendere questi aiuti visivi per riferimento futuro perché possono assisterti nel determinare il comportamento ideale per diversi tipi di vincoli, come il PrismaticConstraint nella prossima tecnica.

Le frecce di aiuto visivo di un attacco. La freccia gialla che indica l'asse principale dell'attacco punta verso l'alto, e la freccia arancione che indica l'asse secondario dell'attacco punta a destra.

Per aggiungere un attacco:

  1. Nella finestra Explorer, espandi la cartella LinearVelocityExample, quindi espandi il suo modello figlio LilyPad_DIY.

  2. Inserisci un attacco nella mesh Pad.

    1. Passa sopra la mesh e fai clic sul pulsante ⊕. Viene visualizzato un menu contestuale.
    2. Dal menu, inserisci un Attachment. L'attacco viene visualizzato al centro della parte.
    3. Rinomina l'attacco in MoveAttachment.
    Una vista ravvicinata di una ninfea e del suo aiuto visivo dell'attacco. L'asse principale punta lontano dalla fotocamera, e l'asse secondario punta verso l'alto.

Configura vincolo

Ora che la tua mesh ha un punto fisso per muovere la ninfea, puoi configurare le proprietà di un vincolo LinearVelocity per specificare la direzione e la grandezza per la velocità lineare costante, la quantità di stud che vuoi che la mesh si muova al secondo, e la massima quantità di forza che il motore può applicare affinché la mesh raggiunga una velocità lineare costante.

Il gioco di esempio Moving Objects applica fino a 5000 Rowtons di forza costante per muovere la ninfea di 15 stud al secondo lungo l'asse X negativo del mondo a una velocità lineare costante. I Rowtons sono le unità fisiche primarie di Roblox per misurare la forza. Per fare riferimento alle unità fisiche di Roblox e a come si convertono in unità metriche, vedere Unità di Roblox.

Per configurare un vincolo LinearVelocity:

  1. Per rendere il vincolo visibile nella vista per poter fare riferimento alla sua direzione lineare, abilita Mostra dettagli vincolo dal menu Visualizza di Studio.

  2. Inserisci un vincolo LinearVelocity nella mesh Pad.

    1. Nella finestra Explorer, passa sopra la mesh, quindi fai clic sull'icona ⊕. Viene visualizzato un menu contestuale.
    2. Dal menu contestuale, inserisci LinearVelocity.
  3. Assegna l'attacco della mesh al nuovo vincolo.

    1. Nella finestra Explorer, seleziona il vincolo.
    2. Nella finestra Proprietà,
      1. Imposta Attachment0 su MoveAttachment.
      2. Imposta MaxForce su 5000 per applicare fino a 5000 Rowtons di forza costante per raggiungere la velocità lineare target.
      3. Mantieni RelativeTo su World per muovere la ninfea rispetto alla posizione e all'orientamento del mondo.
      4. Imposta VelocityConstraint su Line per vincolare la forza lungo una linea dall'attacco.
      5. Imposta LineDirection su -1, 0, 0 per muovere la ninfea lungo l'asse X negativo del mondo. Nota che se impostassi questa proprietà su 1, 0, 0, la ninfea si muoverebbe lungo l'asse X positivo del mondo.
      6. Imposta LineVelocity su 15 per muovere la ninfea di 15 stud al secondo.
    Una vista ravvicinata di una ninfea e della sua freccia di aiuto visivo del vincolo che punta a destra, o l'asse X negativo del mondo.
  4. Verifica che la quantità di forza impostata muova la mesh di 15 stud al secondo lungo l'asse X negativo del mondo.

    • Seleziona la modalità di simulazione Esegui dal menu a discesa della mezzanina e fai clic sul pulsante Gioca per iniziare. Studio simula il gioco nella posizione attuale della telecamera senza il tuo avatar nello spazio 3D.

      Opzione Esegui nel menu a discesa delle modalità di test della mezzanina di Studio.

Usa vincoli PrismaticConstraint

Gli oggetti PrismaticConstraint sono un tipo di vincolo meccanico che crea un giunto rigido tra due attacchi, consentendo ai loro assemblaggi genitori di muoversi lungo un asse rispetto l'uno all'altro. Bloccando la posizione di entrambi gli assemblaggi su un singolo asse, ciascun assemblaggio può ruotare solo se ruotano insieme nella stessa direzione.

Questo tipo di movimento porta a scenari di gioco stabili che sono più facili da prevedere per i giocatori. Ad esempio, il gioco di esempio Moving Objects utilizza oggetti PrismaticConstraint per muovere piattaforme di tronchi che i giocatori possono utilizzare per attraversare con cautela un enorme fiume.

Quando imposti PrismaticConstraint.ActuatorType su Motor, questo vincolo applica forza sui due attacchi con l'obiettivo che gli attacchi raggiungano e mantengano una velocità lineare costante. Se ancorassi uno degli assemblaggi genitori degli attacchi, la forza continuerebbe a muovere l'assemblaggio non ancorato a una velocità lineare costante mentre l'assemblaggio ancorato rimane fermo.

Per iniziare a muovere l'assemblaggio, il vincolo PrismaticConstraint deve sapere:

  • Il punto e la direzione positiva o negativa per applicare una forza.
  • La quantità di stud che vuoi che gli attacchi si muovano al secondo.
  • La massima quantità di forza che il motore può applicare affinché gli attacchi e i loro assemblaggi genitori raggiungano una velocità lineare costante.

Per dimostrare questo processo, configurerai un assemblaggio di tronchi con due oggetti che hanno attacchi figli a cui un PrismaticConstraint fa riferimento per muovere il tronco di 40 stud al secondo lungo l'asse X negativo del mondo a una velocità lineare costante.

Una vista ravvicinata di un tronco marrone sopra un fiume. L'aiuto visivo del vincolo del tronco è visibile e punta a destra, o l'asse X negativo del mondo.

Configura attacchi

Puoi specificare la direzione per muovere un particolare oggetto all'interno di un assemblaggio aggiungendo due oggetti Attachment all'assemblaggio, quindi configurando il loro allineamento e orientamento nello spazio 3D. Il gioco di esempio Moving Objects allinea due attacchi lungo l'asse X del mondo vicino alla posizione in cui il tronco non ancorato si sovrappone alla parte ancorata, e orienta ciascun asse principale dell'attacco per affrontare l'asse X negativo del mondo.

Quando configuri il tuo vincolo PrismaticConstraint nella sezione successiva, muoverà il tronco in relazione alla parte ancorata. In altre parole, il tronco si muoverà lontano dalla parte stazionaria che non può muoversi perché è ancorata nello spazio 3D.

Per configurare gli attacchi per il vincolo prismatico:

  1. Nella finestra Explorer, espandi la cartella PrismaticConstraintExample, quindi espandi il suo modello figlio Log_DIY.

  2. Inserisci un attacco nella mesh Log.

    1. Passa sopra la mesh e fai clic sul pulsante ⊕. Viene visualizzato un menu contestuale.
    2. Dal menu, inserisci un Attachment. L'attacco viene visualizzato al centro della parte.
    3. Rinomina l'attacco in LogAttachment.
    Una vista ravvicinata di un tronco e del suo aiuto visivo dell'attacco. L'asse principale punta verso la fotocamera, e l'asse secondario punta verso l'alto.
  3. Utilizzando lo stesso processo, inserisci un attacco nella parte Anchor, quindi rinomina l'attacco in AnchorAttachment.

    Una vista ravvicinata di un tronco e dei suoi due aiuti visivi dell'attacco. L'asse principale del nuovo aiuto visivo dell'attacco punta a destra, e l'asse secondario punta verso l'alto.
  4. Utilizzando lo strumento View Selector come riferimento per le coordinate del mondo, ruota LogAttachment e AnchorAttachment finché ciascun asse principale dell'attacco non punta verso l'asse X negativo del mondo.

    Una vista ravvicinata di un tronco e del suo aiuto visivo dell'attacco. Entrambi gli attacchi hanno un asse principale che punta a destra, e un asse secondario che punta verso l'alto.
  5. Riposiziona AnchorAttachment in modo che entrambi gli attacchi siano allineati sull'asse X del mondo.

    Una vista ravvicinata di un tronco e dei suoi aiuti visivi dell'attacco che ora sono posizionati orizzontalmente. Entrambi gli attacchi hanno un asse principale che punta a destra, e un asse secondario che punta verso l'alto.

Configura vincolo

Ora che i tuoi attacchi sono allineati sullo stesso asse e affrontano la stessa direzione in cui vuoi che il tronco si muova, puoi configurare le proprietà di un vincolo PrismaticConstraint per specificare se applicare la velocità lineare costante target nella direzione positiva o negativa di ciascun asse principale degli attacchi, la quantità di stud che vuoi che gli attacchi si muovano al secondo, e la massima quantità di forza che il motore può applicare affinché il tronco raggiunga una velocità lineare costante.

Sebbene tu possa scegliere valori diversi per i tuoi casi d'uso, il gioco di esempio Moving Objects applica fino a 50000 Rowtons di forza costante per muovere gli attacchi di 40 radian al secondo lungo l'asse X negativo del mondo a una velocità lineare costante. Tuttavia, poiché l'attacco di ancoraggio si trova in un oggetto ancorato, solo l'attacco del tronco può muoversi.

Per configurare un vincolo prismatico:

  1. Inserisci un oggetto PrismaticConstraint nella mesh Log.

    1. Nella finestra Explorer, passa sopra la mesh, quindi fai clic sull'icona ⊕. Viene visualizzato un menu contestuale.
    2. Dal menu contestuale, inserisci un PrismaticConstraint.
  2. Assegna gli attacchi del tronco al nuovo vincolo in modo che il tronco si muova in relazione a la parte bloccata.

    1. Nella finestra Explorer, seleziona il vincolo.
    2. Nella finestra Proprietà,
      1. Imposta Attachment0 su AnchorAttachment.
      2. Imposta Attachment1 su LogAttachment. Il vincolo viene visualizzato nella vista.
    Una vista ravvicinata di un tronco e del suo aiuto visivo del vincolo. Non ha un aiuto visivo a freccia perché non ha ancora una velocità impostata.
  3. Nella finestra Explorer, seleziona il vincolo, quindi nella finestra Proprietà:

    1. Imposta ActuatorType su Motor. Vengono visualizzati nuovi campi di proprietà.
    2. Imposta MotorMaxForce su 50000 per applicare fino a 50000 Rowtons di forza costante per raggiungere la velocità lineare target.
    3. Imposta Velocity su 40 per muovere il tronco di 40 stud al secondo.
    Una vista ravvicinata di un tronco e della sua freccia di aiuto visivo del vincolo che punta a destra, o l'asse X negativo del mondo.
  4. Verifica che la quantità di forza impostata muova il tronco di 40 stud al secondo lungo l'asse X negativo del mondo.

    • Seleziona la modalità di simulazione Esegui dal menu a discesa della mezzanina e fai clic sul pulsante Gioca per iniziare. Studio simula il gioco nella posizione attuale della telecamera senza il tuo avatar nello spazio 3D.

      Opzione Esegui nel menu a discesa delle modalità di test della mezzanina di Studio.

Applica una forza lineare iniziale

Un altro modo per cambiare la velocità lineare di un oggetto è applicare un impulso di forza. Dopo l'impulso di forza, l'oggetto decelera fino a fermarsi se c'è una forza opposta come l'attrito, oppure rimane in movimento con una velocità lineare costante se non ci sono forze opposte.

Questa tecnica è utile per muovere oggetti dopo un evento significativo nel gameplay, come un'esplosione o una collisione impattante, perché fornisce ai giocatori un feedback istantaneo. Per dimostrare, la seguente sottosezione ti insegna come lanciare il personaggio di un giocatore verso l'alto nel cielo quando collide con un pad di salto con un impulso iniziale che puoi adattare con nuovi valori per soddisfare i tuoi requisiti di gameplay.

Usa ApplyImpulse

Il metodo ApplyImpulse applica forza su un'intera assemblaggio per ottenere una velocità lineare iniziale prima di rallentare fino a fermarsi quando ci sono forze opposte. Per iniziare a muovere l'assemblaggio, il metodo deve sapere:

  • L'assemblaggio da muovere.
  • L'asse su cui applicare forza per raggiungere una velocità lineare iniziale.
  • La quantità di forza da applicare a ciascun asse.

Puoi definire tutti questi valori in uno script. Ad esempio, lo script di esempio definisce l'assemblaggio da muovere come l'oggetto Humanoid del personaggio del giocatore, quindi applica un impulso di forza di 2500 Rowton-secondi per lanciare il giocatore verso l'alto lungo l'asse Y positivo del mondo. Nota che i personaggi dei giocatori hanno diverse quantità di massa, quindi potresti dover aumentare e bilanciare questa forza per lanciare ogni giocatore senza lanciare i personaggi dei giocatori con quantità di massa più piccole troppo in alto.

Per muovere un'assemblaggio utilizzando ApplyImpulse:

  1. Nella finestra Explorer, espandi la cartella ApplyImpulseExample, quindi espandi il suo modello figlio JumpPad_DIY.

  2. Inserisci uno script nella parte JumpPad.

    1. Passa sopra la parte e fai clic sul pulsante ⊕. Viene visualizzato un menu contestuale.
    2. Dal menu, inserisci un Script. L'attacco viene visualizzato al centro della parte.
    3. Rinomina lo script in JumpScript.
  3. Sostituisci il codice predefinito con il seguente codice:

    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)
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.