CGAleksey

CGAleksey

Делаю 3D - головоломку от первого лица, публикую результаты работы. Сайт: torshock.com Тележка: @CGAleksey -
Пикабушник
Дата рождения: 01 января 1990
поставил 1255 плюсов и 96 минусов
отредактировал 0 постов
проголосовал за 0 редактирований
5314 рейтинг 27 подписчиков 23 подписки 71 пост 23 в горячем

Вечный шнур моего макбука

Год назад написал пост о том как заменил стандартный шнур зарядника своего Mackbook Pro 2014mid: Замена провода зарядки макбука в домашних условиях

Старый шнур растрепался, оболочка сломалась через месяцев 15. В общем вид шнура был "так себе", да и бил током этот шнур.

Показывал многим свою работу: одногрупникам, на форуме и почему-то люди как-то скептически относятся к замене обычного шнура. Примерно все говорят следующее: ну молодец, посмотрим что будет с твоим шнуром через год.

Прошёл год. Полет нормальный, даже идеальный. У моего Mackbook Pro теперь долговечный шнур: гнется, оболочка не ломается, ноут заряжает. Фото-отчёт:

Вечный шнур моего макбука Мак, Apple, Ремонт техники, Зарядка, Зарядное устройство, Провод, Аккумулятор, Замена, Длиннопост
Вечный шнур моего макбука Мак, Apple, Ремонт техники, Зарядка, Зарядное устройство, Провод, Аккумулятор, Замена, Длиннопост
Вечный шнур моего макбука Мак, Apple, Ремонт техники, Зарядка, Зарядное устройство, Провод, Аккумулятор, Замена, Длиннопост
Вечный шнур моего макбука Мак, Apple, Ремонт техники, Зарядка, Зарядное устройство, Провод, Аккумулятор, Замена, Длиннопост
Вечный шнур моего макбука Мак, Apple, Ремонт техники, Зарядка, Зарядное устройство, Провод, Аккумулятор, Замена, Длиннопост

Единственный недостаток - смола немного пожелтела. Но это не сказалось на её прочности.

Бонус: замена аккумулятора Mackbook Pro.

Добавлю ещё такой момент: менял аккумуляторы на макбуке. Тогда в сети не было информации как их менять. Сейчас не знаю как с этим. Так вот, было немного не по себе, пришлось осуществлять замену без всяких инструкций. Мало того, так ещё и мужик из салона, который продал аккумуляторы пугал, говорил, что замена батареек - это что-то на уровне мишэн импоссибл. Наговорил с три короба про то как три опытных мастера подменивали друг друга и меняли аккумулятор макбука.

В итоге я пришёл домой, открутил крышку, отсоединил разъем и более-менее аккуратно оторвал аккумуляторы от двухстороннего скотча.
И все... Все сломалось, все развалилась, все пропало. 2к долларов пошли в помойку. Ноут сломался.

Это была шутка. Нет, все закончилось хорошо.
Протёр все спиртом, удалил старую клейкую ленту.
Ну и все. Приклеил новый аккумулятор и подключил разъем. Прикрутил крышку. Ноут включился и все ещё работает больше года.

Работы было максимум на 15 минут. Самая сложная часть - оторвать аккумулятор и удалить старую клейкую ленту.

На этом всё. Надеюсь для кого-то этот пост оказался полезным :)

Показать полностью 5

Пространство и программисты

А вас не коробит от того, что пару простых действий заимают весь экран?

Не знаю откуда взялась / пошла эта мода писать код выполняющий нехитрые, однотипные действия максимально развернуто. И это встречается все чаще и чаще, почти везде. Например, даже инструкции уже так пишут:

Пространство и программисты Код, IT, Программирование, Форматирование, Логика, Отступы, Пространство, Программист

Какими будут мои предложения? Их есть у меня. В худшем случае можно написать хотя бы так:

Пространство и программисты Код, IT, Программирование, Форматирование, Логика, Отступы, Пространство, Программист

Может я всю жизнь неправ, может здесь есть какой-то хитрый умысел размазывать пару строчек во весь экран, а еще лепить неймспейс скобки к каждому "if-else"...

Показать полностью 2

Наш опыт разработки шрифтов и локализации игры

Привет всем! Хочется немного поделиться своим опытом по части разработки, интеграции шрифта и локализации нашей игры, которую мы разрабатываем на Unity.

Поиски бесплатного шрифта

Месяцев 7 назад мне пришлось работать над шрифтом. Ранее не доводилось работать со шрифтами (в шрифтах не специалист), так что создавал всё путем поиска наиболее подходящих, на мой взгляд, образцов. За основу нашего шрифта был взят шрифт, которым написано слово "МОЛОКО":

Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост

Далее проводились бесконечные попытки начертания глифов в тетради в клетку и их перенос в растровый формат. Перенос глифов в растровый формат - это моя большая ошибка. Правильнее было бы сразу все делать в векторе. Ниже прилагаю сохранившийся материал из процесса работы над некоторыми глифами (первые наброски):

Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост

Финальные тесты в Unity:

Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост

Перенос шрифта с бумаги в png-файл:

Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост

Пример стилизованного символа "Q" :

Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост

Так выглядят текстуры наших финальных кириллических и латинских глифов/символов (растровый вариант):

Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост
Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост

Поддержка языков, проблемы

Предполагалось, что система локализации должна быть максимально гибкой. То есть должна быть возможность добавления новых шрифтов "без проблем".

Разработка шрифта стала для меня большим проектом. Кроме разработки и переноса шрифта в старой системе шрифтов Unity, нужно было вручную разметить участки текстуры, которые отвечали за символы:

Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост

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

Позже выяснилось, что ручной подход настройки отображения шрифтов изначально был негибким, не учитывали кучу особенностей символов. Основная особенность - в разных алфавитах разное количество букв. А ещё бывают весьма экзотические буквы, которые либо значительно сокращают место на карте текстуры шрифта, либо требуют особой настройки отображения из-за отличающихся габаритных размеров. Например, лигатуры и "умлауты (umlauts)":

Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост
Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост

Лигатуры - это символы, которые состоят из нескольких склеенных символов (как на рис. выше).

К счастью, в Unity появился бесплатный TextMesh Pro. Это очень хороший плагин, который автоматизирует процесс переноса шрифтов из ttf-формата в текстуру с настроенными параметрами отображения. Часы работы по настройке отображения каждого глифа, задания расстояний и прочего сократились до пары щелчков мышкой. Фантастика!

Зачем нам свой шрифт, когда можно взять бесплатный?

На самом деле, зачем он и для чего? Очень часто у многих встаёт такой вопрос. В сети нередко возникают споры между дизайнерами и остальными разработчиками по поводу того, что на шрифтах можно здорово сэкономить.

К слову, в сети очень часто высказываются в пользу минимизации времени работы над шрифтами, так как многие предполагают, что шрифт вносит незначительный вклад в восприятие игры и в геймплей в целом. Часто предлагают: "не заморачиваться и использовать что-то попроще".

На самом деле есть доля правды в отсутствии необходимости проработки шрифтов. Согласно моему опыту, все зависит от конечного продукта, от его качества, от того, что дизайнеру необходимо передать (в том числе и с помощью шрифта).

Для дизайнера шрифт - это не просто обезличенные символы, это нечто намного большее. Это способ общения с человеком, это качество общения, качество сервиса, эмоции, способ восприятия информации, нарратива. Это целая вселенная.

Сам по себе шрифт - это мощнейший инструмент, который нужно уметь использовать. Подобрав неверный шрифт, можно не то чтобы испортить атмосферу игры, можно просто сделать игру бессмысленной, непонятной, противоречивой.

Давайте рассмотрим следующий пример.

Допустим, у нас игра для детей 7-10 лет, без насилия. В игре есть милые NPC, которые здороваются с вами, сажают овощи, желают хорошего дня, вечера и так далее. Что-то типа игры про весёлую ферму.

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

Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост

Вы прочувствовали всю доброту пожеланий?

Или вот ещё варианты передачи фраз добродушного зайчика посредством шрифта:

Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост
Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост

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

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

Бесплатные шрифты

Согласно моему опыту, у бесплатных шрифтов есть большие недостатки. Во-пепвых бесплатных шрифтов очень много (тысячи). Во-вторых лично мне не удалось найти в этой разнообразной тьме что-то подходящее для нашего проекта. Убив значительное время на поиски, я изрядно замучался и был поражён скудностью огромного разнообразия в бесплатном.

Среди платных шрифтов мне попалась пара подходящих вариантов. Но в этих вариантах отсутствовали либо кириллические символы, либо латинские. Цена использования каждого из таких шрифтов в коммерческих проектах (приложения) была в диапазоне по 90 - 120 тыс. руб за шрифт. Для использования на сайте цена была ниже. Ну а для личного приватного использования плата вовсе не взымалась.

Перед разработчиками стоит непростая проблема:
- либо нужно вложить 2x * много денежных средств на приобретение шрифта
- либо нужно вложить много сил и создать свой шрифт

Для нас выбор был очевиден - придётся работать и создавать свой шрифт.

Создание векторного шрифта

Начну сразу с платного ПО, которое использовал. Birdfont - замечательная программа за $5 на которой мы остановили свой выбор. Программа позволила быстро перенести растровый шрифт в векторный формат.

Достоинства:
- очень дешёвая лицензия
- достаточно удобная (когда освоишься)
Недостатки:
- тормозит, есть баги, недоработки
- интуитивно непонятный интерфейс и горячие клавиши

Возможно есть ещё какие-то недостатки, которые видны профессионалам, но меня пока все устроило (особенно цена).

Тонкости создания глифов

Birdfont сильно упростил процесс создания векторных глифов и мы расширили поддержку алфавита. Добавили поддержку следующих языков (кроме английского и русского):
- немецкий
- французский
- испанский
- итальянский
- польский
- чешский
- венгерский
Кажется ничего не упустил.

В процессе работы над глифами обнаружил, что играл со шрифтами и сильно проиграл.

Ситилизация шрифтов - головная боль для дизайнера. Как можно играть с дизайном глифов и проиграть.

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

Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост
Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост

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

Ваши символы "A", "B", "C" стилизованы не совсем верно. Символы "D", "E", "F" содержат серьёзные проблемы.
Далее следовало уточнение о том, что неверно и почему. В целом наш шрифт вызывал бы неприязнь, отторжение у носителей языка. Забраковали работу :(

Особо отмечу, что сильно забраковали эти два символа, которые похожи на "А" и "С". Вот они:

Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост

Заметили мелкие крючки на конце?
Крючки, точки, кружки с отверстием, вопросительный знак перевернутый вверх ногами - неучтенные мною глифы, которые оказались серьёзной болью при дальнейшем расширении языковой поддержки. Ребята из кодсвичера доходчиво объяснили, что наши дизайнеры слабо разбираются в шрифтах и нам необходимо ввести дополнительные символы вопроса и восклицания для испанского языка.

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

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

Теперь попробуем сравнить текст на немецком и английском (наш шрифт) и текст на русском (точно не помню какой именно шрифт в примере):

Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост

Наверно заметили, что здесь что-то не то с кириллическим русским текстом. Да, это так. Разный шрифт - разный дизайн.

Кажется, что текст выделяется из-за того, что шрифт очень широкий. И все можно исправить простым сжатие глифов. На самом деле проблем больше и простым ужатием шрифта по горизонтали не обойтись.

Штош, что только не сделаешь, чтобы конечный продукт выглядел неразношорстно, в одном стиле. Наш финальный результат:

Наш опыт разработки шрифтов и локализации игры Программирование, Текст, Шрифт, Unity, Gamedev, Видеоигра, Разработка, Опыт, Разработчики игр, Лингвисты, Язык, Заморочиться, Fonts, Локализация, Длиннопост

Надеюсь мой пост был полезен и интересен. Всем хорошего дня :)


VK / DTF

Показать полностью 18

Каке отношение к шрифтам имеет Макрон?

Иногда задумывался о значении фамилий разных людей. Есть ли значение или перевод? Или же смысловая нагрузка нулевая? Допустим, что значит "macron"? Гугл переводил слово как "макрон". Очевидно, польза в плане понимания значения - нулевая. Ну я и думал, что фамилия не несет много смысла пока не нашел ответа.


Месяц назад разрабатывал шрифт для своей игры, пришлось рисовать кучу символов (глифов), изучить Unicode. Открыл для себя очень много нового. Например, вот что такое "макрон":

Каке отношение к шрифтам имеет Макрон? Истории из жизни, Эммануэль Макрон, Шрифт, Юмор, Разработчики игр, Фамилия, Значение слов

Ответ на пост «Сообществу плоской Земли посвящается»

Я в инсте первые пару недель тоже был своего рода "плоскоземельщиком". Согласно моей теории существовали прямые линии. Как-то заикнулся о прямой линии перед профессором и он меня потролил. Далее разговор:
Я: вот эта линия абсолютно прямая

П: нет, она не прямая, а кривая

Я: ну предположим что она идеальная, потому она все же прямая

П: но если даже и предположить так, то она все равно кривая

Я: а почему?

П: да потому, что в этом случае эта линия лежит на окружноси с бесконечным радиусом

Ответ на пост «Сообществу плоской Земли посвящается» Глобус, Фотография, Юмор, Плоская земля, ВУЗ, Линейная алгебра, Кривая Линия, Прямая линия, Окружность, Бесконечность, Радиус, Ответ на пост

Ответ на пост «Подготовилась»

Я в детстве часто замечал новости про метеориты, кометы, звезды. Бывало включаешь новости, а там... А там во всю рассказывают о самом страшном, что только может произойти с человечеством: озоновая дыра выросла в размерах, ледники тают и тому подобное. И между этим промелькивали новости о том, что фермер нашел в огороде метеорит или бабушка нашла метеорит на дороге.


Искал-искал везде, в т.ч и в своем огороде, что-то похожее на метеорит/звезду, ничего не нашел. Даже после самого мощного звездопада, который наблюдал своими глазами. Всегда было пусто.


И вот как-то ехали с родителями зимней ночью (даже уже и не помню где и когда). Дело было лет 25 назад. Это была не трасса, но и не деревенская непроходимая дорога. Дорога была из бетонных панелей, по бокам посажены высокие деревья. Смортю в окно и вижу что-то сферической формы летит. Не просто летит, а горит и летит по направлению нашего движения и почти параллельно дороге, слегка обгоняя машину. Деревья иногда перекрывали обзор. В процессе полета звезда(не знаю как это точнее назвать) вроде не вращалась воокруг какой-то оси. Длинющего хвоста из дыма за звездой не видел, хотя тело явно сильно горело. Кусков от объекта не отлетало. А что меня ну очень сильно впечатлило, так это размер. Из окна машины размер был с 5 рублей. Возможно это мое тогдашнее детское воображение ее преувеличило, в реальности может и с 1 рубль. Но даже так, какая звезда была огромная и впечатляющая. А то как она медленно падала, создавалось впечатление, будто она и не падает, а плавно снижается. За время снижения можно было бы загадать 25 желаний, если подсуетиться :)


Родители тоже заметили. Все секунд 5 обсуждали какая классная звезда, пока не въехали в зону, где деревья были плотно насажены. Мое предложение остановиться, выйти и найти было отклонено по причине того, что упала она непонятно в скольки сотнях км от нас в каком-нибудь непролазнодремучем лесу.

Печально, даже не остановились чтобы подольше насладиться падающей звездой.

Показать полностью

Года 2 чинил камеру на своем MacBook Pro и все же починил ее

Случилось так, что в один прекрасный день встроенная камера макбука перестала работать.
Вот совсем напрочь перестала. Что только не делал для того чтобы ее исправить:
- в основном следовал всевозможным инструкциям из сети по сбросу SMC и подобному: одна из ссылок.
- запускал мак в безопасном режиме
- искал вирусы
- удалил антивирус
- перезапускал приложения, которые отвечают за работу камеры
- пробовал обновлять драйвера камеры
- обращался в поддержку и получал те же советы, что видел в сети. Добавился, разве что, совет удалить свою учетную запись и создать новую. Выполнил их советы, ничего не помогло.

Не откатил систему с помощью TimeMachine и не переустановил систему полностью - это, как мне казалось, единственные вещи, которые еще не были сделаны.

Симптомы
1) какое-то время камера пропала со вкладки System Report, это вот здесь:

Года 2 чинил камеру на своем MacBook Pro и все же починил ее Компьютерная помощь, Macbook, Ремонт, Ремонт техники, Ремонт ноутбуков, Камера, Поломка, Ноутбук, Длиннопост

Там ничего не было, примерно так же как и на картинке выше.
Забросив попытки найти камеру, отложил свои попытки ее восстановить. Через какое-то время (после каждого обновления системы проверял эту вкладку) информация о камере там все же появилась.

2) Во всех приложениях (FaceTime, Skype, Zoom и др) камера не работала. Везде выводилось примерно такое сообщение:

Года 2 чинил камеру на своем MacBook Pro и все же починил ее Компьютерная помощь, Macbook, Ремонт, Ремонт техники, Ремонт ноутбуков, Камера, Поломка, Ноутбук, Длиннопост

Решение
Ситуация с камерой возникает из-за того, что Apple не проработали уведомление, которое информирует пользователя о том, что именно не так с камерой и как можно исправить данную проблему. Было бы здорово, если бы появилось окно, которое бы предложило перейти в ScreenTime и отключить Restrictions.

Во-первых, если камера имеется в диспетчере устройств, то это говорит о том, что компьютер видит камеру и даже распознает ее. А это означает, что физически камера не сломалась.

Во-вторых, нужно зайти в настройки ScreenTime и отключить PrivacyRestrictions.

Года 2 чинил камеру на своем MacBook Pro и все же починил ее Компьютерная помощь, Macbook, Ремонт, Ремонт техники, Ремонт ноутбуков, Камера, Поломка, Ноутбук, Длиннопост

Надеюсь данная информация кому-то поможет избежать долгих и мучительных поисков решения того почему не работает камера на вашем макбуке.

Показать полностью 3

Вне себя от счастья

Во время учебы в вузе забегает к нам к товарищу в комнату (парень с примата) и говорит:

П: CGAleksey, а ты знаешь, что можно коментить код вот так:

/*

code

*/

Я: ну конечно.

П: а знаешь что можно еще и вот так:

/*

code

// */


а если сделать так, то код не закоментится:

//*

code

// */

Я: ну да


П: а еще вот так можно и закоментится все:

/*

/_*

// *_/

work code

// */


А если так, то "work code" не закоментится. И это ОЧЕНЬ круто и удобно:

/*

/_*

// */

work code

// */


Смотрит на меня восхищенными глазами, показывает что и как можно коментить в IDE XD
Я изобразил удивление / восхищение этой IDE: да, меня это тоже очень выручает, спасибо что показал.


Не стал умничать и спойлерить, наверно будет вне себя от счастья, когда откроет такие инструменты как Profiler, MemoryWatch, StackTrac, Ida и прочее.

Показать полностью
Отличная работа, все прочитано!