[AI CC2022] Перевести линейные градиенты в радиальные

Ant-3

Участник
Топикстартер
Сообщения
57
Реакции
2
Доброго дня!
Не знаю как перевести сразу несколько объектов с разными линейными градиентами в радиальные градиенты с сохранением их цвета. На видео пример, где четыре объекта с линейным градиентом переводятся в радиальный градиент с сохранением их цвета:


Пробовал сделать для этого action, но он не работает как нужно. Может быть это можно сделать с помощью скрипта или кто-то знает готовый скрипт для данного действия?
 

ITIT

15 лет на форуме
Сообщения
500
Реакции
194
Если я правильно понял ,Вы хотите ОДНИМ действием поменять ВСЕ градиенты сразу на ОДНОМ артборде?
Action,что не так работает?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 231
Реакции
10 852

Ant-3

Участник
Топикстартер
Сообщения
57
Реакции
2
Если я правильно понял ,Вы хотите ОДНИМ действием поменять ВСЕ градиенты сразу на ОДНОМ артборде?
Action,что не так работает?
может я как-то неправильно записываю его, но в action при записи сохраняется не факт перехода из линейного градиента в радиальный, а просто радиальный градиент с определенным цветом, который затем применяется на все объекты в процессе работы action.
Если у Вас есть готовый action, то можете пожалуйста скинуть в эту тему, буду им пользоваться)
 

Ant-3

Участник
Топикстартер
Сообщения
57
Реакции
2
Уже рад, что это вообще возможно сделать. Скорее всего сам не разберусь в том, что необходимо поменять или добавить, хоть и пытаюсь последнее время хоть чуть-чуть вникнуть в тему создания скриптов. Может быть за место "cObj.rotate(Math.random() * 360, 0,0,1,0);" нужно добавить "cObj.createRadialGradient ..."?
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 231
Реакции
10 852
Уже рад, что это вообще возможно сделать. Скорее всего сам не разберусь в том, что необходимо поменять или добавить, хоть и пытаюсь последнее время хоть чуть-чуть вникнуть в тему создания скриптов. Может быть за место "cObj.rotate(Math.random() * 360, 0,0,1,0);" нужно добавить "cObj.createRadialGradient ..."?
Нет, там просто тип поменять.
 

ITIT

15 лет на форуме
Сообщения
500
Реакции
194
в action при записи сохраняется не факт перехода из линейного градиента в радиальный, а просто радиальный градиент с определенным цветом, который затем применяется на все объекты в процессе работы action.
К сожалению это так и есть ,что не позволяет создать Action ,,в одину кнопку,,.
Можно только в Action вставить Stop после выделения одного обьекта с градиентом и вручную в палитре Градиент поменять направление градиента.
Короче,нужен скрипт меняющий направление градиента у выделенного
обьекта,тогда возможен Action ,,в одну кнопку,,
 

qsedftghk

фея
15 лет на форуме
Сообщения
2 032
Реакции
1 198
Нет, там просто тип поменять.
Ога. Это ж люстра.

Код:
mySelection = app.activeDocument.selection;
for(i=0;i<mySelection.length;i++)
{
  mySelection[i].fillColor.gradient.type= GradientType.RADIAL;
  mySelection[i].left-=1; // это типа обновления экрана, иначе 
  mySelection[i].left+=1; // пока не сделаешь что-либо с объектом, изменения в градиенте не увидишь
}
Минус скрипта: выделенные градиенты он конечно поменяет, но если в невыделенных есть похожие градиенты - они тоже поменяются, слава иллюстратору!
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 231
Реакции
10 852
Ога. Это ж люстра.

Код:
mySelection = app.activeDocument.selection;
for(i=0;i<mySelection.length;i++)
{
  mySelection[i].fillColor.gradient.type= GradientType.RADIAL;
  mySelection[i].left-=1; // это типа обновления экрана, иначе
  mySelection[i].left+=1; // пока не сделаешь что-либо с объектом, изменения в градиенте не увидишь
}
Минус скрипта: выделенные градиенты он конечно поменяет, но если в невыделенных есть похожие градиенты - они тоже поменяются, слава иллюстратору!
Ну задача стояла какбэ везде поменять. Но, с другой стороны, если не везде, то это тоже легко сделать.
 

qsedftghk

фея
15 лет на форуме
Сообщения
2 032
Реакции
1 198
По сути везде и меняется раз похожим градиентам наплевать выделены они или нет, и у меня redraw не захотел трудиться
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 231
Реакции
10 852
По сути везде и меняется раз похожим градиентам наплевать выделены они или нет, и у меня redraw не захотел трудиться
Не, ты неправильно делал. Ты менял тип градиента, а надо на базе старых создавать новый и менять в нем тип.
 

qsedftghk

фея
15 лет на форуме
Сообщения
2 032
Реакции
1 198
А вот мне делать-то сейчас больше нечего как целую софтину писать =) А для текущего момента хватит и этого
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 231
Реакции
10 852
А вот мне делать-то сейчас больше нечего как целую софтину писать =) А для текущего момента хватит и этого
Да ну там буквально пару строк поменять. Если б у меня сейчас было время и доступ к иллюстратору то поправил бы, но сплю, да и, думаю, топикстартер уже исчез и не надо ему это особо
 

Ant-3

Участник
Топикстартер
Сообщения
57
Реакции
2
Ога. Это ж люстра.

Код:
mySelection = app.activeDocument.selection;
for(i=0;i<mySelection.length;i++)
{
  mySelection[i].fillColor.gradient.type= GradientType.RADIAL;
  mySelection[i].left-=1; // это типа обновления экрана, иначе
  mySelection[i].left+=1; // пока не сделаешь что-либо с объектом, изменения в градиенте не увидишь
}
Минус скрипта: выделенные градиенты он конечно поменяет, но если в невыделенных есть похожие градиенты - они тоже поменяются, слава иллюстратору!
Большое спасибо, работает как нужно! В принципе побочный эффект в работе скрипта для меня будет совсем не критичен, так что все хорошо.
 

Ant-3

Участник
Топикстартер
Сообщения
57
Реакции
2
Да ну там буквально пару строк поменять. Если б у меня сейчас было время и доступ к иллюстратору то поправил бы, но сплю, да и, думаю, топикстартер уже исчез и не надо ему это особо
Вот только несколько минут назад протестировал скрипт, сегодня до этого не было возможности. А так и Вас благодарю за содействие в поиске рабочего решения.