Wegemu wrote:Август, если настолько принципиально использование русского языка в интерфейсе (что, имхо, будет только путать), то скрипты вообще никто не заставляет писать внутри Blender или копировать их "внутрь" (да и это же неудобно вообще!).
Wegemu, интерфейс достаточно качественно русифицируется, а вот текстовый редактор в окне не справляется с шириной символов. Приспособиться, конечно можно, однако использовать внешние редакторы это дополнительные заморочки
1) В директории где лежит главный blend-файл (тот, который скармливаем blenderplayer, ну или runtime.exe если делали export game) создаем директорию, например scripts (любое имя на латинице, как душе угодно).
2) Пишем в любом текстовом редакторе на выбор: Geany, Vim, Emacs, Notepad++, PyCharm, хоть Visual Studio.
3) Сохраняем python-файл(ы) в директорию scripts из пункта 1.
4) В игре теперь вызов скриптов будет работать только через PythonController в режиме Module. Чтобы вызвать какую-нибудь функцию пишем scripts.module_name.func_name. Где module_name соотв-но имя python-файла из директории scripts без расширения .py, func_name - имя функции в module_name.
5) ????????????
6) PROFIT!!!
7) Запускаем игру.
В итоге директория с игрой выглядит как-то так:
└───ubiytsa_skairima
├───conf
├───fonts
├───objects
├───levels
├───scripts
│ └───some_module_name1.py
│ └───some_module_name2.py
│ └───module_name.py
│ └───engine.py
├───sound
├───textures
└───Диздок
└───game.blend
Важно! Чтобы это все работало необходимо blenderplayer запускать из директории где лежит blend-файл (например через .sh или .bat), т.е. из рабочей директории игры. Blenderplayer ищет файлы в os.sys.path, о чем далее.
Можем пойти еще более интересным путем. Положить все ресурсы игры в директорию, например, data.
1) Делаем "пустой" blend-файл с пустышкой (Empty).
2) Создаем в Blender в текстовом редакторе скрипт:
import os
os.sys.path.append('./data/')
from scripts import engine
engine.main()
Для чего это? А теперь все ресурсы игры у нас в лежат в директории data, т.е. textures, scripts, objects и т.д.
Как по мне то это намного удобнее чем втыкать во внутреннем редакторе. Почему-то в уроках про это мало где сказано.
Могу сделать пример, если непонятно (значит плохо объяснил).
Wegemu, дело не в том понятно или не очень. Ново для меня, незнакомо, но интересно. Если поделитесь примером, с толковыми комментариями, буду бескрайне благодарен, ведь принцип способа может пригодиться и в иных ситуациях.
P.S.
Опробовал 32-ух разрядные версии - та же самая проблема.