.obj importier script (nicht von mir) funktioniert nicht mehr

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • .obj importier script (nicht von mir) funktioniert nicht mehr

    also ich habe vor längerer zeit mal was mit 3D gemacht und da habe ich dieses script benutzt (s. u.)
    aber jetzt funktioniert es nicht mehr
    das einzige was sich geändert hat ist glaubich das ich jetzt GM8 benutzte

    die fehlermeldung:
    ___________________________________________
    ERROR in
    action number 1
    of Create Event
    for object obj_player:

    Error in function real().

    das skript:
    Spoiler anzeigen

    GML-Quellcode

    1. // MOSAIC Light 3D OBJ IMPORTER
    2. // (c) 2006. Zoltan Percsich. All Rights Reserved.
    3. // Don't edit this script
    4. filename=argument0;
    5. flipnormals = 1;
    6. if (argument1>0) flipnormals=-1;
    7. vertex_list1=ds_list_create();ds_list_clear(vertex_list1);ds_list_add(vertex_list1,0);
    8. vertex_list2=ds_list_create();ds_list_clear(vertex_list2);ds_list_add(vertex_list2,0);
    9. vertex_list3=ds_list_create();ds_list_clear(vertex_list3);ds_list_add(vertex_list3,0);
    10. normal_list1=ds_list_create();ds_list_clear(normal_list1);ds_list_add(normal_list1,0);
    11. normal_list2=ds_list_create();ds_list_clear(normal_list2);ds_list_add(normal_list2,0);
    12. normal_list3=ds_list_create();ds_list_clear(normal_list3);ds_list_add(normal_list3,0);
    13. texture_list1=ds_list_create();ds_list_clear(texture_list1);ds_list_add(texture_list1,0);
    14. texture_list2=ds_list_create();ds_list_clear(texture_list2);ds_list_add(texture_list2,0);
    15. faces_list=ds_list_create();ds_list_clear(faces_list);
    16. fp=file_text_open_read(filename);
    17. for (i=0;file_text_eof(fp)==false;i+=1) {
    18. row=file_text_read_string(fp);row=string_replace_all(row," "," ");
    19. if (string_char_at(row,1)=="v" && string_char_at(row,2)==" ") {
    20. row=string_delete(row,1,string_pos(" ",row));
    21. vx=real(string_copy(row,1,string_pos(" ",row)));
    22. row=string_delete(row,1,string_pos(" ",row));
    23. vy=real(string_copy(row,1,string_pos(" ",row)));
    24. row=string_delete(row,1,string_pos(" ",row));
    25. vz=real(string_copy(row,1,string_length(row)));
    26. ds_list_add(vertex_list1,vx);
    27. ds_list_add(vertex_list2,vy);
    28. ds_list_add(vertex_list3,vz);
    29. }
    30. if (string_char_at(row,1)=="v" && string_char_at(row,2)=="n") {
    31. row=string_delete(row,1,string_pos(" ",row));
    32. nx=real(string_copy(row,1,string_pos(" ",row)));
    33. row=string_delete(row,1,string_pos(" ",row));
    34. ny=real(string_copy(row,1,string_pos(" ",row)));
    35. row=string_delete(row,1,string_pos(" ",row));
    36. nz=real(string_copy(row,1,string_length(row)));
    37. ds_list_add(normal_list1,nx);
    38. ds_list_add(normal_list2,ny);
    39. ds_list_add(normal_list3,nz);
    40. }
    41. if (string_char_at(row,1)=="v" && string_char_at(row,2)=="t") {
    42. row=string_delete(row,1,string_pos(" ",row));
    43. tx=real(string_copy(row,1,string_pos(" ",row)));
    44. row=string_delete(row,1,string_pos(" ",row));
    45. ty=real(string_copy(row,1,string_length(row)));
    46. ds_list_add(texture_list1,tx);
    47. ds_list_add(texture_list2,ty);
    48. }
    49. if (string_char_at(row,1)=="f" && string_char_at(row,2)==" ") {
    50. row=string_replace_all(row," "," ");
    51. row=string_delete(row,1,string_pos(" ",row));
    52. if (string_char_at(row,string_length(row))==" ") row=string_copy(row,0,string_length(row)-1);
    53. face_num=string_count(" ",row);
    54. face_division=1;
    55. temp_faces[0]=0;
    56. for (fc=0;fc<face_num;fc+=1) {
    57. f=string_copy(row,1,string_pos(" ",row));
    58. row=string_delete(row,1,string_pos(" ",row));
    59. temp_faces[face_division]=f;
    60. face_division+=1;
    61. }
    62. f=string_copy(row,1,string_length(row));temp_faces[face_division]=f;
    63. if (face_division==3) {
    64. f1=temp_faces[2];
    65. f2=temp_faces[3];
    66. f3=temp_faces[1];
    67. ds_list_add(faces_list,f1);
    68. ds_list_add(faces_list,f2);
    69. ds_list_add(faces_list,f3);
    70. } else {
    71. f1=temp_faces[2];
    72. f2=temp_faces[3];
    73. f3=temp_faces[1];
    74. ds_list_add(faces_list,f1);
    75. ds_list_add(faces_list,f2);
    76. ds_list_add(faces_list,f3);
    77. for (t=0;t<face_division-3;t+=1) {
    78. f1=temp_faces[4+t];
    79. f2=temp_faces[1];
    80. f3=temp_faces[3+t];
    81. ds_list_add(faces_list,f1);
    82. ds_list_add(faces_list,f2);
    83. ds_list_add(faces_list,f3);
    84. }
    85. }
    86. }
    87. file_text_readln(fp);
    88. }
    89. file_text_close(fp);
    90. tm=d3d_model_create();
    91. tsn=0;
    92. d3d_model_primitive_begin(tm,pr_trianglelist);
    93. for (fc=0;fc<ds_list_size(faces_list);fc+=1) {
    94. sub_face=ds_list_find_value(faces_list,fc);
    95. if (string_count("/",sub_face)==0) {
    96. f_index=sub_face;
    97. t_index=-1;
    98. n_index=-1;
    99. }
    100. if (string_count("/",sub_face)==1) {
    101. f_index=string_copy(sub_face,1,string_pos("/",sub_face)-1);
    102. sub_face=string_delete(sub_face,1,string_pos("/",sub_face));
    103. t_index=string_copy(sub_face,1,string_length(sub_face));
    104. n_index=-1;
    105. }
    106. if (string_count("/",sub_face)==2 && string_count("//",sub_face)==0) {
    107. f_index=string_copy(sub_face,1,string_pos("/",sub_face)-1);
    108. sub_face= string_delete(sub_face,1,string_pos("/",sub_face));
    109. t_index=string_copy(sub_face,1,string_pos("/",sub_face)-1);
    110. sub_face= string_delete(sub_face,1,string_pos("/",sub_face));
    111. n_index=string_copy(sub_face,1,string_length(sub_face));
    112. }
    113. if (string_count("/",sub_face)==2 && string_count("//",sub_face)==1) {
    114. sub_face=string_replace(sub_face,"//","/");
    115. f_index=string_copy(sub_face,1,string_pos("/",sub_face)-1);
    116. sub_face= string_delete(sub_face,1,string_pos("/",sub_face));
    117. t_index=-1;
    118. n_index=string_copy(sub_face,1,string_length(sub_face));
    119. }
    120. vx=ds_list_find_value(vertex_list1,floor(real(f_index)));
    121. vy=ds_list_find_value(vertex_list2,floor(real(f_index)));
    122. vz=ds_list_find_value(vertex_list3,floor(real(f_index)));
    123. if (floor(real(n_index))!=-1 && ds_list_size(normal_list1)>=1) {
    124. nx=flipnormals*ds_list_find_value(normal_list1,floor(real(n_index)));
    125. ny=flipnormals*ds_list_find_value(normal_list2,floor(real(n_index)));
    126. nz=flipnormals*ds_list_find_value(normal_list3,floor(real(n_index)));
    127. } else {
    128. nx=0;
    129. ny=0;
    130. nz=0;
    131. }
    132. if (floor(real(t_index))!=-1 && ds_list_size(texture_list1)>=1) {
    133. tx=ds_list_find_value(texture_list1,floor(real(t_index)));
    134. ty=ds_list_find_value(texture_list2,floor(real(t_index)));
    135. } else {
    136. tx=0;
    137. ty=0;
    138. }
    139. d3d_model_vertex_normal_texture(tm,vx,vy,vz,nx,ny,nz,tx,ty);
    140. tsn+=1;
    141. if (tsn==999) {
    142. tsn=0;
    143. d3d_model_primitive_end(tm);
    144. d3d_model_primitive_begin(tm,pr_trianglelist);
    145. }
    146. }
    147. d3d_model_primitive_end(tm);
    148. return tm;
    Alles anzeigen


    hatt einer ein anderes skript oder eine ahnung wieso dieses nicht mehr funktioniert ?(

    LG shut

  • Hier gibts vom selben Macher wie Mosaic eine GM 8 Version die noch dazu schneller ist.
    Ich kann leider den tread nicht finden, aber das Skript war noch auf meinem Computer:

    GML-Quellcode

    1. // function d3d_model_load_obj(filename)
    2. // Description: Creates a GM model from a Wavefront OBJ file
    3. // Author: Zoltan Percsich, 2010 - SilentWorks
    4. // Copyright: All Rights Reserved
    5. // Private and commercial usage: allowed
    6. _tmd=d3d_model_create();_fp=file_text_open_read(argument0);_vtx1=ds_list_create();ds_list_clear(_vtx1);ds_list_add(_vtx1,0);
    7. _vtx2=ds_list_create();ds_list_clear(_vtx2);ds_list_add(_vtx2,0);_vtx3=ds_list_create();ds_list_clear(_vtx3);ds_list_add(_vtx3,0);
    8. _nm1=ds_list_create();ds_list_clear(_nm1);ds_list_add(_nm1,0);_nm2=ds_list_create();ds_list_clear(_nm2);ds_list_add(_nm2,0);
    9. _nm3=ds_list_create();ds_list_clear(_nm3);ds_list_add(_nm3,0);_uvx=ds_list_create();ds_list_clear(_uvx);ds_list_add(_uvx,0);
    10. _uvy=ds_list_create();ds_list_clear(_uvy);ds_list_add(_uvy,0);for(i=0;file_text_eof(_fp)==false;i+=1){_rw=file_text_read_string(_fp);
    11. _rw=string_replace_all(_rw," "," ");if(string_char_at(_rw,1)=="v" && string_char_at(_rw,2)==" "){_rw=string_delete(_rw,1,string_pos(" ",_rw));
    12. vx=real(string_copy(_rw,1,string_pos(" ",_rw)));_rw=string_delete(_rw,1,string_pos(" ",_rw));vy=real(string_copy(_rw,1,string_pos(" ",_rw)));
    13. _rw=string_delete(_rw,1,string_pos(" ",_rw));vz=real(string_copy(_rw,1,string_length(_rw)));ds_list_add(_vtx1,vx);ds_list_add(_vtx2,vy);
    14. ds_list_add(_vtx3,vz);}if(string_char_at(_rw,1)=="v" && string_char_at(_rw,2)=="n"){_rw=string_delete(_rw,1,string_pos(" ",_rw));
    15. nx=real(string_copy(_rw,1,string_pos(" ",_rw)));_rw=string_delete(_rw,1,string_pos(" ",_rw));ny=real(string_copy(_rw,1,string_pos(" ",_rw)));
    16. _rw=string_delete(_rw,1,string_pos(" ",_rw));nz=real(string_copy(_rw,1,string_length(_rw)));ds_list_add(_nm1,nx);ds_list_add(_nm2,ny);
    17. ds_list_add(_nm3,nz);}if(string_char_at(_rw,1)=="v" && string_char_at(_rw,2)=="t"){_rw=string_delete(_rw,1,string_pos(" ",_rw));
    18. tx=real(string_copy(_rw,1,string_pos(" ",_rw)));_rw=string_delete(_rw,1,string_pos(" ",_rw));ty=real(string_copy(_rw,1,string_length(_rw)));
    19. ds_list_add(_uvx,tx);ds_list_add(_uvy,ty);}if(string_char_at(_rw,1)=="f" && string_char_at(_rw,2)==" "){_rw=string_replace_all(_rw," "," ");
    20. _rw=string_delete(_rw,1,string_pos(" ",_rw));if(string_char_at(_rw,string_length(_rw))==" ")_rw=string_copy(_rw,0,string_length(_rw)-1);
    21. _fcn=string_count(" ",_rw);fsn=0;_fcs[0]=0;for(fc=0;fc<_fcn;fc +=1){f=string_copy(_rw,1,string_pos(" ",_rw));
    22. _rw=string_delete(_rw,1,string_pos(" ",_rw));_fcs[fsn]=f;fsn+=1;};f=string_copy(_rw,1,string_length(_rw));_fcs[fsn]=f;
    23. d3d_model_primitive_begin(_tmd,pr_trianglefan);for(f=_fcn;f>0 - 1;f-=1){if(string_count("/",_fcs[f])==0){f_ix=_fcs[f];
    24. t_ix=-1;n_ix=-1;};if(string_count("/",_fcs[f])==1){f_ix=string_copy(_fcs[f],1,string_pos("/",_fcs[f])-1);
    25. _fcs[f]=string_delete(_fcs[f],1,string_pos("/",_fcs[f]));t_ix=string_copy(_fcs[f],1,string_length(_fcs[f]));n_ix=-1;}
    26. if(string_count("/",_fcs[f])==2 && string_count("//",_fcs[f])==0){f_ix=string_copy(_fcs[f],1,string_pos("/",_fcs[f])-1);
    27. _fcs[f]=string_delete(_fcs[f],1,string_pos("/",_fcs[f]));t_ix=string_copy(_fcs[f],1,string_pos("/",_fcs[f])-1);
    28. _fcs[f]=string_delete(_fcs[f],1,string_pos("/",_fcs[f]));n_ix=string_copy(_fcs[f],1,string_length(_fcs[f]));}
    29. if(string_count("/",_fcs[f])==2 && string_count("//",_fcs[f])==1){_fcs[f]=string_replace(_fcs[f],"//","/");
    30. f_ix=string_copy(_fcs[f],1,string_pos("/",_fcs[f])-1);_fcs[f]=string_delete(_fcs[f],1,string_pos("/",_fcs[f]));t_ix=-1;
    31. n_ix=string_copy(_fcs[f],1,string_length(_fcs[f]));};vx=ds_list_find_value(_vtx1,floor(real(f_ix)));vy=ds_list_find_value(_vtx2,floor(real(f_ix)));
    32. vz=ds_list_find_value(_vtx3,floor(real(f_ix)));if(floor(real(n_ix))!=-1 && ds_list_size(_nm1)>=1){nx=ds_list_find_value(_nm1,floor(real(n_ix)));
    33. ny=ds_list_find_value(_nm2,floor(real(n_ix)));nz=ds_list_find_value(_nm3,floor(real(n_ix)));}else{nx=0;ny=0;nz=0;}
    34. if(floor(real(t_ix))!=-1 && ds_list_size(_uvx)>=1){tx=ds_list_find_value(_uvx,floor(real(t_ix)));ty=ds_list_find_value(_uvy,floor(real(t_ix)));
    35. }else{tx=0;ty=0;};d3d_model_vertex_normal_texture(_tmd,vx,vz,vy,nx,nz,ny,tx,1-ty);};d3d_model_primitive_end(_tmd);};
    36. file_text_readln(_fp);};ds_list_destroy(_vtx1);ds_list_destroy(_vtx2);ds_list_destroy(_vtx3);ds_list_destroy(_nm1);ds_list_destroy(_nm2);
    37. ds_list_destroy(_nm3);ds_list_destroy(_uvx);ds_list_destroy(_uvy);file_text_close(_fp);return _tmd;
    Alles anzeigen

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • @dragongammer das script funktioniert leider auch nicht es kommt dieselbe fehlermeldung
    @mewx habe alle , durch . ersetzt immernoch die selbe melrdung -.-

    [Zusammengeschoben von CAS]

    sorry für doppelpost
    aber es geht jetzt
    habe nochmal das script von ganz am anfang geholt und eine andere .obj datei
    und jetzt funktioniert es prima

    trotzdem danke an dragongammer und mewx