Содержание:

В этом посте разберём, как сделать кастомный портрет героя в Dota 2 через настройки и консоль: где лежат файлы, как включить режим отладки, что править в portraits_custom.txt, как обновить результат и почему иногда изменения “не видны”. А ещё — как поменять фон и цвет фона, и как связаны камера и освещение.


С какими проблемами обычно сталкиваются игроки

Обычно запрос “изменение портрета дота 2 в самой игре” появляется из-за трёх болей:

  • Портрет хочется “пересобрать”: с другим ракурсом, светом, камерой, фоном и его цветом.
  • Непонятно, где искать нужные файлы: “портреты нигде не могу найти”, хотя модель и конфиги есть.
  • Изменения сделаны, а эффекта нет: то забыли перезагрузить, то не тот путь, то нужно переключить героя/камеру, чтобы обновление подхватилось.

Где лежат файлы портретов в Dota 2

Фактически портрет в Dota 2 строится из связки “модель героя + настройки камеры/света + фон”, а сами параметры хранятся в текстовых файлах.

Ключевой ориентир по директориям (встречается в гайдах и моддинге):

  • Конфиги портретов: папка scripts/npc/portraits
  • В кастомизации используется файл portraits_custom.txt (он создаётся в нужном месте внутри вашей “кастомки”)
  • Фоны для портрета обычно берутся из материалов типа .vmat, которые подключаются строкой PortraitBackgroundTexture

Главное: “портрет” меняется не PNG, а через настройки сцены

Многие ждут, что можно просто “положить свой PNG”. Но на практике в связке Dota 2 часто используется модель и параметры отображения: камера, свет, активность анимации.

Отсюда важный вывод: чтобы “заменить” то, что вы видите в портрете, вам нужно настроить, как движок будет снимать герой (через “путь к модельке” в конфиге) и что он покажет на фоне.


Разрешение портрета: что должно быть “как надо”

Внутри Dota 2 “портрет” — это не одна статичная картинка, а рендер/сцена с параметрами. Поэтому классическое “вставь PNG 512×512” обычно не решает задачу.

Практический подход такой: вы не “рисуете портрет картинкой”, а управляете сценой — камерой и освещением, а фон подставляете через PortraitBackgroundTexture (материал). Поэтому вместо поиска “точного разрешения” в большинстве случаев важнее:

  • правильный путь к модели героя
  • корректные параметры cameras (позиция/углы/FOV)
  • корректный материал .vmat для фона

Включить консоль и открыть режим отладки портрета

Чтобы управлять сценой портрета прямо в клиенте, нужен доступ к консоли и cheat-режиму.

Схема из проверяемого гида:

  • В свойствах Dota 2 включите -console
  • В параметрах запуска также используют -override_vpk (если вы работаете с переопределениями файлов)
  • В игре назначьте кнопку на “toggleconsole”
  • В консоли включите:
  • sv_cheats 1
  • dota_portrait_debug_mode 1

После этого вы оказываетесь в режиме, где можно “крутить” портрет: менять параметры сцены портрет-рендера (камеру, положение, и т.д.), используя ввод мышью и клавишами навигации.

Чтобы выйти из режима и увидеть результат, отключают debug и перезагружают:

  • dota_portrait_debug_mode 0
  • dota_portrait_reload

Как перезагрузить портрет после правок

Это самый частый момент, из-за которого “я поменял, но не работает”.

После изменений конфигов нужно:
- вернуться в игру
- выполнить dota_portrait_reload
- иногда помогает “переключить камеру на другого” и обратно, чтобы движок точно перечитал параметры (так тоже отмечали в обсуждениях)


portraits_custom.txt: настройка портрета через файл

Когда вы делаете свою кастомизацию, логика такая:

  • вы создаёте portraits_custom.txt
  • в нём описываете блок "Portraits"
  • внутри задаёте запись для конкретной модели героя
  • а дальше правите параметры: свет, фон, анимационную активность, и особенно cameras

Типовая структура блока выглядит примерно так:

  • "Portraits" { "Version" "1" ... "PreferModelNames" "1" ... }
  • Далее: запись, где путь к модельке указан строкой вроде:
  • models/heroes/xxx/xxx.vmdl
  • Затем настройки:
  • PortraitLightPosition, PortraitLightAngles, PortraitLightFOV, PortraitLightColor, PortraitShadowColor
  • PortraitBackgroundTexture и PortraitBackgroundColor1..4
  • PortraitAnimationActivity
  • cameras { "default" { PortraitPosition, PortraitAngles, PortraitFOV } }

Главная идея: чтобы у вас поменялся портрет конкретного героя, вы указываете путь к его модели, а затем меняете “как камера и свет рисуют этого героя”.


Какие параметры реально менять в portraits_custom.txt

Вот что можно “перебирать”, не ломая всю структуру:

Параметр Что меняет в портрете Зачем это нужно
PortraitLightPosition где стоит свет портрет становится “объёмным” или наоборот плоским
PortraitLightAngles угол света меняет тени и настроение
PortraitLightFOV “ширина” освещения влияет на характер бликов/теней
PortraitLightColor цвет света драматичнее/нейтральнее
PortraitShadowColor + PortraitShadowScale тени и их сила можно сделать “жёсткий” или “мягкий” портрет
PortraitAmbientColor + PortraitAmbientScale заполняющий свет снижает контраст
PortraitBackgroundTexture фон (материал .vmat) заменяет стандартный задник
PortraitBackgroundColor1..4 цветовые слои фона помогает подстроить тон под героя
PortraitAnimationActivity активность анимации чтобы герой позировал по нужному “поведению”
cameras > default > PortraitPosition позиция камеры ракурс героя
cameras > default > PortraitAngles поворот камеры “поймать” лицо/фигуру
cameras > default > PortraitFOV угол обзора ближе/дальше кадр

Как заменить стандартный фон портрета на свой

Фон задаётся через PortraitBackgroundTexture.

Что важно:
- часто фон — это не PNG, а материал типа .vmat
- стандартные варианты лежат в материалах интерфейса (вроде materials/vgui/hud/heroportraits/...)
- вы подставляете свой путь в PortraitBackgroundTexture


Как создать свой задний фон для портрета в формате .vmat

Коротко и по сути: чтобы в PortraitBackgroundTexture работал “ваш фон”, вам нужен корректно собранный материал .vmat.

Типовой процесс в Valve-экосистеме:
- сделать исходники текстур/шейдерной заготовки
- собрать материал в формате .vmat
- положить его туда, где игра сможет загрузить (и затем указать путь)


Как изменить фон портрета и цвет фона

Две части:

  • Сам фон: меняете PortraitBackgroundTexture (указываете другой материал)
  • Цвет: меняете PortraitBackgroundColor1, PortraitBackgroundColor2, PortraitBackgroundColor3, PortraitBackgroundColor4

Так вы можете оставить тот же фон-материал, но перекрасить слои под нужную палитру.


Можно ли использовать PNG для портретов в Dota 2?

Если очень упростить: “PNG просто положить и заменить портрет” обычно не является прямым способом, потому что портрет строится из сцены и материала фона.

Но PNG-логика возможна косвенно:
- PNG используется как текстура внутри материала
- а сам материал всё равно должен быть подключён как .vmat через PortraitBackgroundTexture


Где указать путь к пользовательской модели героя для замены портрета

В portraits_custom.txt нужная строка — это место, где указан путь к модели, например:
- models/heroes/ancient_apparition/ancient_apparition_old.vmdl (пример формата)

Чтобы “портрет” менялся для нужного героя, замените этот путь на путь к его модели.

И вот здесь многие путаются: путь — это к модели, а фон и камера настраиваются уже параметрами ниже.


Как настроить освещение и камеру для портрета

Освещение — это блок PortraitLight... + PortraitShadow... + PortraitAmbient....

Камера — это cameras { "default" { PortraitPosition, PortraitAngles, PortraitFOV } }.

Практический лайфхак: сначала “поймайте” кадр камерой (положение/углы/FOV), затем уже тонко подстраивайте свет. Тогда результат будет выглядеть цельно, а не как “перекрашенная фотография”.


Можно ли заменить героя в лобби с помощью консольной команды

Если вы подбираете “что будет на экране”, в лобби иногда используют консольные команды. В одном из обсуждений приводили пример для режима отображения капитанов:

  • dota_sf_hud_force_captainsmode 1
  • затем dota_sf_hud_force_captainsmode 0

Это не “смена модели портрета навсегда”, а переключение поведения интерфейса/отображения в контексте главного экрана.


Как изменить видео-презентацию героя в Dota 2

Отдельный визуальный слой — видео-презентация героя.

Общий подход:
- найти папку с видео:
- ...\dota\panorama\videos\heroes
- видео имеет имя формата npc_dota_hero_<имя>.webm
- чтобы подменить — заменяют файл или переименовывают новый под исходное имя

Замечание из практики: “в самой игре” иногда работает иначе, чем на главном экране и в моментах показа (драфт/выбор). Поэтому всегда проверяйте именно там, где вы ожидаете эффект.


Удаление анимаций с главного экрана для повышения FPS

Если цель — производительность, встречается способ отключить фоновые карты/анимации:

  • консольная команда map_enable_background_maps 0

В источниках отмечают прирост производительности в диапазоне 15–20 FPS, но точные цифры зависят от железа и настроек.

И важный момент: это уже не “портрет героя”, а изменение поведения главного меню.


Работает ли изменение портрета в Reborn и совместимо ли с обновлениями

По обсуждениям и практике моддинга ответ обычно такой:
- многие схемы с портретами связаны с тем, как игра читает файлы и переопределения
- после обновлений часть путей/структур может измениться
- поэтому важно проверять, работает ли dota_portrait_debug_mode и подхватывается ли dota_portrait_reload после правок

Если после обновления “ничего не поменялось”, почти всегда причина в одном из:
- не тот файл/путь
- не включены нужные параметры запуска
- изменения не перечитались (нужен reload/переключение сцены)


Итого: самый короткий путь к результату

Если вы хотите пройти от “хочу поменять” до “вижу новый портрет” максимально прямым маршрутом, порядок такой:

  • Включить консоль
  • Зайти в режим sv_cheats 1 и dota_portrait_debug_mode 1
  • Подстроить камеру/свет, чтобы понять “как должно выглядеть”
  • Выйти из режима и перенести параметры в portraits_custom.txt
  • Подставить правильные пути к модели и фону (через .vmat)
  • Выполнить dota_portrait_reload и перепроверить в игре

Так вы получите контролируемый портрет: не “случайную картинку”, а управляемую сцену — свет, фон, цвет и ракурс.