Importando modelos 3d para o Gm

    Compartilhe
    rodrigo1434
    rodrigo1434
    Admin
    Admin

    Masculino
    Idade : 25
    Número de Mensagens : 782
    Advertencias : 0%

    Reputação Reputação : 14

    Importando modelos 3d para o Gm

    Mensagem por rodrigo1434 em Ter 18 Nov - 20:07

    Importando modelos 3D para o GM

    Esse script já ajudou muita gente no Game Maker, porque é ele que vai abrir seu modelo 3d, vc tem que ter em mão seu modelo .obj, vc pode renomear o script por outro nome, menos por uma função,variável etc, ao contrário que dizem por ai que não pode mudar o nome do script, vc pode.O nome original é createFromObj
    ai vai ele, vc deve copiar esse script e colar no próprio script, com o nome padrão(para não confundirem)

    Código:
    [code]// MOSAIC Light 3D OBJ IMPORTER
    // (c) 2006. Zoltan Percsich. All Rights Reserved.
    // Don't edit this script
    filename=argument0;
    flipnormals = 1;
    if (argument1>0) flipnormals=-1;
    vertex_list1=ds_list_create();ds_list_clear(vertex_list1);ds_list_add(vertex_list1,0);
    vertex_list2=ds_list_create();ds_list_clear(vertex_list2);ds_list_add(vertex_list2,0);
    vertex_list3=ds_list_create();ds_list_clear(vertex_list3);ds_list_add(vertex_list3,0);
    normal_list1=ds_list_create();ds_list_clear(normal_list1);ds_list_add(normal_list1,0);
    normal_list2=ds_list_create();ds_list_clear(normal_list2);ds_list_add(normal_list2,0);
    normal_list3=ds_list_create();ds_list_clear(normal_list3);ds_list_add(normal_list3,0);
    texture_list1=ds_list_create();ds_list_clear(texture_list1);ds_list_add(texture_list1,0);
    texture_list2=ds_list_create();ds_list_clear(texture_list2);ds_list_add(texture_list2,0);
    faces_list=ds_list_create();ds_list_clear(faces_list);
    fp=file_text_open_read(filename);
    for (i=0;file_text_eof(fp)==false;i+=1) {
    row=file_text_read_string(fp);row=string_replace_all(row," "," ");

    if (string_char_at(row,1)=="v" && string_char_at(row,2)==" ") {
    row=string_delete(row,1,string_pos(" ",row));
    vx=real(string_copy(row,1,string_pos(" ",row)));
    row=string_delete(row,1,string_pos(" ",row));
    vy=real(string_copy(row,1,string_pos(" ",row)));
    row=string_delete(row,1,string_pos(" ",row));
    vz=real(string_copy(row,1,string_length(row)));
    ds_list_add(vertex_list1,vx);
    ds_list_add(vertex_list2,vy);
    ds_list_add(vertex_list3,vz);
    }

    if (string_char_at(row,1)=="v" && string_char_at(row,2)=="n") {
    row=string_delete(row,1,string_pos(" ",row));
    nx=real(string_copy(row,1,string_pos(" ",row)));
    row=string_delete(row,1,string_pos(" ",row));
    ny=real(string_copy(row,1,string_pos(" ",row)));
    row=string_delete(row,1,string_pos(" ",row));
    nz=real(string_copy(row,1,string_length(row)));
    ds_list_add(normal_list1,nx);
    ds_list_add(normal_list2,ny);
    ds_list_add(normal_list3,nz);
    }

    if (string_char_at(row,1)=="v" && string_char_at(row,2)=="t") {
    row=string_delete(row,1,string_pos(" ",row));
    tx=real(string_copy(row,1,string_pos(" ",row)));
    row=string_delete(row,1,string_pos(" ",row));
    ty=real(string_copy(row,1,string_length(row)));
    ds_list_add(texture_list1,tx);
    ds_list_add(texture_list2,ty);
    }

    if (string_char_at(row,1)=="f" && string_char_at(row,2)==" ") {
    row=string_replace_all(row," "," ");
    row=string_delete(row,1,string_pos(" ",row));
    if (string_char_at(row,string_length(row))==" ") row=string_copy(row,0,string_length(row)-1);
    face_num=string_count(" ",row);
    face_division=1;
    temp_faces[0]=0;

    for (fc=0;fc

      Data/hora atual: Ter 22 Jan - 12:26