an8 -> d3d

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

    • Hallo zusammen! Es gibt ja einige Converter, die das ANIM80R-Format für den GM zugänglich machen. T-Moe hat auch ein solches Tool erstellt, Marzipan habe ich bereits probiert und von den meisten anderen wird auch nur gesagt, dass sie nicht funktioneren.
      Welche Möglichkeiten gibt es denn nun für einen eingefleischten ANIM8OR-User?
      █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
      █████ ███████ ███ your █████ ████ government.
    • Bei mir nicht. Oder muss ich wirklich jedes Teil meines gesamten 3D-Objekts einzeln exportieren? Das wär ziemlich ungünstig, da ich grundsätzlich mehrere verformte Primitives zu einem Character zusammensetze.
      █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
      █████ ███████ ███ your █████ ████ government.
    • Ganz einfach.
      Du exportierst dein Model als .obj und legst olgendes script von percsich (aus dem englischen gm forum) an:

      Name: createFromObj


      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


      dann musst du nur noch ein Objekt erstellen in dem folgendes steht:

      Create Event:

      Quellcode

      1. model = createFromObj("DEINMODEL",0);
      2. texture = background_get_texture(DEINETEXTUR);


      und dann kannst du es im Draw Event zeichnen lassen mit:

      Quellcode

      1. d3d_model_draw(model,0,0,0,texture);


      Hoffe ich konnte dir helfen.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Marv1 ()

    • du musst es nur als eins speichern... wenn die richtung der normalen stimmt, solllte alles was du in animator gemacht hast auch in marzipan sein...
      wenn nicht, dann hast du was bei deiner konstruktion falsch, denk ich mal

      edit:// gleichzeitig gepostet ^^
      so gehts natürlich auch
      hallo erstmal....

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von fantscher ()

    • Oh, mein Fehler!^^ Ich muss ANIM8OR-VERTEX-FILES verwenden.. Jetzt gehts, danke für eure Mühe!
      █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
      █████ ███████ ███ your █████ ████ government.