tag:blogger.com,1999:blog-87882147642358074972024-03-13T21:48:45.983+03:00andrei kletskov (111) - blender scripts111http://www.blogger.com/profile/00114324279698213240noreply@blogger.comBlogger19125tag:blogger.com,1999:blog-8788214764235807497.post-2834476196780674192021-02-05T21:51:00.002+03:002021-02-05T21:56:56.413+03:00апдейт моей темы на 2.91<p><a href="http://andklv.narod.ru/blender/111_cool_gray_v19.xml">скачать</a></p><div class="separator" style="clear: both; text-align: center;"><a href="https://lh3.googleusercontent.com/-_1un0Hni-ec/YB2TGuSNOpI/AAAAAAACFjw/pLyXdO3ADxcYQ11G7g02fOBi5QEbYeHkACLcBGAsYHQ/image.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="" data-original-height="821" data-original-width="1035" height="317" src="https://lh3.googleusercontent.com/-_1un0Hni-ec/YB2TGuSNOpI/AAAAAAACFjw/pLyXdO3ADxcYQ11G7g02fOBi5QEbYeHkACLcBGAsYHQ/w400-h317/image.png" width="400" /></a></div><br /><p></p>111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-15007449005432951522020-02-14T15:03:00.001+03:002020-02-14T15:05:08.174+03:00моя светлая тема под блендер 2.8хвсё ж не могу перейти ни тёмную схему интерфейса, родная светлая мне не нравится, пришлось наруливать свою светлую тему.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-Oj8t2ae3M6M/XkaM68yPlgI/AAAAAAAB6wQ/WXfMtfg9xFA9q8pJhF6bJpeFHxLmJx2FgCLcBGAsYHQ/s1600/Untitled-2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="902" data-original-width="1223" height="295" src="https://1.bp.blogspot.com/-Oj8t2ae3M6M/XkaM68yPlgI/AAAAAAAB6wQ/WXfMtfg9xFA9q8pJhF6bJpeFHxLmJx2FgCLcBGAsYHQ/s400/Untitled-2.jpg" width="400" /></a></div>
<a href="https://1.bp.blogspot.com/-p29zpRJ8WxM/XkaMdpWKVPI/AAAAAAAB6wI/adRQluZN1dMS7pH-o6TN2e6ySLN44RdUwCLcBGAsYHQ/s1600/b28x.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a>111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-11485881589974905732019-11-26T14:54:00.001+03:002019-11-26T16:14:22.682+03:00проблемы с вьюпортом блендераСократим, не понял прикола. почему на тяжёлых сценах вьюпорт блендера тормозит, но если включить проигрывание анимации то с вьюпортом всё ок. что за хрень?111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-64628996927833895882018-03-10T08:04:00.000+03:002019-11-26T14:55:29.540+03:00моя кастомизация блендера (2.79)- кастомная цветовая схема интерфейса, схожая с максом. стандартная слишком тёмная для меня. (в настройках включено region overlap - прозрачные T и N панели)<br />
- аддон images as planes (стандартный, но нужно включать)<br />
- аддон bool tool (стандартный, но нужно включать)<br />
- в настройках включен release confirms (значительно сокращает количество кликов, странно что не включен по умолчанию)<br />
- ctrl shift b изменён с бевела вертекса на такой бевел - segments:2 profile:1 (перед скруглением граней, чтобы сглаживание было ровнее)111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com1tag:blogger.com,1999:blog-8788214764235807497.post-4291766282080517422016-12-11T21:21:00.000+03:002016-12-11T21:21:58.521+03:00фейковые отражения в cycles во так можно повесить фейковые отражения на объект, Mirror ball например.<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://4.bp.blogspot.com/-H3wR2lEk5ew/WE2ZPO2ezrI/AAAAAAAA3IU/7UgI8_x4YSoHp14lwEGCsTePtkYV4Cb7wCLcB/s1600/zz.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="193" src="https://4.bp.blogspot.com/-H3wR2lEk5ew/WE2ZPO2ezrI/AAAAAAAA3IU/7UgI8_x4YSoHp14lwEGCsTePtkYV4Cb7wCLcB/s320/zz.png" width="320" /></a></div>
<br />111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-11710202681718202932016-12-06T11:53:00.000+03:002016-12-07T20:11:15.673+03:00что они там курят?убил полдня пытаясь понять как работают трансформы в блендере в иерархии.<br />
пришёл к выводу что есть какой то _сука_ скрытый трансформ нод, задействующийся при парентовании через ctrl+p, и трансформации на самом деле идут в его координатах а не в координатах парента, как это сделано во всех остальных пакетах. вот спрашивается НАХРЕНА? нигде толком не написано как работает трансформ в блендере, только полинтернета завалено вопросами пользователей что за хрень происходит. Вот кто ообъяснит что делает команда clear origin (alt+o)? можно было бы подумать что он скидывает этот скрытый нод в нули, но он влияет только на положение но не поворот и масштаб.... пока решение такое, забыть про ctrl+p и парентить через вкладку object (все трансформы становятся в координатах парента) или shift+ctrl+p (как предыдущее, только локейшн в ноль скидывается). карл!!!! а почему только локейшн скидывается?<br />
<br />
<br />
- парент через вкладку object - просто тупо начинает считать координаты в системе парента, объект прыгает в новое положение<br />
- ctrl+shift+p - make parent without inverse - двигает объект в начало координат сохранив поворот и масштаб и дальше пересчитывает всё в координаты парента, то есть объект прыгает к паренту, видимо для того чтобы просто объект не потерялся на экране.<br />
- ctrl+p>object - обычный парент, объект остаётся на своём месте, причём его координаты не меняются и если парент повёрнут, то всё, хана, анимировать чтото в координатах парента не получится. дурдом. судя по всему оно создаёт ещё один нод, такой же как текущий трнасформ чайлда, и вот его уже привязывает к паренту, и добраться до этого скрытого нода нет никакой возможности ровно как и анимировать в координатах парента. и нод этот похоже создаётся в нулях и поэтому не меняются координаты чайлда.<br />
- alt+p > clear parent - обычная отвязка парента - вышеупомянутый скрытый нод ставится в нули, теряются трансформы от парента, чайлд прыгает в своё начальное место до привязки и трасформации вместе с парентом. координаты у чайлда всегда одни и те же.<br />
- alt+p > clear and keep transformation - чайл сохраняет своё положение после отвязки, его координаты изменяются. то есть удаляется скрытый нод, а реальные трансформы чайлда пересчитываются.<br />
- alt+p > clear parent inverse - удаляет скрытый нод (или всё же выравнивает его по паренту?), получается такой же результат как и при привязке через обджект панель, то есть объект прыгает.<br />
- alt+o - clear origin - двигает чайлд к паренту, не влияя ни на поворот ни на масштаб, видимо сдвигая скрытый нод так чтобы чайл оказался у парента.<br />
<br />
снос башки. всё ещё непонятно весь трансформ задействован или только локейшн во всех этих прыжках.<br />
<br />
из этого следует что невозможно припарентить объект к паренту который повёрнут сохранив положение чайлда до привязки и имея координаты парента для анимации. можно только либо сохранить чайлда на месте, либо иметь правильные координаты парента. при условии отсутсвия нормального инструмента для align объектов в блендере, эта хрень может быть проблемой, требуя более тщательного планирования иерархии, особенно для анимации.<br />
<br />
не могу понять нафига нужно было вводить этот дополнительный нод. почему нельзя пересчитывать координаты в парента как это делают вариации с keep transform (и как это делает 3дсмакс например) только для того чтобы иметь возможность вернуть объект в своё место после отвязки от парента? или скорее чтобы не пересчитывать анимационные кривые (!) (как это делает макс)? что ж, где-то логичное решение.111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-50104404280106354482016-04-22T05:21:00.000+03:002016-04-22T05:21:35.931+03:00типс энд трикснемного не про скрипты, но...<br />
так сказать из мелких, но важных полезностей.<br />
не могу понять, почему до сих пор эта фича не включена по умолчанию. сколько лет прошло, а эта фишка тянется чуть ли не с первого блендера. а не включив release confirms вы никогда не получите большой скорости в моделировании, ибо придётся кликать в два раза чаще.<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://2.bp.blogspot.com/-YhOsKpooqwE/VxmKn_al9bI/AAAAAAAAH4E/d4Bd-sLR3nMMG09fACOsyTdUcUbLzOlmwCLcB/s1600/aaa.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="252" src="https://2.bp.blogspot.com/-YhOsKpooqwE/VxmKn_al9bI/AAAAAAAAH4E/d4Bd-sLR3nMMG09fACOsyTdUcUbLzOlmwCLcB/s400/aaa.png" width="400" /></a></div>
<br />111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-54740883434899486742015-09-13T03:32:00.001+03:002015-09-23T16:58:26.084+03:00как в суслике разблурить текстуруcycles, blender, texture blur filter<br />
в суслике нет простейшей и приввычной фичи как фильтрация текстуры, но это дело можно сэмулировать.путём изменения UV. см картинку. очень мелкий цветной шум оверлеится на ув данные свигая их случайным образом, в результате получается размытие.<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://3.bp.blogspot.com/-K3ZBmrm0yJg/VfTEAVbLlXI/AAAAAAAADeo/FTGJbiXaH-4/s1600/tex_blur.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="210" src="http://3.bp.blogspot.com/-K3ZBmrm0yJg/VfTEAVbLlXI/AAAAAAAADeo/FTGJbiXaH-4/s400/tex_blur.png" width="400" /></a></div>
<br />111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-11451330036066883182014-10-20T06:36:00.001+03:002014-10-20T09:31:01.868+03:00Bevel shaderесть очень классная штука - рендерит углы не острыми а сглаженными, то есть геометрия остаётся с острыми углами а на рендере они сглажены - очень добавляет реализма. в максе был для этого плагин fedge, в менталрее есть тоже встроенное дело под эту задачу. а в блендере нету.... :( но народ пораскинул мозгами и родил вот что, жаль пока OSL на GPU не работает, но будем надеяться.<br />
<br />
<a href="http://blenderartists.org/forum/showthread.php?329295-Bevel-shader">http://blenderartists.org/forum/showthread.php?329295-Bevel-shader</a><br />
<br />
<br />
сделать текстовый блок, воткнуть его в нод-едиторе материалов в нормаль шейдера. настройки в принципе более менее понятные.<br />
<br />
<pre class="bbcode_code" style="background: rgb(51, 51, 51); border: 1px solid rgb(0, 0, 0); color: #cccccc; direction: ltr; font-family: sans-serif; font-size: 12px; height: 372px; line-height: 12px; overflow: auto; padding: 6px;">void rng_seed(output int rng, int seed)
{
int chash = seed;
if (chash == 0) chash = 1;
rng = chash * 30391861;
}
float rng_uniform(output int rng)
{
float res = rng / float(2137483647) * 0.5 + 0.5;
rng *= 30391861;
return res;
}
void to_unit_disk(float x, float y, output float x_out, output float y_out)
{
float r, phi;
float a = 2.0 * x - 1.0;
float b = 2.0 * y - 1.0;
if(a > -b)
{ if(a > b)
{ r = a;
phi = M_PI_4 *(b/a);
}
else
{ r = b;
phi = M_PI_4 *(2.0 - a/b);
} }
else
{ if(a < b)
{ r = -a;
phi = M_PI_4 *(4.0 + b/a);
}
else
{ r = -b;
if(b != 0.0) phi = M_PI_4 *(6.0 - a/b);
else phi = 0.0;
} }
x_out = r * cos(phi);
y_out = r * sin(phi);
}
void make_orthonormals(vector N, output vector a, output vector b)
{
if(N[0] != N[1] || N[0] != N[2]) a = cross(vector(1, 1, 1), N);
else a = cross(vector(-1, 1, 1), N);
a = normalize(a);
b = cross(N, a);
}
vector sample_cos_hemisphere(vector N, float randu, float randv)
{
vector T, B;
make_orthonormals(N, T, B);
to_unit_disk(randu, randv, randu, randv);
float costheta = sqrt(max(1.0 - randu * randu - randv * randv, 0.0));
return randu * T + randv * B + costheta * N;
}
shader edge_smooth(
int Concave = 1,
int Convex = 1,
int Samples = 4,
int Backfacing = 1,
float Mask = 1,
float Distance = 0.1,
normal Normal = N,
output normal outNormal = 0
)
{
int i, rng;
float f, randu, randv, ray_t, hits = 0;
vector ray_P, ray_R;
normal hit_normal = N;
outNormal = Normal;
float hit_dist;
float normal_blend;
float s_weight = 1/Samples;
f = fmod(cellnoise(P*123456.0), 1.0);
rng_seed(rng, int(f * 21374647));
if (Mask > 0.5 && raytype("camera")) {
for(i = 0; i < Samples; i++) {
randu = rng_uniform(rng);
randv = rng_uniform(rng);
ray_P = P;
ray_R = sample_cos_hemisphere(-N, randu, randv);
ray_t = Distance;
if (Concave == 1)
{ if(trace(ray_P, -ray_R, "maxdist", ray_t)) {
getmessage ("trace", "N", hit_normal);
getmessage ("trace", "hitdist", hit_dist);
normal_blend = 1-(hit_dist/Distance);
outNormal = Normal + (hit_normal*normal_blend);
break;
}
}
if (Convex == 1) {
if(trace(ray_P, ray_R, "maxdist", ray_t)) {
getmessage ("trace", "N", hit_normal);
getmessage ("trace", "hitdist", hit_dist);
normal_blend = 1-(hit_dist/Distance);
if (Backfacing==1 || dot(I, -hit_normal) > 0.0) {
outNormal = Normal - (hit_normal*normal_blend);
}
break;
}
}
}
}
outNormal = normalize(outNormal);
}</pre>
111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-17315661278125347522014-07-02T06:10:00.001+03:002014-07-02T06:10:59.595+03:002.71косяков пока не замечено111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-1793998728766474502014-07-02T06:07:00.000+03:002015-09-13T03:35:40.382+03:00как отрендерить сусликом один фрейм на рендерфермемозги у блендерхедов соображают....<br />
у блендера шикарный родной нет рендер, но он не умеет рендерить один фрейм. но это не беда. по природе cycles можно рендерить картинки с большим уровнем шума на разных компах и потом эти картинки смержить в одну хитрым образом. и оно таки работает! нужно только каждую картинку рендерить с новым значением seed в параметрах sampling. то есть:<br />
- анимируем этот параметр<br />
- закидываем в нетрендер<br />
- получаем кучу картинок.<br />
дальше самое интересное. никто так и не написал аддон к блендеру который бы собирал эти картинки в одну. были попытки, но вроде бы не совсем ровные. решение - нужно установить консольную программу <a href="http://www.imagemagick.org/">Image magick</a>, которая умеет мержить картинки. и запускать её в таком режиме.<br />
<br />
<b>convert "path/to/images/*.png" -evaluate-sequence mean "path/to/images/merged_image.png"</b><br />
<b><br /></b>
пороюсь ещё в поисках более удобного решения, и может быть если дойдут руки накорябую джава софтину (ап: уже накорябал код, осталось интерфейс прикрутить чтобы удобно было, ап: софтина лежит на моём сайте).<br />
<br />
аддон для этого дела (не отменяет необходимость имажемажик)<br />
<a href="http://adaptivesamples.com/2013/07/22/progressive-animation-render-addon-and-image-stacking/">http://adaptivesamples.com/2013/07/22/progressive-animation-render-addon-and-image-stacking/</a>111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-25496711797788959952014-03-20T17:18:00.001+03:002014-03-20T17:18:38.546+03:002.69отличный релиз, косяков было ОЧЕНЬ мало.111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-75418479915251794632013-05-13T05:11:00.000+03:002013-05-13T05:11:13.642+03:002.67вышел новый блендер (2.67), косяков пока не замечено (правда я и юзаю его пару часов всего). немного раздражает лупкат, так и не привык к новому поведению. лишний клик. ну ладно привыкнем. словил себя пару раз на том, что хихикаю как идиот когда юзаю f2. всё-таки блендеровцы умеют удивить. про матчмувинг вообще молчу, до сих пор в себя прийти не могу. опенсорс мля... предсказываю ПОВАЛЬНУЮ миграцию на блендер. самые шустрые то давно уже прыгнули.<br />
и ещё, то ли меня глючит, то ли что, но рендерить стало прилично быстрее, что интернал, что суслик.111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-19564838806746236172013-03-09T09:04:00.001+03:002013-03-09T09:04:12.598+03:00полезный скриптикподсчёт времени рендера анимаций<br />
не мой, просто до кучи положу. каб было. правда в последних версиях (2.66) подглючивает<br />
хомепага <a href="http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Render/Render_Time_Estimation">http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Render/Render_Time_Estimation</a><br />
и просто ссылка каб было <a href="http://andklv.narod.ru/blender/render_time.py">http://andklv.narod.ru/blender/render_time.py</a><br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://3.bp.blogspot.com/-ubcYP3x2UWw/UTrQ1STVOOI/AAAAAAAAAsg/U44rWd0i7-I/s1600/rte.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-ubcYP3x2UWw/UTrQ1STVOOI/AAAAAAAAAsg/U44rWd0i7-I/s1600/rte.png" height="113" width="320" /></a></div>
<br />111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-28018227211019810432013-03-09T08:59:00.006+03:002021-02-05T21:55:58.402+03:00моя тема интерфейса Blender theme 111_cool_grayоснована на теме про макс, но подпилил её под свои нужды. доволен как слон.<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://3.bp.blogspot.com/-eYG-H-wSQ9k/UTrOYmHFC4I/AAAAAAAAAsU/niHiQQocvjk/s1600/blender_ui.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="264" src="https://3.bp.blogspot.com/-eYG-H-wSQ9k/UTrOYmHFC4I/AAAAAAAAAsU/niHiQQocvjk/s1600/blender_ui.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://andklv.narod.ru/blender/111_cool_gray_v01.xml">http://andklv.narod.ru/blender/111_cool_gray_v01.xml</a> (2.66)</div>
<a href="http://andklv.narod.ru/blender/111_cool_gray_v02.xml">http://andklv.narod.ru/blender/111_cool_gray_v02.xml</a> (2.67)<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://4.bp.blogspot.com/-o_OmS7PA4Kw/Ub-nLmSFfxI/AAAAAAAAA2s/Yb057L1Oywo/s1600/theme_v03.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="222" src="https://4.bp.blogspot.com/-o_OmS7PA4Kw/Ub-nLmSFfxI/AAAAAAAAA2s/Yb057L1Oywo/s1600/theme_v03.png" width="320" /></a></div>
<a href="http://andklv.narod.ru/blender/111_cool_gray_v03.xml">http://andklv.narod.ru/blender/111_cool_gray_v03.xml</a> (2.67)<br />
<a href="http://andklv.narod.ru/blender/111_cool_gray_v04.xml">http://andklv.narod.ru/blender/111_cool_gray_v04.xml</a> (2.70)<br />
<a href="http://andklv.narod.ru/blender/111_cool_gray_v05.xml">http://andklv.narod.ru/blender/111_cool_gray_v05.xml</a> (2.70)<br />
<a href="http://andklv.narod.ru/blender/111_cool_gray_v06.xml">http://andklv.narod.ru/blender/111_cool_gray_v06.xml</a> (2.71)<br />
<a href="http://andklv.narod.ru/blender/111_cool_gray_v07.xml">http://andklv.narod.ru/blender/111_cool_gray_v07.xml</a> (2.75) - curves update<br />
<a href="http://andklv.narod.ru/blender/111_cool_gray_v08.xml">http://andklv.narod.ru/blender/111_cool_gray_v08.xml</a> (2.76) - NLA update<br />
<a href="http://andklv.narod.ru/blender/111_cool_gray_v09.xml">http://andklv.narod.ru/blender/111_cool_gray_v09.xml</a> (2.77) - some fixes<br />
<a href="http://andklv.narod.ru/blender/111_cool_gray_v10.xml">http://andklv.narod.ru/blender/111_cool_gray_v10.xml</a> (2.77) - more yellows<br />
<a href="http://andklv.narod.ru/blender/111_cool_gray_v11.xml">http://andklv.narod.ru/blender/111_cool_gray_v11.xml</a> (2.78) - dopesheet and curves<br />
<a href="http://andklv.narod.ru/blender/111_cool_gray_v12.xml">http://andklv.narod.ru/blender/111_cool_gray_v12.xml</a> (2.78) - NLA<br />
<a href="http://andklv.narod.ru/blender/111_cool_gray_v13.xml">http://andklv.narod.ru/blender/111_cool_gray_v13.xml</a> (2.79)<br />
<a href="http://andklv.narod.ru/blender/111_cool_gray_v14.xml">http://andklv.narod.ru/blender/111_cool_gray_v14.xml</a><span id="goog_621030912"></span><a href="https://www.blogger.com/"></a><span id="goog_621030913"></span> (2.81)<br />
<a href="http://andklv.narod.ru/blender/111_cool_gray_v19.xml">http://andklv.narod.ru/blender/111_cool_gray_v19.xml</a><span id="goog_621030912"></span><a href="https://www.blogger.com/"></a><span id="goog_621030913"></span> (2.91)<div><br /></div><div>в windows, темы которые вы кастомизируете и сохраняете через интерфейс блендера, сохраняются по хитрому пути вот тут - C:\Documents and Settings\____USERNAME___\AppData\Roaming\Blender Foundation\Blender\___BLENDER_VERSION___\scripts\presets\interface_theme<br /></div><div><br /></div><div>
в windows 10 тут - C:\Users\____USERNAME___\AppData\Roaming\Blender Foundation\Blender\___BLENDER_VERSION___\scripts\presets\interface_theme</div>111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-63577358786217793862011-07-29T06:20:00.006+03:002011-09-30T21:26:13.273+03:00полезное видео<span class="Apple-style-span" style="background-color: #393939; color: #cccccc; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;">Scripting a Random Material Assigner<br /><a href="http://vimeo.com/26515608" style="color: #00e0a4; text-decoration: none;">http://vimeo.com/26515608</a></span><br />
<br />
Scripting a Custom Tool Menu<br />
<a href="http://www.blendercookie.com/2011/07/25/scripting-a-custom-tool-menu/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Blendercookiecom+%28Blender+Cookie%29">http://vimeo.com/26770268</a><br />
<br />
Building an Audio Visualizer with Pyhon<br />
<a href="http://vimeo.com/24568128">http://vimeo.com/24568128</a><br />
<br />
Tip: Script Bug Fixing 101<br />
<a href="http://vimeo.com/27219938">http://vimeo.com/27219938</a> <br />
<br />
Introduction to Scripting with Python in Blender<br />
<a href="http://vimeo.com/28203314">http://vimeo.com/28203314</a><br />
<br />
Itroduction to Scripting in the Blender Game Engine - part 01<br />
<a href="http://vimeo.com/29443673">http://vimeo.com/29443673</a>
<br />
<br />
Itroduction to Scripting in the Blender Game Engine – part 02<br />
<a href="http://vimeo.com/29443955">http://vimeo.com/29443955</a>111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-58160329715485240782010-09-29T03:59:00.005+03:002010-09-29T04:04:48.372+03:00немного про питоннадо было обрабоать текстовый файл - убрать пробелы после каждого символа. в общем худо-бедно осилил задачу.<br />
вот что вспомнил-узнал.<br />
<br />
<span class="Apple-style-span" style="color: #b6d7a8;">print ('sdsd')</span> - что нибудь напечатать, скобки и одинарные кавычки<br />
<span class="Apple-style-span" style="color: #b6d7a8;">f=open('c:/temp/f.txt','w')</span> - открыть файл для записи, одинарные кавычки, обратные слэши в пути<br />
<span class="Apple-style-span" style="color: #b6d7a8;">f.read(1)</span> - прочитать один символ, f - это объект который открыт ранее командой open()<br />
<span class="Apple-style-span" style="color: #b6d7a8;">f.seek(0)</span> - переместиться в начало файла ибо при каждом чтении курсор сдвигается.<br />
<span class="Apple-style-span" style="color: #b6d7a8;">f.write('string') </span>- записать (добавить) в файл текст<br />
<span class="Apple-style-span" style="color: #b6d7a8;">f.close()</span> - закрыть открытый файл<br />
<span class="Apple-style-span" style="color: #b6d7a8;">if a==True:</span><br />
<span class="Apple-style-span" style="color: #b6d7a8;"> print('a=true')</span><br />
<span class="Apple-style-span" style="color: #b6d7a8;">else:</span><br />
<span class="Apple-style-span" style="color: #b6d7a8;"> print('a=false')</span> - пример if else,обратить внимание на отступы, булеановское значение True с большой буквы<br />
<span class="Apple-style-span" style="color: #b6d7a8;">while True:</span><br />
<span class="Apple-style-span" style="color: #b6d7a8;"> a=a+1</span><br />
<span class="Apple-style-span" style="color: #b6d7a8;"> if a>10: break</span> - пример организации цикла while с переносом проверки условия в конец - break, один оператор можно писать в одну строчку после двоеточия, двоеточие и блок с отступом заменяют в питоне скобки<br />
<br />
пока что я колупался в шеллоболочке которая идёт в комплекте с питоном, там надо печатать команды а не писать программу. надо будет поискать инструмент более удобный и позволяющий писать проги и запускать их на выполнение. хотя и шелл этот можно юзать для всяких задач, особенно тем кто питон хорошо знает.111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-1033309661109694452010-09-05T20:25:00.024+03:002010-09-29T04:00:03.214+03:00началоитак, задача номер один. менять какие то атрибуты целой куче объектов за раз.<br />
<br />
пока поковыряемся в основах...<br />
<br />
в консоли (которая внутри блендера) можно смотреть весь блендеровский апиай выведенный в питон (автокомплишн по ctrl+space). также можно посмотреть аутлайнер в режиме датаблоков - помогает понять что откуда растёт. плюс есть кое-какая информация в подсказке которая всплывает при наведении на какой нибудь элемент.<br />
<br />
полезные переменные:<br />
<span style="color: #b6d7a8;">bpy.context.mode</span> - текущий режим блендера (Object, Edit, Sculpt etc.,)<br />
<span style="color: #b6d7a8;">bpy.context.object </span>= <span style="color: #b6d7a8;">bpy.context.active_object</span> - активный объект<br />
<span style="color: #b6d7a8;">bpy.context.selected_objects</span> - выбранные объекты, включая активный<br />
<span style="color: #b6d7a8;">bpy.data.materials</span>,<span style="color: #b6d7a8;"> bpy.data.objects</span> и т.д. - доступ к данным в файле.<br />
<span style="color: #b6d7a8;">bpy.context.scene.objects.active = obj</span><b><span style="color: #b6d7a8;"> </span> </b>- назначить новый активный объект<br />
<br />
чтобы иметь доступ хоть к чему нибудь надо импортировать модули, моуль bpy будет импортирован в любом случае: import bpy, впрочем это будет ясно сразу по первым же ошибкам.<br />
<br />
вот скрипт который меняет всем выделенным объектам меш на какой нужно. (впрочем это же можно сделать и штатными средствами блендера через ctrl+L, но нам интересен принцип)<br />
<br />
<span style="color: #b6d7a8;">import bpy</span><br />
<span style="color: #b6d7a8;">for o in bpy.context.selected_objects:</span><span style="color: #b6d7a8;"><br />
</span><span style="color: #b6d7a8;"> </span><span style="color: #b6d7a8;"> </span><span style="color: #b6d7a8;"> o.data = bpy.data.meshes["y"]</span><br />
<br />
for ... in ... : - цикл<br />
o.data - меш у объекта<br />
bpy.data.meshes["y"] - присваиваем новый меш объекту из сборища мешей в файле.<br />
<br />
немного про питон, пока интересно то, что у него нет открывающих-закрывающих скобок для блоков кода, а вместо этого используются отступы, то есть один пробел перед началом строки = второй уровень и все последующие строки с одним пробелом впереди будут этим уровнем. не обязательно один пробел можно два или больше главное чтобы один уровень был. в вышеприведённом примере, виден пробел в начале строки после for, то есть эта строчка и есть тело цикла.<br />
<br />
полезные ссылки:<br />
<a href="http://sites.google.com/site/satishgoda/blender/learningblender25/introduction-to-blender-python-api">вводная статья на инглише</a><br />
<a href="http://blenderartists.org/forum/showthread.php?t=164765">примеры скриптов</a><br />
<a href="http://www.blender.org/documentation/250PythonDoc/bpy.ops.html">список операторов</a><br />
<a href="http://wiki.blender.org/index.php/Dev:2.5/Py/API/Intro">на оффсайте инфа</a><br />
<a href="http://openbookproject.net/thinkCSpy/index.html">книжка по питону</a>111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0tag:blogger.com,1999:blog-8788214764235807497.post-85508502480035094822010-09-05T20:11:00.001+03:002010-09-06T11:35:02.439+03:00первый постпро что этот блог.<br /><br />буду осваивать блендеровский питон скрипт. без него как то туговато. осваивать будем скрипты нового блендера 2.5 - там вроде кое чего поменялось по сравнению со старым.<br /><br />какой бэкграунд имеем:<br />- некоторое количество написанных максскриптов (то есть какая то база под специфику 3д программирования)<br />- какие-то навыки программирования вообще<br />- прочитанная когда-то давно книжка по питону<br /><br />итак, приступим...111http://www.blogger.com/profile/00114324279698213240noreply@blogger.com0