Obsidian для игрового сценариста

Obsidian для игрового сценариста

Привет всем обитателям DTF. Я уже как 3 месяца пишу сценарий для Action/RPG игры «Raincarnation» используя Obsidian. И в этой статье я хочу поделиться с вами своим опытом. Написанное здесь также будет полезно и для пользователей Notion, и прочих приложений для формирования базы знаний.

Его использование мною обусловлено:

  • Наличием красивого дизайна, который при желании можно изменить
  • Возможностью посмотреть на связи между заметками в графовом виде (хотя эту фичу я так и не юзал)
  • Удобным создание ссылок на другие заметки
  • Возможностью внедрять html код

Но прежде чем мы приступим к написанию сценария — необходимо провести базовую настройку.

Настройка Obsidian

Для тех кто соскучился по родному языку — необходимо перейти в раздел About (сбоку слева) в настройках. И в пункте Languages выбрать необходимый вам язык. Я же оставлю английский.

Смена языка
Смена языка

Для начала сделаем так, чтобы все медиа файлы попадали в одну и туже папку. Заходим в настройки -> Files & Links. Выбираем у Default location for new attachments пункт In the folder specified below. А затем в пункте ниже Attachment folder path пишем ту папку, которую хотим, предварительно создав её. У меня это папка files. Также убедитесь в том, что пункт Automatically update internal links — включён.

Дефолтная папка для медиа
Дефолтная папка для медиа

Также чтобы нам было проще преобразовывать текст во внутреннюю ссылку — переходим в раздел Hotkeys. В поиске пишем Add internal link и добавляем свой комбинацию горячих клавиш. Но я советую Ctrl + Alt + K. Потому как преобразование текста во внешнюю ссылку Ctrl + K.

Внутренние ссылки позволяют быстро перемещаться между заметками и для них очень удобно делать псевдонимы, чтобы органично вплести их в текст. Пример:

И пошёл [[Персонажи#Дрочислав|Дрочислав]] вершить суд над ящерами лютыми. И пошёл Дрочислав вершить суд над ящерами лютыми.
Горячие клавиши для создания внутренних ссылок
Горячие клавиши для создания внутренних ссылок

Чтобы метаданные (о них ниже) отображались в режиме чтения — необходимо в настройках перейти в Editor и включить Show frontmatter.

Включение метаданных в режиме чтения.
Включение метаданных в режиме чтения.

И вот теперь когда наша жизнь стала намного проще — можно приступать к написанию сценария. А начнём мы это делать с такой базовой вещи как «Технический дизайн документ».

Технический дизайн документ

Это самая первая страница, которая отражает суть игры и описывает ключевые страницы. Многие тоже пишут его по разному, но при создании своего я руководствовался информацией из этого видео.

Как и зачем писать дизайн документ для игры. От блогера IVNK.

У меня получились следующие пункты, но вы можете придумать свои:

  • Жанр (указываю тип игры и синопсис для всей истории)
  • Сюжет (список из ссылок на главы по порядку, можно написать краткий синопсис к каждой главе)

Далее идут ссылки на страницы с небольшим описанием к ним:

  • Геймплей (схема описывающая геймплей всей игры)
  • Механики (описание механик по категориям)
  • Управление (сопоставление действий игрока с клавишами под разные типы устройства)
  • Словарь (страница, где собраны все придуманные слова, которые существуют только в мире игры)
  • Персонажи (ключевые персонажи с их предысториями и способностями, если такие предполагает игра, а также NPC)
  • Локации (ключевые места, города и прочие местности)
  • Музыка (может быть встроенная, так и иметь вид кода для вставки ютуб видео)
  • Снаряжение (описание всего, что может иметь игрок с прогрессией предметов, если таковые имеются)
  • Культура (описание традиций и быта разных народов, а также их религий)
  • События (рассказывает о ключевых моментах истории мира, которые были до игрока и которые произойдут уже с ним)
  • Организации (описание всех группировок с которыми игрок будет сталкиваться по ходу сюжета. В том числе и страны, если они есть)
  • Развилки (содержит выбор игрока с описанием того, чем чреват тот или иной выбор, может ссылаться на определённые главы истории)

Содержание некоторых страниц уже очевидно, тогда как другие стоит рассмотреть более детально.

Геймплей

Говоря о схемах — я имею ввиду canvas. И хоть стандартный набор позволяет делать только карточки и связывать их давно с другом — это легко можно решить с помощью плагинов. Но я их не использовал, поэтому оставляю это на ваш вкус.

Я описываю геймплей с помощью схем, потому как тогда становится наглядно, как будет работать core loop. Также прямо в карточках можно ссылаться на какие-либо механики со страницы «Механики».

Музыка

Вы можете скачать трек и вставить его прямо в заметку, тогда у вас появятся стандартный плеер, который опять таки может быть улучшен за счёт плагинов. Даже видео с Ютуба может скачано в виде MP3.

Однако, я рекомендую пойти вторым путём. Говоря о том же Ютубе — можно встроить его как на страницу в виде html кода. Не забываем, что Obsidian распознаёт html разметку.

Под видео ищем кнопку «Поделиться». Далее в диалоговом окне нажимаем на «Встроить» и копируем код.
Под видео ищем кнопку «Поделиться». Далее в диалоговом окне нажимаем на «Встроить» и копируем код.

Да даже если это не Ютуб, то у нас всё равно остаётся пространство для подобного маневра. Хотя описывать его здесь — очень муторно.

Развилки

В начале каждой страницы можно оставлять метаданные (автор, дата создания, теги и прочие). В последней версии Obsidian это очень удобно реализовано.

Метаданные в начала страницы (старая версия Obsidian).
Метаданные в начала страницы (старая версия Obsidian).

Теги по своей сути работают также как и в Телеграмме. То есть они позволяют структурировать информацию по тегу, который мы указали в начале заметки. Однако теги можно поменять не только уровне всей заметки, но и на уровне какого-то блока текста в этой самой заметки. Также важно помнить, что теги могут быть многоуровневыми. То есть иметь вид:

#Событие/действие_1/действие_2/и_так_сколько_угодно

В нашем случае это помогает делать применением для выбора игрока. Допустим перед игроком встаёт выбор помогать или не помогать тому или иному герою. Тогда в этом блоке текста, где описаны данный выбор я указывал два (или больше) тега: Дрочислав/помощь_1 и Дрочислав/отказ_1. Если действие более очевидное, то можно уточнить его, а не вдаваться в обобщения: Дрочислав/отдать_аптечку и Дрочислав/оставить_аптечку.

Далее мы идём в заметку под названием «Развилки» и пишем те же самые теги, что мы до этого писали. И напротив них пишем описание того, что это значит для игрока, к каким последствиям приведёт его выбор.

Теги на уровне заметки лучше использовать для пометок требуемого уровня игрока, который нужен ему для прохождения данного сюжетного отрывка. Особенно это актуально для дополнительных заданий. Лично у меня определён диапазон уровней, поэтому я имею следующие теги: easy_lvl (1-29), middle_lvl (30-69), hard_lvl (70-100).

Пример использования тегов в метаданных заметки.
Пример использования тегов в метаданных заметки.

Для более удобного взаимодействия с тегами рекомендуется установить плагин Tag Wrangler. Как минимум из-за функции глобального переименования тегов.

Показ сценария коллегам

Поскольку мы пишем сценарий не столько для себя, сколько для других членов нашей команды, то нам необходимо как-то показать своё творение. И в зависимости от того насколько вы доверяете своим коллегам и насколько печётесь о своих авторских правах — будет зависеть ваш дальнейший путь. Речь идёт о том случае, когда составить договор между двумя лицами не представляется возможным, а потому присвоить ваш сценарий не составляет большого труда. Хотя и в том и другом случае необходимо будет указать имена авторов c датой создания заметки.

Для себя я выделил два пути, хотя кто-то может придумать новые.

Поделиться Vault областью

Да, если вас не особо заботит, что кто-то другой будет менять ваш сценарий и вы доверяете человеку, которому собираетесь его показать. То тогда просто архивируете папку в которой хранятся ваши заметки и скидывайте нужному человеку. В Obsidian такая папка называется Vault.

Сделать сайт из заметок

Если вы хотите явно показать ваше авторство и вы не доверяете своему коллеге, то вам необходимо дать доступ к нашим заметкам через интернет. Оставив исходники в надёжном хранилище. Для этого необходимо преобразовать заметки в html файлы с помощью бесплатного плагина obsidian-webpage-export и выложить их на бесплатном хостинге через удалённый Git репозиторий. В этом случае, что если вы храните ваш сценарий в своём репозитории, то это как ничто другое доказывает ваше авторство. Достаточно будет предоставить историю ваших коммитов в качестве весомого доказательства. Также имея удалённый репозиторий удобно синхронизировать данные между разными устройствами и наладить совместную работу.

Говоря о самом плагине стоит упомянуть, что недавно появилась новая версия позволяющая экспортить даже canvas-схемы, но из самого Obsidian она почему-то не устанавливается. Поэтому необходимо скачать архив по ссылке выше, разархивировать папку и перенести её в папку Название_Vault_области/.obsidian/plugins.

В качестве бесплатного хостинга я использую Vercel. Он очень прост в применении. Нам всего лишь надо подключить свой GitHub репозиторий (или его аналог) и в настройках включить Git LFS, о нём чуть ниже.

Включение Git LFS в Vercel. Settings -> Git -> Git Large File Storage (LFS)
Включение Git LFS в Vercel. Settings -> Git -> Git Large File Storage (LFS)

Также необходимо в нашей Vault области создать файлик vercel.json со следующим содержанием.

{ "redirects": [ { "source": "/", "destination": "/папка_со_всеми_заметками/технический-дизайн-документ.html" } ] }

Чтобы когда пользователь открывал наш сайт, то автоматически попадал бы на наш «Технический дизайн документ».

И вот вы написали первые главы своей истории, делаете первые коммиты в основную ветку GitHub. А Vercel всё это подхватывает и показывает в браузере. Красота да и только!

Я, когда всё работает так, как я задумал.

Но по мере роста различных медиа ресурсов в ваших заметках — появляется потребность в такой вещи как LFS (file large system), которая создаёт отдельный архив для всего медиа, а в самом репозитории хранит лишь ссылки на эти ресурсы.

Для этого необходимо включить LFS в самом репозитории GitHub, затем установить LFS к себе на компьютер. И не хитрыми операциями в консоли создать конфигурационный файл .gitattributes для папки с медиа и сообщить об этом GitHub. Плагин obsidian-webpage-export также генерирует папку lib/media. Там он дублирует файлы, поэтому делаем эту папку дефолтной для всех медиа файлов. И переносим из нашей старой папки конфигурационный файл .gitattributes, а старую папку удаляем. Таким образом медиа файлы не будут дублироваться в репозитории дважды. И затем как ни в чём не бывало вновь делаем коммиты, как мы делали их до этого.

Включение Git LFS в репозитории GitHub. Settings -> General, в самом низу.
Включение Git LFS в репозитории GitHub. Settings -> General, в самом низу.
Конфигурационный файл .gitattributes обычно имеет следующие содержание: *.png filter=lfs diff=lfs merge=lfs -text

Однако хранилище LFS в GitHub ограничено и в какой-то момент он может потребовать перейти на платную подписку. Это является проблемой, которую я пока не решил, хотя чтобы отсрочить этот момент — необходимо делать следующие вещи:

  • Выбрать минимальный, но приемлемый размер для картинки
  • Конвертировать в формат с минимальным размером. Недавно появился AVIF. Популярный фотосток Unsplash использует именно его для хранения фотографий. Однако он не поддерживается Obsidian, поэтому лучше использовать WebP.
  • На худой конец можно сдать изображение с помощью какого-то онлайн компрессора. Да, картинка будет иметь артефакты, но мы и не галерею сделать хотим 😉

Отключить обновление Obsidian

Иногда при новом обновление Obsidian — отваливаются некоторые плагины. Так было у меня с obsidian-webpage-export, который стал некорректно работать с последней версией Obsidian (но это была старая версия плагина, не последняя!). И не смотря на то, что auto-update в настройках был выключен — он всё равно решил обновиться. Тогда выходим из ситуации элегантным образом. Дальнейшие действия будут описаны для пользователей Windows.

Необходимо зайти перейти на диск C -> Пользователи -> Название вашего профиля -> Roaming. Там будет папка лежать exe файл obsidian-upgrade [update], уже точно не помню. И удаляем его. Если обновление уже установлено. Это можно проверить в настройках раздела About. Установленная (installer) версия должна совпадать с текущей (current) версией. Если текущая версия отличается от установленной — значит обновление уже установилось.

Проверка версий Obsidian
Проверка версий Obsidian

В таком случае заходим в папку obsidian, которая лежит всё в том же Roaming. И там находим файл с версией, которая отражается как текущая в настройках Obsidian и удаляем её.

Если вам по какой-то причине тоже понадобилась старая версия, то их можно найти на этой странице.

Дополнительные плагины

Помимо тех плагинов о которых я уже писал — полезными могут быть:

Таблицы нужны для создания разветвлённых диалогов в рамках одной заметки. Поэтому удобство работы с таблицами выходит на первый план. Однако, если диалоги слишком сложны, то лучше использовать плагин Obsidian Dialogue Plugin. С ним намного удобнее.

Вместо Highlightr — я использую стандартные возможности markdown в Obsidian. А именно «цитату», которая может отображается по разному в зависимости от указанного в начале типа. Лично я использовал только первые два.

Цитата с > [!info]
Цитата с > [!info]
Отображение с > [!info]
Отображение с > [!info]
Цитата с > [!danger]
Цитата с > [!danger]
Отображение с > [!danger]
Отображение с > [!danger]
Цитата с > [!success]
Цитата с > [!success]
Отображение с > [!success]
Отображение с > [!success]
Цитата с > [!warning]
Цитата с > [!warning]
Отображение с > [!warning]
Отображение с > [!warning]
Лого Obsidian
Лого Obsidian

Несмотря на минусы — работать в Obsidian мне очень понравилось. Это намного лучше, чем писать сценарий в обычном Ворде и выделять реплики персонажей разным цветом, а потом искать что это за персонажи такие.

Конечно, я описал лишь базовый подход. При желании эту структуру можно модернизировать и вширь, и ввысь. Если у меня появятся идеи, то сделаю продолжение этой статьи, а пока...

Желаю успехов в написание ваших шедевров гейминдустрии!

4747
14 комментариев

Комментарий недоступен

4
1

Основательно ты подошёл к Лору однако

Я довольно долго пользовался обсидианом, но в итоге перешел в ноушн. Может для локальноой работы пойдет без инета и график долго время забавляет, но порой удобность ноушн перетягивала меня в него и в итоге весь ушел в него...

1

Выглядит как что-то действительно удобное, спасибо за статью.

Достойная инфа

Облачная синхронизация за отдельную ную плату. Расходимся.

P.S. Граф - прикольная штука.

Да, к сожалению разработчики предоставляют синхронизацию только по платной подписке. Поэтому приходится придумывать обходные пути, такие как GitHub.