Snapchat

Guidelines for Snapchat pipeline

Platform features

Preparation

Work must be carried out using the following software:

  • Blender - no specific version (final model placement with all textures and skeleton)

  • Photoshop - no specific version

  • Lens Studio v4.19 (setting up a ready-made model for AR)

"It is necessary to use only "Lens Studio version 4.19. Older or newer versions are strictly prohibited to use

Model quality

It is very important that the model is made as qualitatively as possible.

  • The model must be well-detailed

  • fully comply with platform standards

  • follow chosen style

Model preparation

Modelling

The model can be created in any software you like, but in the end, the model must be in Blender. All elements like external pockets; buttons; fasteners; belts etc. should be sewn into the model itself and made with textures as in the image below.

Here we have a shirt with body armour, the body armour is one piece with the shirt, i.e. the body armour is not a separate mesh that was connected to the shirt's mesh after all.

In this image, you can see that all the straps on the body armour are made through textures, as is the body armour itself; the collar and many of the large folds.

"Models should NOT have internal volume!"

The image below shows an example of a shirt sleeve, the shirt on the left has volume, the shirt on the right has no volume.

Restriction on polygon quantity:
  • Headwear - 10,000 triangles

  • Tops (jackets, T-shirts, etc.) - 20,000 triangles

  • Bottoms (Pants, shorts, etc.) - 15,000 triangles

  • Shoes - 5,000 triangles

  • Full Suits - 35,000 triangles

  • Accessories - 5,000 triangles

3D Accessories

Snapchat accessories are separate objects with their own textures and materials.

You can find more information here

UV Layout

UV Layout uses general standards. No unique features on Snapchat here.

Check general UV Layout requirements here.

Texturing

Texturing can be done in any program convenient for you, as long as the result is 3 textures:

Albedo

Normal

ORM texture is a texture that contains metallic and roughness textures, splited into RGB channels.

ORM texture is required by the platform.

Using metallic and roughness textures separately won't work in the right way

Opacity (optional) sometimes can be used, but requires splitting into different materials for proper work.

"The resolution of all textures is always the same - 2048 x 2048, each texture is no more than 800kb in JPG or PNG format!"

Materials

  • The material must be created in Blender

  • It must not have any extra nodes

Rigging

"All models must have a skeleton, except hats and masks"

You don't need to create bones from scratch, you need to take the ready-made bones from this "link" and apply them to your model, this is mandatory.

The meshes that are originally placed on the bones must be removed. It is also forbidden to change the size of the bones, you must adjust your model to the size of these bones.

"The name of the 'inner' bones, highlighted in the list below, should be unchanged!"

Armature

Skeleton

  • Character1_Hips

    • Character1_Spine

      • Character1_Spine1

        • Character1_Spine2

          • Character1_Neck

            • Character1_Head

          • Character1_LeftShoulder

            • Character1_LeftArm

              • Character1_LeftForeArm

                • Character1_LeftHand

          • Character1_RightShoulder

            • Character1_RightArm

              • Character1_RightForeArm

                • Character1_RightHand

    • Character1_LeftUpLeg

      • Character1_LeftLeg

        • Character1_LeftFoot

          • Character1_LeftToeBase

    • Character1_RightUpLeg

      • Character1_RightLeg

        • Character1_RightFoot

          • Character1_RightToeBase

"The bones must be in the T-position!"

Paint layers

Paint layers use general standards. No unique features on Snapchat here.

Check general Paint Layers requirements here.

Naming

Naming uses general standards. No unique features on Snapchat here.

Check general Naming requirements here.

Morphing

Morphing for the Snapchat requierments:

  • Then you want to hide part of the mesh - scale it to 0 and move down to -1000, this will help you avoid revealing geometry while the skeleton is moving in Lens Studio.

Check general Morphing requirements here.

Mask

Customuse platform also requires adding masks to your designs. Here is how it looks like and works:

There are two types of masks:

  1. Full body mask for - shirts, pants, costumes, body accessories, etc.

  2. Head mask for - masks, hats, caps, face accessories, etc.

It is important to keep name of mask - "mask"

Here is a list of steps on how you should add a mask to your design:

  1. Download masks from here.

  2. Add mask mesh to your design file.

  3. Adjust your outfit so every ending of your mesh will fit mask well. DO NOT edit mask in any way, edit asset.

Fitting endings of mesh is enough, clipping mask and asset is normal if it is in the middle and not on the ending of the mesh.

  1. Making vertex color mask on mask mesh. Mask with black color to hide parts of body which are located under asset in this way:

  2. After all these steps save ONLY blend file and save/update your GLB file and all will be done, you don't need to add a mask anywhere else.

Exporting

You will need to export your model with bones in FBX format.

To import your model into Lens Studio you will need FBX format.

"Be sure to clean out any excess files from your Blender file before exporting to FBX and GLB format"

Lens Studio

Body tracking

Suitable for body and hand assets

Guide on the official Snapchat website

Head tracking

Suitable for headwear and face masks

Guide on the official Snapchat website

Adding scripts

In the end of lens preparation, you need to add 4 scripts

Adding scripts to mesh :

  • Update texture (On Start) - Replaces the main mesh texture with the given one.

  • Update shapes (On Start) - Configure shape keys for the lens.

  • Add getShapes script to object tab first and rename it to original name, after that add it to appeared slot under update shapes script

Adding scripts to Screen Image:

  • Initialize Helpers (On Awake) - Helps other scripts to work.

  • Update Watermark (On Start) - Sets a custom watermark logo for the lens.

Final check and upload

Checklists

Blender

  1. Checking the names of meshes, materials, models, textures, etc.

Paint layers

  1. Check paint layers, their order, and dimensions. Check that the non_paint layer (if there is one) does not overlap other layers

Lens studio

  1. Check if the model "sits" correctly due to the bones on the person in the preview

  2. Check that the textures in the project folder are in the “public” folder, and in lens studio, they are in the root with other files

  3. Make sure that all the necessary scripts (watermark, shapekeys etc) are connected to the lens

Customuse

  1. Checking whether the model looks correct in the “Customuse” viewer

  2. Checking if the paint layers are working correctly

  3. Check how the superimposed image looks on top of the model (stickers, third-party pictures, etc. By UV scan)

Last updated