{"id":2272,"date":"2024-04-14T16:35:59","date_gmt":"2024-04-14T15:35:59","guid":{"rendered":"https:\/\/www.katsbits.com\/site\/?p=2272"},"modified":"2024-04-14T16:35:59","modified_gmt":"2024-04-14T15:35:59","slug":"exporting-models-as-bsp-maps","status":"publish","type":"post","link":"https:\/\/www.katsbits.com\/site\/exporting-models-as-bsp-maps\/","title":{"rendered":"Make *.map Based Levels In Blender 2.49"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_80 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.katsbits.com\/site\/exporting-models-as-bsp-maps\/#Export_Models_From_Blender_As_A_map\" >Export Models From Blender As A *.map<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.katsbits.com\/site\/exporting-models-as-bsp-maps\/#Exporting_The_Model_To_The_map_Format\" >Exporting The Model To The *.map Format<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.katsbits.com\/site\/exporting-models-as-bsp-maps\/#Settings_Used_When_Exporting_Models_To_Maps\" >Settings Used When Exporting Models To Maps<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.katsbits.com\/site\/exporting-models-as-bsp-maps\/#Importing_The_Map_File_Into_GTK_Radiant\" >Importing The Map File Into GTK Radiant<\/a><\/li><\/ul><\/nav><\/div>\n\n<p>With the addition of an export option, Blender 3D can now export meshes and models directly out to the *.map format most often used in games like id software&#8217;s &#8216;Quake&#8217; series. These &#8216;converted&#8217; models can be loaded directly into QeRadiant or GTK Radiant &#8216;as is&#8217;, so it is now possible to &#8216;model&#8217; a level for use in game.<\/p>\n<p>This tutorial <b>only discusses exporting the model out of Blender 3D and into the map format<\/b> so it assumes a model is already available and ready for use, that you are using a version of Blender 3D that includes the &#8220;Quake 3 (map)&#8221; export script &#8211; Blender 2.45 or above, and that you are familiar with the basics of using Blender 3D to create content.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Export_Models_From_Blender_As_A_map\"><\/span>Export Models From Blender As A *.map<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The model being used for this process is show below, it has a combination of &#8216;curved&#8217; (&#8216;arched&#8217; or &#8216;vaulted&#8217; ceiling) and &#8216;flat&#8217; (planar) surfaces that make up the physical structure of the object to be exported from Blender 3D as a *.map. It also has materials and corresponding textures applied to different sections of the mesh (in this case separate &#8216;wall&#8217;, &#8216;floor&#8217;, &#8216;ceiling&#8217; and &#8216;pillar&#8217; textures).<\/p>\n<div class=\"content_images\"><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender_export_model_map\/mesh_textured.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender_export_model_map\/mesh_textured_sml.jpg\" width=\"640\" height=\"458\" alt=\"Model shown in Blender with textures applied and ambient occlusion rendered - this is optional\" title=\"Model shown in Blender with textures applied and ambient occlusion rendered - this is optional\" border=\"0\" \/><\/a><\/p>\n<p>Model shown in Blender with textures applied and ambient occlusion rendered &#8211; this is optional.<\/p>\n<\/p><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Exporting_The_Model_To_The_map_Format\"><\/span>Exporting The Model To The *.map Format<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Exporting a models from Blender to a map is straightforward and doesn&#8217;t require some of the usual steps associated with exporting models to ASE, for example. Select the mesh &#8211; <b>RMB Click<\/b> &#8211; or where multiple objects are needing to be exported, for best results <b>select each object in turn<\/b> (export one at a time). Note that multiple selections can be exported at the same time using <b>Shift+RMB<\/b> to select each section, but where any of those are relatively detailed it&#8217;s best to export separately. <\/p>\n<div class=\"content_images\"><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender_export_model_map\/mesh_wire.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender_export_model_map\/mesh_wire_sml.jpg\" width=\"640\" height=\"458\" alt=\"Wireframe view showing the underlying orientation of the polygons used to build the model\" title=\"Wireframe view showing the underlying orientation of the polygons used to build the model\" border=\"0\" \/><\/a><\/p>\n<p> Wireframe view showing the underlying orientation of the polygons<br \/>\n                used to build the model.<\/p>\n<\/p><\/div>\n<p>Make sure a mesh is selected then from the &#8220;<b>File<\/b>&#8221; menu go down to &#8220;<b>File &raquo; Export<\/b>&#8220;, select and then click on &#8220;<b>Quake 3 (map)<\/b>&#8221; (&#8220;<b>File &raquo; Export &raquo; Quake 3 (map)<\/b>&#8220;). This will open the &#8216;file browse&#8217; window with &#8220;<b>*.map<\/b>&#8221; present in the file name field. Change the <b>file name<\/b> and \/ or <b>save location<\/b> to suit the project being worked on (save the file directly in to the &#8220;<b>\\quake3\\baseq3\\maps\\<\/b>&#8221; folder, or elsewhere and copy \/ paste to the &#8220;<b>maps<\/b>&#8221; folder). Once done click the &#8220;<b>EXPORT MAP<\/b>&#8221; button.<\/p>\n<div class=\"content_images\"><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender_export_model_map\/exporting_blender_model_map.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender_export_model_map\/exporting_blender_model_map_sml.jpg\" width=\"640\" height=\"476\" alt=\"Select the mesh and export using the *.map export script accessable from the 'File' menu - 'File &gt; Export &gt; Quake 3 (map)'\" title=\"Select the mesh and export using the *.map export script accessable from the 'File' menu - 'File &gt; Export &gt; Quake 3 (map)'\" border=\"0\" \/><\/a><\/p>\n<p>Select the mesh and export using the *.map export script accessible from the &#8216;<b>File<\/b>&#8216; menu &#8211; &#8216;<b>File &gt; Export &gt; Quake 3 (map)<\/b>&#8216;<\/p>\n<\/p><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Settings_Used_When_Exporting_Models_To_Maps\"><\/span>Settings Used When Exporting Models To Maps<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Depending on whether the model was build in Blender to scale or not &#8211; that is, at actual size relative to Quake, or using Blenders default object sizing &#8211; one or two settings need to be adjusted so the model gets exported and converted to the right size. On clicking the &#8220;<b>EXPORT MAP<\/b>&#8221; button from the previous step the &#8220;<b>map export<\/b>&#8221; settings pop-up will appear. The main option that need to be changed relative to how the mesh was built is &#8220;<b>Scale:<\/b><i> [value]<\/i>&#8220;.<\/p>\n<p>If the mesh was <b>built using the <a title=\"download the reference pack\" href=\"https:\/\/www.katsbits.com\/site\/gtkradiant-reference-blocks-blender\/\" target=\"_self\" rel=\"noopener\">reference block pack<\/a><\/b> it means the model <b>has been built to scale<\/b>, change the &#8220;<b>Scale<\/b>&#8221; option to &#8220;<b>Scale: 1<\/b>&#8220;. If the mesh was built <b>based on the default settings<\/b> Blender uses when it starts then the mesh will be <b>approximately 100x smaller<\/b> than is required for correct scale \/ sizing in Quake editing. Change or leave &#8220;<b>Scale<\/b>&#8221; at \/ to &#8220;<b>Scale: 100<\/b>&#8220;. Additionally, change &#8220;<b>Face Width:<\/b><i> [value]<\/i>&#8221; to it&#8217;s maximum value of &#8220;<b>10<\/b>&#8220;; &#8220;<b>Face Width: 10<\/b>&#8220;. Click the &#8220;<b>OK<\/b>&#8221; button to export the map. The model will then be exported to a named *.map file.<\/p>\n<div class=\"content_images\"><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender_export_model_map\/exporting_map_settings.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender_export_model_map\/exporting_map_settings_sml.jpg\" width=\"640\" height=\"400\" alt=\"Map export dialogue pop-up with settings\" title=\"Map export dialogue pop-up with settings\" border=\"0\" \/><\/a><\/p>\n<p>Map export dialogue pop-up with settings<\/p>\n<\/p><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Importing_The_Map_File_Into_GTK_Radiant\"><\/span>Importing The Map File Into GTK Radiant<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In order to open the map properly it&#8217;s best located in the &#8220;<b>maps<\/b>&#8221; folder inside &#8220;<b>baseq3<\/b>&#8221; (if creating a map for Quake 3). Once saved, if the file wasn&#8217;t save there, move or copy \/ paste it in to that folder location. The exported model will function exactly like a map created in Radiant so can also be loaded (opened) and saved as such. To open the file into GTK radiant click &#8220;<b>File &raquo; Open&hellip;<\/b>&#8220;, browse to where the file is (the &#8216;Open&#8217; dialogue should open by default in the &#8220;maps&#8221; folder), <b>select it<\/b> and then click &#8216;<b>Open<\/b>&#8216;. The map will load into the Radiant. Conversely to save the file click &#8220;<b>File &raquo; Save<\/b>&#8221; (will overwrite the original file) or preferably &#8220;<b>File &raquo; Save As&hellip;<\/b>&#8221; to create an incremental &#8216;<b>version save<\/b>&#8216; which will allow fixed point regression in case of problems.<\/p>\n<div class=\"content_images\"><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender_export_model_map\/blender_map_radiant_3d_view.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender_export_model_map\/blender_map_radiant_3d_view_sml.jpg\" width=\"640\" height=\"416\" alt=\"3D camera view of the map in GTKRadiant showing brushes selected\" title=\"3D camera view of the map in GTKRadiant showing brushes selected\" border=\"0\" \/><\/a><\/p>\n<p>3D camera view of the map in GTK radiant showing brushes selected.<\/p>\n<p>              <a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender_export_model_map\/exported_map_radiant_2d_view.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender_export_model_map\/exported_map_radiant_2d_view_sml.jpg\" width=\"640\" height=\"1016\" alt=\"Imported *.map in GTKRadiant after export and conversion from Blender 3D showing top, front and side elevation in the 2D grid view\" title=\"Imported *.map in GTKRadiant after export and conversion from Blender 3D showing top, front and side elevation in the 2D grid view\" border=\"0\" \/><\/a><\/p>\n<p>Imported *.map in GTK radiant after export and conversion from Blender 3D showing top, front and side elevation in the 2D grid view.<\/p>\n<\/p><\/div>\n<p>Once the exported and converted *.map is loaded into GTK radiant it can be worked on in the same way as any other Radiant generated level, the brushwork is fundamentally the same so subject to the same build principles.<\/p>\n<div class=\"subNav\">\n<p>[1: <a href=\"https:\/\/www.katsbits.com\/site\/exporting-models-as-bsp-maps\/\" title=\"Making maps with Blender 3D\" target=\"_self\" rel=\"noopener\">Map Basics<\/a> | 2: <a href=\"https:\/\/www.katsbits.com\/exporting-models-as-bsp-maps-advanced\/\" title=\"Advanced options for making maps with Blender 3D\" target=\"_self\" rel=\"noopener\">Entities &#038; Other Options<\/a>]<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":2270,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[327,230,129,331,271,401,106,17,109,108,107,432,216,275],"class_list":["post-2272","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-map","tag-blender-2-4x","tag-bots","tag-bsp","tag-export","tag-grid","tag-gtkradiant","tag-idtech","tag-level-design","tag-level-editing","tag-radiant","tag-scale","tag-script","tag-snap"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/posts\/2272","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/comments?post=2272"}],"version-history":[{"count":1,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/posts\/2272\/revisions"}],"predecessor-version":[{"id":2273,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/posts\/2272\/revisions\/2273"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/media\/2270"}],"wp:attachment":[{"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/media?parent=2272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/categories?post=2272"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/tags?post=2272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}