Alembic¶
Från hemsidan för Alembic:
Alembic är ett öppet ramverk för utbyte av datorgrafik. Alembic destillerar komplexa, animerade scener till en icke-procedurell, applikationsoberoende uppsättning geometriska resultat. Denna ”destillering” av scener till bakad geometri är exakt analog med destilleringen av belysnings- och renderingsscener till renderade bilddata.
Alembic är inriktat på att effektivt lagra de beräknade resultaten av komplexa procedurella geometriska konstruktioner. Det är mycket specifikt inte inriktat på att lagra den komplexa beroendegrafen för procedurverktyg som används för att skapa de beräknade resultaten. Alembic kommer till exempel att effektivt lagra de animerade vertexpositionerna och animerade transformationer som är resultatet av en godtyckligt komplex animerings- och simuleringsprocess som kan omfatta omslutande, korrigerande former, volymbevarande simuleringar, tyg- och köttsimuleringar och så vidare. Alembic kommer inte att försöka lagra en representation av det nätverk av beräkningar (riggar, i princip) som krävs för att producera de slutliga, animerade vertexpositionerna och animerade transformationerna.
I korthet kan Alembic användas för att skriva ett animerat mesh till en hårddisk och läsa tillbaka det snabbt och effektivt. Det innebär att ett mesh kan animeras med en mycket CPU-intensiv rigg och sedan ”bakas” till en Alembic-fil. Slutligen kan den laddas in i shot-filen för skuggning och belysning med endast måttlig CPU-användning.
På grund av Alembic-standardens öppna källkod och C++-biblioteket som implementerar den standarden kan Blender användas i en hybrid pipeline. Till exempel kan andra program, som Houdini eller Maya, exportera filer till Alembic, som sedan kan laddas, skuggas och renderas i Blender. Det är också möjligt att animera karaktärer (eller andra modeller) i Blender, exportera till Alembic och ladda dessa filer i annan programvara för vidare bearbetning.
Importera Alembic-filer¶
Vid import av en Alembic-fil läggs Mesh Sequence Cache-modifierare automatiskt till i tidsvarierande maskor. För tidsvarierande objekttransformationer (dvs. animering av rotation, plats eller skala) används Transform Cache Constraint.
Allmänt¶
- Skala
Värde med vilket objekten kan förstoras eller förminskas i förhållande till världens ursprung
Alternativ¶
- Relativ väg
Välj filen i förhållande till blend-filen.
- Ställ in Frame Range
Om markerad, uppdatera scenens start- och slutbild för att matcha dem i Alembic-arkivet.
- Är sekvens
Sätts till true om cachen delas upp i separata filer.
- Validera maskor
Kontrollera om det importerade nätet innehåller korrupta data och åtgärda dem vid behov. När detta alternativ är inaktiverat kan felaktiga data orsaka kraschar vid visning eller redigering av mesh. Detta alternativ gör importen långsammare, men rekommenderas eftersom datafel inte alltid är uppenbara.
- Lägg alltid till cache-läsare
Lägg till cachemodifierare och begränsningar för importerade objekt även om de inte är animerade så att de kan uppdateras när Alembic-arkivet laddas om.
Exportera till Alembic-filer¶
I detta avsnitt beskrivs effekten av de olika exportalternativen.
Allmänt¶

Allmänna alternativ.¶
- Skala
Detta ställer in den globala skalan för Alembic-filen. Håll den på standardvärdet 1,0 för att använda Blenders enheter.
- Inkludera
- Utvalda objekt
När funktionen är aktiverad exporteras endast de markerade objekten. När den är inaktiverad exporteras alla objekt.
- Synliga objekt
Begränsar exporten till de scensamlingar som för närvarande är synliga.
Scenen¶

Alternativ för scen.¶
- Ramens start, slut
Ställer in det bildintervall som ska exporteras till Alembic. Standardvärdet är den aktuella scenens bildintervall.
- Sampling av underram
Dessa alternativ styr samplingen av animationer under bildrutan.
- Prover Transformera
Transform Samples anger hur många gånger per bildruta som animerade transformationer ska samplas och skrivas till Alembic.
- Geometri
Geometry Samples ställer in samma sak, men då för animerad geometri.
- Shutter öppen, stängd
Shutter Open/Close definierar intervallet [open, close] under vilket dessa prover tas. Det giltiga intervallet är -1 till 1, där -1 anger föregående bildruta, 0 anger aktuell bildruta och 1 anger nästa bildruta.
Om man t.ex. vill ha information om detaljerad rörelseoskärpa i mesh kan några delbilder runt den aktuella bilden skrivas till Alembic med ett sampelantal på 5, Shutter Open vid -0,25 och Shutter Close vid 0,25. Detta efterliknar en ”180 graders” slutare, som öppnas 90 grader före bildrutan och stängs 90 grader efter bildrutan.
- Använd instansiering
Exporterar data från duplicated eller instanced-objekt som Alembic-instanser; snabbar upp exporten och kan inaktiveras för kompatibilitet med annan programvara.
- Anpassade egenskaper
När den är aktiverad (vilket den är som standard) exporteras anpassade egenskaper även till Alembic. Följande typer av anpassade egenskaper stöds:
Tal (int, float) och strängar. Dessa exporteras som matriser med ett enda element, så 47 kommer att exporteras som [47] till Alembic och ”Agent” till [”Agent”]. Detta motsvarar beteendet hos många andra DCCs.
Listor med siffror och strängar. Dessa exporteras som de är, så [327, 47] exporteras som [327, 47].
Matriser och nästlade matriser av tal. Dessa plattas ut till en lång lista, så att en 3×2 matris med siffror blir en lista med 6 siffror. På samma sätt kommer nästlade listor [[1, 2, 3], [4, 5], [6]] att exporteras som [1, 2, 3, 4, 5, 6].
Siffror kan också animeras.
- Platt hierarki
När funktionen är inaktiverad exporteras även förälder/barn-relationer mellan objekt. Alla överordnade objekt som inte exporteras själva, men som har barn som är exporterade, ersätts av ett tomt. När funktionen är aktiverad exporteras inte förälder/barn-relationer och alla transformationer skrivs i världskoordinater.
- Inställningar
Bestämmer synligheten för objekt, modifieringsinställningar och andra områden där det finns olika inställningar för vyport och rendering.
- Rendera:
Använd Render-inställningar för objektsynlighet, modifieringsinställningar etc.
- Visningsområde:
Använd Viewport-inställningar för objektsynlighet, modifieringsinställningar etc.
Geometri¶

Geometrialternativ.¶
- UV-koordinater
När funktionen är aktiverad exporteras UV-kartor. Även om Alembic-standarden bara stöder en enda UV-karta, exporterar Blender alla UV-kartor på ett sätt som bör kunna läsas av andra program.
- Sammanfoga UV-bilder
När funktionen är aktiverad slås UV-bilder som delar samma vertex och plats samman till en enda UV-bild. Den exporterade filen kan vara något mindre.
- Normaler
När den är aktiverad exporteras ett objekts Normals. Se Custom Split Normals of Meshes nedan för mer information.
- Färgattribut
När den är aktiverad exporteras färgattribut.
- Ansiktsuppsättningar
Exporterar materialnamnen per yta. Materialdata exporteras inte utan endast materialnamn.
- Indelningar
- Tillämpa
Tillämpar alla Modifierare för underindelningsytor innan du skriver till Alembic.
- Använd schema
Skriver polygonala nät med hjälp av Alembic-schemat ”SubD” i stället för schemat ”PolyMesh”. Detta ställer in ett importalternativ för programmet, med vilket filen öppnas, för att tillämpa sin form av en icke-destruktiv underindelning.
- Triangulera
Triangulerar nätet innan det skrivs till Alembic. För mer information om det specifika alternativet, se Triangulate modifierare.
Partikelsystem¶

Alternativ för Particle Systems.¶
Alembic har inget stöd för Particle Systems, på samma sätt som det inte har stöd för armaturer.
- Export Hår
Hår exporteras som animerade nollbreddskurvor.
- Exportera partiklar
Partiklarna exporteras som animerade punkter.
Anpassad delning av normaler för mesh¶
Blender stöder import och export av custom normals till Alembic-filer. Som en grundläggande tumregel kommer ett helt slätt mesh att exporteras utan normaler och därmed producera den minsta Alembic-filen. Detta återspeglas i importören; ett Alembic-mesh utan normaler laddas som ett slätt mesh.
På export, för varje nät:
Om den har Custom Loop Normals exporteras loopnormalerna.
Om en eller flera polygoner markeras som plana exporteras även loopnormalvärden.
I annat fall exporteras inga normaler.
Vid import, när Alembic-nätet innehåller:
Loopnormaler (kFacevaryingScope) används som anpassade loopnormaler.
Vertexnormaler (kVertexScope eller kVaryingScope) konverteras till loopnormaler och hanteras enligt ovan.
Om det inte finns några normaler markeras nätet som slätt.
Normaltyper som inte stöds (kConstantScope, kUniformScope, kUnknownScope) hanteras som inga normaler.
När ett importerat mesh inte innehåller normaler kan det slutliga utseendet kontrolleras med hjälp av Normal’s Shading.
Hanteringstid¶
Till skillnad från Blender och många andra program och filformat har Alembic-filer inte något begrepp för ramar. Alembic arbetar enbart med tid och värden som samplas över tid. Det finns till exempel inget sätt att skilja på 30 FPS med 2 samplingar per bildruta och 60 FPS med 1 sampling per bildruta. Detta har lett till att många utvecklare bara har ”hårdkodat 24 FPS” <https://projects.blender.org/blender/blender/issues/55288>`__ när de läser Alembic-filer.
Blender använder den aktuella scenens bildfrekvens för att konvertera ett bildnummer (i Blender) till en tid i sekunder (i Alembic). Därför kan du importera en Alembic-fil som producerades med 120 FPS till en Blender-scen som är 30 FPS och ändå inte se någon tidssträckning.