Inizia
Tutorial intermedi

Crea oggetti che ruotano

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

Oggetti che ruotano sono oggetti che ruotano su uno o più assi all'interno dello spazio 3D. Utilizzando la potenza integrata del motore di simulazione di Roblox, puoi far ruotare 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 Spinning Objects .rbxl come riferimento, questo tutorial spiega come le forze fisiche influenzano il movimento angolare in Studio e ti mostra varie tecniche per far ruotare oggetti nei tuoi giochi con comportamenti di rotazione diversi, inclusa la guida su:

  • Utilizzare un vincolo AngularVelocity per far ruotare un'intera assemblaggio a una velocità angolare costante.
  • Utilizzare un vincolo meccanico HingeConstraint per far ruotare una parte all'interno di un assemblaggio a una velocità angolare costante mentre il resto dell'assemblaggio rimane fermo.
  • Utilizzare il metodo ApplyAngularImpulse per far ruotare un assemblaggio con un impulso iniziale di forza angolare in modo che l'assemblaggio deceleri lentamente nel tempo.

Movimento angolare e forze fisiche

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

Movimento angolare, o movimento rotazionale, è il movimento attorno a un punto fisso o asse. Ad esempio, quando un'elica ha movimento angolare, ruota attorno al suo asse di rotazione nel mezzo dell'elica.

Il movimento angolare non può esistere senza forze fisiche esterne che spingono o tirano gli oggetti per farli ruotare. 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'elica ferma rimane ferma a meno che una forza fisica come il vento non la spinga a ruotare.

Momento torcentale è la misura della forza fisica che causa la rotazione degli oggetti ed è responsabile dell'ottenimento dell'accelerazione angolare. Questo concetto è particolarmente importante per far ruotare gli oggetti in Studio; maggiore è il momento torcentale applicato agli oggetti, più rapidamente possono accelerare.

Questo perché il momento torcentale deve essere maggiore di qualsiasi forza fisica direzionale che spinge contro l'oggetto, come la gravità o l'attrito. Ad esempio, se posizionassi l'elica nella terra, la forza fisica del vento deve superare l'attrito della terra per continuare ad accelerare l'elica rotante. Se la forza del vento non è molto maggiore dell'attrito della terra, l'elica accelera, ma più lentamente rispetto all'esempio precedente.

Velocità angolare è la misura della velocità di rotazione di un oggetto, o quanto velocemente l'oggetto ruota attorno a un punto fisso o asse nel corso del tempo. Studio misura la velocità angolare in base a quanti radianti un oggetto ruota al secondo. Ci sono 2π radianti (6.283) in una rotazione, quindi affinché un oggetto compia una rotazione completa al secondo, deve avere abbastanza momento torcentale per ruotare circa 6 radianti. Comprendere la velocità angolare è importante per progettare il gameplay nei tuoi giochi perché ti aiuta a determinare quanto momento torcentale hai bisogno per ottenere una particolare accelerazione per i tuoi oggetti rotanti.

Le sezioni seguenti approfondiscono questi concetti mentre impari a far ruotare oggetti a una velocità angolare costante o iniziale con il momento torcentale necessario per superare qualsiasi forza fisica opposta all'interno dell'ambiente. Mentre rivedi questi concetti fisici con le tecniche che seguiranno, puoi prevedere più accuratamente come regolare i valori delle proprietà per ottenere qualsiasi comportamento di rotazione ideale in Studio.

Mantenere una forza angolare costante

Affinché un oggetto raggiunga e mantenga una velocità angolare costante, ha bisogno di una forza angolare per superare qualsiasi forza fisica opposta che decelera la velocità angolare dell'oggetto o causa che l'oggetto rimanga fermo. Ad esempio, se desideri che un oggetto abbia una velocità angolare di [0, 12, 0] in Studio, hai bisogno di abbastanza momento torcentale affinché l'oggetto raggiunga e mantenga 12 radianti al secondo lungo l'asse Y nel suo ambiente, o circa due rotazioni complete al secondo.

La quantità di momento torcentale che applichi ai tuoi oggetti 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 ruotano sullo stesso asse, l'oggetto più grande con un maggiore momento d'inerzia richiede più momento torcentale per ottenere la stessa accelerazione angolare.

La piccola parte triangolare ha un momento d'inerzia inferiore, quindi ha bisogno di meno forza angolare per ottenere la stessa accelerazione.
La grande parte triangolare ha un momento d'inerzia maggiore, quindi ha bisogno di più forza angolare per ottenere la stessa accelerazione.

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

Usa vincoli AngularVelocity

Gli oggetti AngularVelocity sono un tipo di vincolo di movimento che applica momento torcentale su un'intera assemblaggio per mantenere una velocità angolare costante. Per iniziare a far ruotare l'assemblaggio, il vincolo AngularVelocity deve sapere:

  • Il punto e la direzione positiva o negativa per applicare una forza angolare.
  • La quantità di radianti che desideri che l'assemblaggio ruoti al secondo.
  • La massima quantità di momento torcentale che il motore può applicare affinché l'assemblaggio raggiunga una velocità angolare costante.

Per dimostrare questo processo, aggiungerai un blocco al tuo spazio di lavoro con un attacco a cui un vincolo AngularVelocity fa riferimento per far ruotare il blocco 6 radianti al secondo lungo l'asse Y del mondo a una velocità angolare costante, o circa una rotazione completa.

Aggiungi attacco

Puoi specificare il punto fisso per far ruotare un assemblaggio aggiungendo un oggetto Attachment all'assemblaggio, quindi configurando la posizione dell'attacco nello spazio 3D. Il gioco di esempio Spinning Objects posiziona un attacco al centro di un blocco in modo che il vincolo possa far ruotare la parte in senso antiorario attorno al centro di se stessa.

Gli attacchi includono aiuti visivi per aiutarti a visualizzare i loro assi di rotazione. La freccia gialla denota l'asse principale dell'attacco, e la freccia arancione denota l'asse secondario dell'attacco. Anche se nessuno dei due assi di rotazione influenza la rotazione del blocco 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 HingeConstraint nella prossima tecnica.

Per aggiungere un attacco:

  1. Nella finestra Explorer, inserisci una parte blocco nel Workspace.

  2. Inserisci un attacco nella nuova parte.

    1. Nella finestra Explorer, passa sopra la parte 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 SpinAttachment.

Configura vincolo

Ora che il tuo blocco ha un punto fisso per far ruotare il blocco, puoi configurare le proprietà di un vincolo AngularVelocity per specificare la direzione di rotazione, l'asse o gli assi su cui applicare una velocità angolare costante target, la quantità di radianti che desideri che il blocco ruoti al secondo e la massima quantità di momento torcentale che il motore può applicare affinché il blocco raggiunga una velocità angolare costante.

Il gioco di esempio Spinning Objects applica fino a 1000 Rowton-studs di forza angolare costante per far ruotare il blocco 6 radianti al secondo lungo l'asse Y del mondo a una velocità angolare costante. I Rowton-studs sono le unità fisiche primarie di Roblox per misurare il momento torcentale. Per fare riferimento alle unità fisiche di Roblox e a come si convertono in unità metriche, vedere Unità di Roblox.

Per configurare un vincolo AngularVelocity:

  1. Per rendere il vincolo visibile nel viewport in modo da poter fare riferimento alla sua direzione di rotazione, abilita Mostra dettagli vincolo dal menu Visualizza di Studio.

  2. Inserisci un vincolo AngularVelocity nella parte.

    1. Nella finestra Explorer, passa sopra la parte, quindi fai clic sull'icona ⊕. Viene visualizzato un menu contestuale.
    2. Dal menu contestuale, inserisci AngularVelocity. L'aiuto visivo del vincolo viene visualizzato nel mezzo della parte.
  3. Assegna l'attacco della parte al nuovo vincolo.

    1. Nella finestra Explorer, seleziona il vincolo.
    2. Nella finestra Proprietà,
      1. Imposta Attachment0 su SpinAttachment.
      2. Imposta AngularVelocity su 0, 6, 0 per far ruotare la parte 6 radianti al secondo lungo l'asse Y. Nota che se impostassi questa proprietà su 0, -6, 0, il blocco ruoterebbe in senso orario.
      3. Imposta MaxTorque su 1000 per applicare fino a 1000 Rowton-studs di forza angolare costante al secondo per raggiungere la velocità angolare target.
      4. Mantieni RelativeTo su World per far ruotare il blocco rispetto alla posizione e all'orientamento del mondo.
  4. Verifica che la quantità di momento torcentale impostata faccia ruotare il blocco 6 radianti al secondo lungo l'asse Y 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.

Potresti dover regolare il tuo momento torcentale a seconda della scala del tuo blocco e di eventuali forze fisiche opposte nel tuo ambiente. Ad esempio, le proprietà del vincolo AngularVelocity nel gioco di esempio funzionano per una parte blocco con una dimensione predefinita di 4, 1, 2 su una piattaforma piatta con un materiale plastico, e un ambiente con la gravità predefinita classica.

Tuttavia, se il tuo blocco è di dimensioni maggiori e su un terreno erboso, devi aumentare la proprietà AngularVelocity.MaxTorque perché la forza angolare deve superare sia la massa del blocco che l'attrito dell'ambiente. Ad esempio, la grande parte blocco che è quadrupla rispetto alla dimensione della parte di esempio ha bisogno di almeno 300000 Rowton-studs di forza angolare costante per raggiungere la velocità angolare impostata!

Usa vincoli HingeConstraint

Gli oggetti HingeConstraint sono un tipo di vincolo meccanico che consente a due attacchi di ruotare attorno a un asse, vincolando gli attacchi alla stessa posizione e ai loro assi principali nella stessa direzione. Quando imposti HingeConstraint.ActuatorType su Motore, questo vincolo applica momento torcentale sui due attacchi con l'obiettivo che gli attacchi raggiungano e mantengano una velocità angolare costante.

Inoltre, quando posizioni gli attacchi in un assemblaggio con due oggetti, gli oggetti si bloccano insieme e tentano di ruotare insieme secondo l'asse principale fisso dell'attacco. Se ancorassi uno di questi oggetti, la forza angolare continuerebbe a far ruotare l'altro oggetto a una velocità angolare costante mentre il resto dell'assemblaggio rimane fermo.

Ad esempio, per iniziare a far ruotare un particolare oggetto all'interno di un assemblaggio, il vincolo HingeConstraint deve sapere:

  • La posizione in cui desideri che gli attacchi si sovrappongano.
  • Il punto e la direzione positiva o negativa per applicare una forza angolare.
  • La quantità di radianti che desideri che l'attacco ruoti al secondo.
  • La massima quantità di momento torcentale che il motore può applicare affinché l'attacco raggiunga una velocità angolare costante.

Per dimostrare questo processo, aggiungerai un assemblaggio di eliche con due oggetti al tuo spazio di lavoro con attacchi in entrambi gli oggetti a cui un vincolo HingeConstraint fa riferimento per far ruotare l'elica 3 radianti al secondo (circa metà di una rotazione completa al secondo) lungo l'asse Y a una velocità angolare costante mentre la base dell'elica rimane ferma.

Ottieni asset dell'elica

Il Creator Store è una scheda della Toolbox che puoi utilizzare per trovare tutti gli asset creati da Roblox e dalla comunità di Roblox per l'uso all'interno dei tuoi progetti, inclusi modelli, immagini, mesh, audio, plugin, video e font. Puoi utilizzare il Creator Store per aggiungere un singolo asset o una libreria di asset direttamente in un gioco aperto.

Questo tutorial fa riferimento a un modello di elica che puoi utilizzare mentre replichi ogni passaggio della tecnica HingeConstraint per far ruotare gli oggetti. Per ottenere questo asset dell'elica dal tuo inventario nel tuo gioco:

  1. Aggiungi l'elica al tuo inventario.

    1. Naviga alla pagina dei dettagli dell'asset nel Creator Store.
    2. Nell'angolo in alto a destra, fai clic sul pulsante Ottieni modello. L'asset dell'elica è ora nel tuo inventario e puoi riutilizzarlo in qualsiasi progetto sulla piattaforma.
  2. In Studio, naviga alla scheda Home, quindi fai clic sul pulsante Toolbox. Si apre la finestra Toolbox.

    Toolbox evidenziato nella barra degli strumenti di Studio.
  3. Nella finestra Toolbox, fai clic sulla scheda Inventario. Viene visualizzato il filtro I miei modelli.

  4. Fai clic sulla tessera Elica. Il modello viene visualizzato nel tuo viewport.

Configura attacchi

Puoi specificare sia la posizione in cui desideri che gli attacchi si sovrappongano sia la direzione del movimento rotazionale per far ruotare 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 Spinning Objects allinea due attacchi vicino alla posizione in cui l'elica non ancorata si sovrappone alla base ancorata e orienta il loro asse principale di rotazione verso l'alto in modo che ruotino in senso antiorario. L'attacco di base non può ruotare in questo esempio perché la base è ancorata.

Per configurare gli attacchi per il vincolo a cerniera:

  1. Inserisci un oggetto Attachment in Head e Base.

    1. Nella finestra Explorer, passa sopra Head e fai clic sul pulsante ⊕. Viene visualizzato un menu contestuale.
    2. Dal menu, inserisci un Attachment.
    3. Ripeti questo processo per Base.
    4. Rinomina entrambi gli attacchi in HeadAttachment e BaseAttachment, rispettivamente.
  2. Ruota HeadAttachment e BaseAttachment in modo che l'asse principale di ciascun attacco punti verso l'alto lungo l'asse Y. Questo dice a Studio di ruotare gli attacchi in senso antiorario.

  3. Sposta BaseAttachment in cima a Base e HeadAttachment sul bordo inferiore di Propeller. Questo dice a Studio dove connettere la cerniera stessa e sovrapporre entrambi gli attacchi durante il runtime.

Configura vincolo

Ora che i tuoi attacchi hanno una posizione per sovrapporsi e una direzione di movimento rotazionale, puoi configurare le proprietà di un vincolo HingeConstraint per specificare la quantità di radianti che desideri che l'attacco ruoti al secondo e la massima quantità di momento torcentale che il motore può applicare affinché l'attacco raggiunga una velocità angolare costante.

Simile alla tecnica precedente, il gioco di esempio Spinning Objects applica fino a 1000 Rowton-studs di forza angolare costante per far ruotare l'attacco 3 radianti al secondo lungo l'asse Y a una velocità angolare costante. Tuttavia, poiché l'attacco di base si trova in un oggetto ancorato, solo l'attacco dell'elica può ruotare.

Per configurare un vincolo a cerniera:

  1. Inserisci un oggetto HingeConstraint in Head.

    1. Nella finestra Explorer, passa sopra Head, quindi fai clic sull'icona ⊕. Viene visualizzato un menu contestuale.
    2. Dal menu contestuale, inserisci un HingeConstraint.
  2. Assegna gli attacchi dell'elica al nuovo vincolo in modo che l'elica ruoti in relazione a alla base ancorata.

    1. Nella finestra Explorer, seleziona il vincolo.
    2. Nella finestra Proprietà,
      1. Imposta Attachment0 su BaseAttachment.
      2. Imposta Attachment1 su HeadAttachment. La cerniera viene visualizzata nel viewport.
  3. Nella finestra Explorer, seleziona il vincolo, quindi nella finestra Proprietà,

    1. Imposta ActuatorType su Motore. Vengono visualizzati nuovi campi di proprietà.
    2. Imposta MotorMaxTorque su 1000 per applicare fino a 1000 Rowton-studs di forza angolare costante per raggiungere la velocità angolare target.
    3. Imposta AngularVelocity su 3 per far ruotare la testa dell'elica 3 radianti al secondo.
  4. Verifica che la quantità di momento torcentale impostata faccia ruotare l'elica 3 radianti al secondo lungo l'asse Y.

    • 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 angolare iniziale

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

Questa tecnica è utile per far ruotare oggetti dopo un evento significativo di gameplay o meteorologico, come una forte raffica di vento, perché fornisce ai giocatori un feedback istantaneo. Per dimostrare, la seguente sottosezione ti insegna come far ruotare un assemblaggio con una forza angolare iniziale casuale che puoi adattare con nuovi valori per soddisfare i tuoi requisiti di gameplay.

Usa ApplyAngularImpulse

Il metodo ApplyAngularImpulse applica momento torcentale su un'intera assemblaggio per ottenere una velocità angolare iniziale prima di rallentare fino a fermarsi. Per iniziare a far ruotare l'assemblaggio, il metodo deve sapere:

  • L'assemblaggio da far ruotare.
  • L'asse su cui applicare il momento torcentale per raggiungere una velocità angolare iniziale.
  • La quantità di momento torcentale da applicare a ciascun asse.

Puoi definire tutti questi valori in uno script. Ad esempio, lo script di esempio definisce l'assemblaggio da far ruotare come il genitore dello script, quindi applica un impulso casuale di forza angolare tra 0 e 100 Rowton-studs lungo l'asse Y.

Per far ruotare un assemblaggio utilizzando ApplyAngularImpulse:

  1. Inserisci una parte sfera nel Workspace. Il campione utilizza una sfera con un MaterialVariant in modo da poter visualizzare chiaramente il movimento della sfera.

  2. Inserisci uno script nella nuova parte.

    1. Nella finestra Explorer, passa sopra la parte e fai clic sul pulsante ⊕. Viene visualizzato un menu contestuale.
    2. Dal menu, inserisci un Script.
  3. Sostituisci il codice predefinito con il seguente codice:

local part = script.Parent
local impulse = Vector3.new(0, math.random(0, 100), 0)
part:ApplyAngularImpulse(impulse)
© 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.