my customization for waezone 2100 GM

Improving the artwork in Warzone2100 - not for mod discussions
ironsolder
Greenhorn
Posts: 9
Joined: 15 Dec 2014, 01:54

Re: my customization for waezone 2100 GM

Post by ironsolder » 16 Dec 2014, 16:48

i dont understand . what's wrong
nowadays there is a millions of model in internet and in games
i can make totally new design - like the " war factory" and " walls " its all my design
but tanks i can make new and i'v the ability to extract any model i want from any game and make my modification and texturing
_______
i'm never said i'm a Creator or Genius . just some one wants to make game looks good to me and fit what's in my mind
just had some idea
________
if any one have blueprint for a model i could make it for him in obj and pie format

__________
to make new tank should

changing model
changing weapon fx
changing weapon specification " from weapon text "
changing weapon sound

here is an xls file i take it as a guide when changing the weapon values from weapon text files
Attachments
weapon guide Excel.xls
(16.5 KiB) Downloaded 278 times

User avatar
cnceo
Trained
Trained
Posts: 108
Joined: 23 Sep 2013, 11:49
Location: Germany
Contact:

Re: my customization for waezone 2100 GM

Post by cnceo » 16 Dec 2014, 17:56

ironsolder wrote: i can make totally new design - like the " war factory" and " walls " its all my design
The striking difference in the quality makes that painfully obvious. The style of those models does not fully fit the post-apocalytic theme of the game and strongly contrasts with the high quality models that you have taken from c&c.
ironsolder wrote: but tanks i can make new and i'v the ability to extract any model i want from any game and make my modification and texturing
You can do that. Just don't run around not giving credits to the original authors, while at the same time bitching about the work of others, for trying to recreate original content. If you want feedback, show what you(!) have done. What kind of feedback do you expect for showing of things you have put together from existing major selling games? Also in contrast to what you might think, all the work from c&c and other games has a commercial licence and the original owner can permit you at any time from releasing your stuff to the public.

User avatar
Alpha93
Trained
Trained
Posts: 261
Joined: 02 Aug 2008, 20:23
Location: Italy,in YOUR computer
Contact:

Re: my customization for waezone 2100 GM

Post by Alpha93 » 16 Dec 2014, 18:31

ironsolder wrote:i dont understand . what's wrong
nowadays there is a millions of model in internet and in games
i can make totally new design - like the " war factory" and " walls " its all my design
This is right, perfectly fine, and doesn't involve copyright infringment.
but tanks i can make new
This is right aswell
and i'v the ability to extract any model i want from any game and make my modification and texturing.
This is breaching copyright/ToU. You aren't allowed, let's say, in the case that you took the tanks right out of Command&Conquer/Dune/etc., to distribute your own modified copy (i.e. only PERSONAL use is allowed, if at all). If you took them from a mod made by another person, you HAVE TO give credit where due. I'm not very knowledgeable of how the whole licensing works, the WZ2100 staff surely knows better.
If you had made the models from scratch, just like everyone, nobody would've had anything against it. Nobody is complaining about your building models, because that's the correct way of doing things, it's stuff made by you without recycling content made by others.
What we're trying to make you understand is that you can't take stuff from other games and/or made by other people, and modify it at your own pleasure without giving credit.
Don't take it as a personal attack, but knowing this stuff will save you from a buttload of problems that could arise from stuff such as copyright infringment.
Xfire-->chris37killer

stiv
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 876
Joined: 18 Jul 2008, 04:41
Location: 45N 86W

Re: my customization for waezone 2100 GM

Post by stiv » 16 Dec 2014, 21:03

Legal niceties aside, giving someone credit for their work is just good manners.

ironsolder
Greenhorn
Posts: 9
Joined: 15 Dec 2014, 01:54

Re: my customization for waezone 2100 GM

Post by ironsolder » 16 Dec 2014, 23:46

long range tank

may be replaced with howitzer
Attachments
long range tank by ironsolder.jpg
long range tank by ironsolder.jpg (51.71 KiB) Viewed 6897 times

ironsolder
Greenhorn
Posts: 9
Joined: 15 Dec 2014, 01:54

Re: my customization for waezone 2100 GM

Post by ironsolder » 16 Dec 2014, 23:54

modeling finished
second step texturing
Attachments
long edit.jpg

Jorzi
Regular
Regular
Posts: 1956
Joined: 11 Apr 2010, 00:14

Re: my customization for waezone 2100 GM

Post by Jorzi » 17 Dec 2014, 08:18

Nice tank, although the polycount is far too high for warzone.
ImageImage
-insert deep philosophical statement here-

User avatar
Tenoh
Trained
Trained
Posts: 359
Joined: 18 Nov 2008, 15:06

Re: my customization for waezone 2100 GM

Post by Tenoh » 18 Nov 2015, 17:13

If you want to make anti-tank then put the gun on to the second connector, this way you dont have to make custome turret and ofcourse limit guns angles.
BTW. love WZGM tracks, use them in my moded campaign too.
"No, you don't want to buy this Sh[beep]t from me. It shoots sideways, it was built by retard zombies in some f[beep]king outreach program." HL:G

trevormanaze
Trained
Trained
Posts: 85
Joined: 18 Nov 2015, 04:21

Re: my customization for waezone 2100 GM

Post by trevormanaze » 19 Nov 2015, 14:28

can i please have the walls in whatever autodesk format u have them in please

I beleive i can convert autodesk to .iclone

So far Ive been collecting up everybodies "Warzone models , I only want the ones that are 100% wz related though for the cutscenes thread im working on braking ground.

let me know if u need my e-mail just PM me

User avatar
Berg
Regular
Regular
Posts: 2013
Joined: 02 Sep 2007, 23:25
Location: Australia

Re: my customization for waezone 2100 GM

Post by Berg » 19 Nov 2015, 23:52

From what I read 3ds format is supported there is a pie to 3ds converter in the tools folder in warzone.
If the tools folder is not supplied in the version you have look in earlier versions.
3D Studio .3ds .prj Up to Autodesk 3ds Max 2016


I made the current walls and if you want them they are in the data folder in warzone current.

Good luck with your Endeavour
Berg

trevormanaze
Trained
Trained
Posts: 85
Joined: 18 Nov 2015, 04:21

Re: my customization for waezone 2100 GM

Post by trevormanaze » 20 Nov 2015, 01:42

pie to 3ds converter

tools folder in warzone?

what does that mean, I think its 3ds to pie i read somewhere, Can u post a link or directory to it

User avatar
Berg
Regular
Regular
Posts: 2013
Joined: 02 Sep 2007, 23:25
Location: Australia

Re: my customization for waezone 2100 GM

Post by Berg » 20 Nov 2015, 03:00

https://sourceforge.net/projects/warzon ... ases/WMIT/
After a quick search i only found wmit and i found on my pc a script .c from a very old release of warzone to convert pie23ds.c

Code: Select all

/*
	This file is part of Warzone 2100.
	Copyright (C) 2007-2009  Warzone Resurrection Project

	Warzone 2100 is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your option) any later version.

	Warzone 2100 is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with Warzone 2100; if not, write to the Free Software
	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/

#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>

#ifndef WIN32
#include <stdbool.h>
#include <limits.h>
#else
typedef int bool;
#define PATH_MAX 255
#define true 1
#define false 0
#endif

#include <lib3ds/file.h>
#include <lib3ds/mesh.h>
#include <lib3ds/vector.h>
#include <lib3ds/material.h>

// gcc -o pie23ds pie23ds.c -Wall -g -O0 `pkg-config --cflags --libs lib3ds`

#define iV_IMD_TEX 0x00000200
#define iV_IMD_TEXANIM 0x00004000
#define MAX_POLYGON_SIZE 16

static bool swapYZ = true;
static bool invertUV = true;
static bool reverseWinding = true;
static char *input = "";
static char *output = "";

typedef struct {
	int index[MAX_POLYGON_SIZE];
	int texCoord[MAX_POLYGON_SIZE][2];
	int vertices;
} WZ_FACE;

typedef struct {
	int x, y, z;
} WZ_POSITION;

static void parse_args(int argc, char **argv)
{
	unsigned int i = 1;

	for (i = 1; argc >= 2 + i && argv[i][0] == '-'; i++)
	{
		if (argv[i][1] == 'y')
		{
			swapYZ = false; // exporting program used Y-axis as "up", like we do, don't switch
		}
		if (argv[i][1] == 'i')
		{
			invertUV = true;
		}
		if (argv[i][1] == 'r')
		{
			reverseWinding = true;
		}
	}
	if (argc < 2 + i)
	{
		fprintf(stderr, "Syntax: pie23ds [-y|-r|-t] input_filename output_filename\n");
		fprintf(stderr, "  -y  Exporter uses Y-axis as \"up\", so do not switch Y and Z axis.\n");
		fprintf(stderr, "  -r  Reverse winding of all polygons.\n");
		fprintf(stderr, "  -i  Invert the vertical texture coordinates (for 3DS MAX etc.).\n");
		exit(1);
	}
	input = argv[i++];
	output = argv[i++];
}

static void dump_to_3ds(Lib3dsFile *f, FILE *fp)
{
	Lib3dsMesh	*m = lib3ds_mesh_new("Warzone Mesh");
	Lib3dsMaterial	*material = lib3ds_material_new("Warzone texture");
	Lib3dsTextureMap *texture = &material->texture1_map;
	int i, num, x, y, levels;
	char s[200];

	num = fscanf(fp, "PIE %d\n", &i);
	if (num != 1)
	{
		fprintf(stderr, "Bad PIE file %s\n", input);
		exit(1);
	}
	fprintf(stdout, "PIE version %d\n", i);

	num = fscanf(fp, "TYPE %d\n", &i); // ignore
	if (num != 1)
	{
		fprintf(stderr, "Bad TYPE directive in %s\n", input);
		exit(1);
	}

	num = fscanf(fp, "TEXTURE %d %s %d %d\n", &i, s, &x, &y);
	if (num != 4)
	{
		fprintf(stderr, "Bad TEXTURE directive in %s\n", input);
		exit(1);
	}
	strcpy(texture->name, s);

	num = fscanf(fp, "LEVELS %d\n", &levels);
	if (num != 1)
	{
		fprintf(stderr, "Bad LEVELS directive in %s\n", input);
		exit(1);
	}

	f->frames = levels;
	f->meshes = m;
	f->materials = material;
	for (i = 0; i < levels; i++)
	{
		int j, points, faces, faces3DS, faceCount, points3DS, pointCount;
		WZ_FACE *faceList;
		WZ_POSITION *posList;

		num = fscanf(fp, "LEVEL %d\n", &x);
		if (num != 1 || (i + 1) != x)
		{
			fprintf(stderr, "Bad LEVEL directive in %s, was %d should be %d\n", input, x, i + 1);
			exit(1);
		}

		num = fscanf(fp, "POINTS %d\n", &points);
		if (num != 1)
		{
			fprintf(stderr, "Bad POINTS directive in %s frame %d\n", input, i);
			exit(1);
		}
		posList = malloc(sizeof(WZ_POSITION) * points);
		for (j = 0; j < points; j++)
		{
			if (swapYZ)
			{
				num = fscanf(fp, "%d %d %d\n", &posList[j].x, &posList[j].z, &posList[j].y);
			}
			else
			{
				num = fscanf(fp, "%d %d %d\n", &posList[j].x, &posList[j].y, &posList[j].z);
			}
			if (num != 3)
			{
				fprintf(stderr, "Bad POINTS entry frame %d, number %d\n", i, j);
				exit(1);
			}
		}

		num = fscanf(fp, "POLYGONS %d", &faces);
		if (num != 1)
		{
			fprintf(stderr, "Bad POLYGONS directive in %s frame %d\n", input, i);
			exit(1);			
		}
		faces3DS = faces;	// for starters
		faceList = malloc(sizeof(WZ_FACE) * faces);
		points3DS = 0;
		for (j = 0; j < faces; ++j)
		{
			int k;
			unsigned int flags;

			num = fscanf(fp, "\n%x", &flags);
			if (num != 1)
			{
				fprintf(stderr, "Bad POLYGONS texture flag entry frame %d, number %d\n", i, j);
				exit(1);
			}
			if (!(flags & iV_IMD_TEX))
			{
				fprintf(stderr, "Bad texture flag entry frame %d, number %d - no texture flag!\n", i, j);
				exit(1);
			}

			num = fscanf(fp, "%d", &faceList[j].vertices);
			if (num != 1)
			{
				fprintf(stderr, "Bad POLYGONS vertices entry frame %d, number %d\n", i, j);
				exit(1);
			}
			assert(faceList[j].vertices <= MAX_POLYGON_SIZE); // larger polygons not supported
			assert(faceList[j].vertices >= 3); // points and lines not supported
			if (faceList[j].vertices > 3)
			{
				// since they are triangle fans already, we get to do easy tessellation
				faces3DS += (faceList[j].vertices - 3);
			}
			points3DS += faceList[j].vertices;

			// Read in vertex indices and texture coordinates
			for (k = 0; k < faceList[j].vertices; k++)
			{
				num = fscanf(fp, "%d", &faceList[j].index[k]);
				if (num != 1)
				{
					fprintf(stderr, "Bad vertex position entry frame %d, number %d\n", i, j);
					exit(1);
				}
			}
			if (flags & iV_IMD_TEXANIM)
			{
				// read in and discard animation values for now
				int frames, rate, width, height;

				num = fscanf(fp, "%d %d %d %d", &frames, &rate, &width, &height);
				if (num != 4)
				{
					fprintf(stderr, "Bad texture animation entry frame %d, number %d\n", i, j);
					exit(1);
				}
			}
			for (k = 0; k < faceList[j].vertices; k++)
			{
				num = fscanf(fp, "%d %d", &faceList[j].texCoord[k][0], &faceList[j].texCoord[k][1]);
				if (num != 2)
				{
					fprintf(stderr, "Bad texture coordinate entry frame %d, number %d\n", i, j);
					exit(1);
				}
			}
		}

		// Calculate position list. Since positions hold texture coordinates in 3DS, unlike in Warzone,
		// we need to use some black magic to transfer them over here.
		lib3ds_mesh_new_point_list(m, points3DS);
		lib3ds_mesh_new_texel_list(m, points3DS);
		pointCount = 0;
		for (j = 0; j < faces; j++)
		{
			int k;

			for (k = 0; k < faceList[j].vertices; k++)
			{
				Lib3dsVector pos;

				pos[0] = posList[faceList[j].index[k]].x;
				pos[1] = posList[faceList[j].index[k]].y;
				pos[2] = posList[faceList[j].index[k]].z;

				lib3ds_vector_copy(m->pointL[pointCount].pos, pos);
				faceList[j].index[k] = pointCount; // use new position list

				if (invertUV)
				{
					m->texelL[pointCount][0] = ((float)faceList[j].texCoord[k][0] / 256.0f);
					m->texelL[pointCount][1] = 1.0f - ((float)faceList[j].texCoord[k][1] / 256.0f);
				}
				else
				{
					m->texelL[pointCount][0] = ((float)faceList[j].texCoord[k][0] / 256.0f);
					m->texelL[pointCount][1] = ((float)faceList[j].texCoord[k][1] / 256.0f);
				}
				pointCount++;
			}
		}

		lib3ds_mesh_new_face_list(m, faces3DS);
		faceCount = 0;

		// TODO reverse winding afterwards
		for (j = 0; j < faces; j++)
		{
			int k, key, previous;

			key = m->faceL[faceCount].points[0] = faceList[j].index[0];
			m->faceL[faceCount].points[1] = faceList[j].index[1];
			previous = m->faceL[faceCount].points[2] = faceList[j].index[2];
			faceCount++;

			// Generate triangles from the Warzone triangle fans (PIEs, get it?)
			for (k = 3; k < faceList[j].vertices; k++)
			{
				m->faceL[faceCount].points[0] = key;
				m->faceL[faceCount].points[1] = previous;
				previous = m->faceL[faceCount].points[0] = faceList[j].index[k];
			}

			// Since texture coordinates are properties of positions, not indices,
			// we do not need a similar expansion of these
		}
		free(faceList);
		free(posList);
	}
	if (!lib3ds_file_save(f, output))
	{
		fprintf(stderr, "Cannot open \"%s\" for writing: %s", output, strerror(errno));
		exit(1);
	}
}

int main(int argc, char **argv)
{
	Lib3dsFile *f = NULL;
	FILE *p;

	parse_args(argc, argv);
	f = lib3ds_file_new();
	
	p = fopen(input, "r");
	if (!p)
	{
		fprintf(stderr, "Cannot open \"%s\" for reading: %s", output, strerror(errno));
		exit(1);
	}
	dump_to_3ds(f, p);
	fclose(p);
	lib3ds_file_free(f);

	return 0;
}
I dont know if that will be any good.


There is a greate many topics about models in this forum there an8imation topics and model converting tools threads all through the forum ..look up models by Jorzi, me or many other authors

Again good luck

Post Reply