Add new art to the client

From PSwiki
Jump to navigation Jump to search

Adding new art

There are two separate topics related to adding new art to the PlaneShift Engine:

  1. Creating new art
  2. Packaging the art with the client and server

For the first point please refer to this page: Creating Art and mods

For the second topic you can continue to read this page.

Overview

To check if the art provided by the artists is in the correct format, the best way is to open it with Viewmesh and Walktest (both are included in the standard CS distribution).

At PlaneShift the art assets are stored unzipped in a standard directory tree, until we have to package a new release. Please note the "characters.zip" below is actually a directory, named "characters.zip", same for the others.

 /myartrepo/
   characters.zip/
     dermf.zip/
       dermf.cal3d
       dermf_arm.dds
       dermf_attack.CAF
       ...
     enkif.zip/
       enkif.cal3d
       ...
     ...
   things/
     weapons.zip/
       doubleaxe01a.meshfact
       doubleaxe01a.dds
       doubleaxe01a_icon.dds
       ...
   ...

When we want to package a release, the first steps is to zip the content of the dirs above and place all zip files in a single directory, please note "npcroom1.zip" below is a zip file, same for the others.

 /planeshift/trunk/
   artin/
       npcroom1.zip
       akkaio.zip
       ...
       weapons.zip
       potions.zip
       ...

Then we launch the ccheck program to package the art in the final form. Please note the two directories HAVE to exist or it will not work.

 ./ccheck -in=/this/artin/ -out=/this/artout/ -process

This will create inside artout/ three directories: materials, meshes, world.

Then we just have to zip each one and move the files to the client art/ directory.

ccheck reference

ccheck is an helper application to parse, check and rearrange art files:

~$ ccheck --help Art Conflict Checker.

This application checks for duplicate meshfact and texture inclusions in art files.

Options:

-in The vfs path to directory to search in. Defaults to /this/ccheck/

-check Whether to do a meshfact conflict check.

-process Whether to process art into a optimal format for bgloader.

-strip Whether to strip data not needed for collision.

-out The vfs path to the directory to output processed art files in. Defaults to /this/ccheckout/

Usage: ccheck(.exe) -path=/this/path/to/directory/


file locations after ccheck

Example stonecave

meshes.zip:

 _auto_stonecave_stonefloor:
    <meshfact name="_auto_stonecave_stonefloor">
 bindata/
   _auto_stonecave_stonefloor_n
   _auto_stonecave_stonefloor_submesh1_0_i
   _auto_stonecave_stonefloor_submesh1_i 
   _auto_stonecave_stonefloor_tc
   _auto_stonecave_stonefloor_v

materials.zip

 lava5.mng
 lightmaps/
   stonecave_0.png
   stonecave_1.png
   ...

world.zip:

 stonecave (world file)
   <meshobj name="stonecave_stonefloor">
      ...
      <renderbuffer file="bindata/stonecave_stonefloor_lm" name="texture coordinate lightmap" />
      ...
 bindata\stonecave_stonefloor_lm