понедельник, 30 июня 2014 г.
пятница, 30 мая 2014 г.
четверг, 22 мая 2014 г.
Немножко дождя
Для сцены в мульте сделал окно :) Анимация через Dynamic Paint. Как раз немножко остыть.
четверг, 15 мая 2014 г.
Скрипт для рендера всех кадров с keyframe
Скрипт для рендера всех кадров с keyframe. Делает панельку во вкладке Render.
import bpy import os def build_frame_set(context): current_frame = context.scene.frame_current frames = {current_frame} for action in bpy.data.actions: if action.users > 0 and not action.use_fake_user or\ action.users > 1 and action.use_fake_user: for fcurve in action.fcurves: for point in fcurve.keyframe_points: frame_nr = int(point.co[0]) if frame_nr > current_frame: frames.add(frame_nr) return frames def find_next_frame(context, frame_set, next_frame): next_frame += 1 last_frame = context.scene.frame_end while next_frame not in frame_set and next_frame <= last_frame: next_frame += 1 return next_frame if next_frame in frame_set else None def render_frame(context, frame_counter, path): context.scene.render.filepath = os.path.join(path, str(frame_counter).zfill(4)) bpy.ops.render.render(write_still=True) class RenderKeyframesOperator(bpy.types.Operator): """Tooltip""" bl_idname = "render.render_keyframes" bl_label = "Render keyframes only" @classmethod def poll(cls, context): return True def execute(self, context): current_frame = context.scene.frame_current render_path = context.scene.render.filepath next_frame = current_frame frame_set = build_frame_set(context) while True: bpy.context.scene.frame_set(next_frame) render_frame(context, next_frame, render_path) print("Frame {}".format(next_frame)) next_frame = find_next_frame(context, frame_set, next_frame) if next_frame is None: break # restore context.scene.render.filepath = render_path bpy.context.scene.frame_set(current_frame) return {'FINISHED'} class RenderKeyframePanel(bpy.types.Panel): """Creates a Panel with keyframe render button""" bl_label = "Render keyframes" bl_space_type = 'PROPERTIES' bl_region_type = 'WINDOW' bl_context = "render" def draw(self, context): layout = self.layout scene = context.scene row = layout.row(align=True) row.prop(scene, "frame_current") row.prop(scene, "frame_end") row = layout.row() row.scale_y = 2.0 row.operator("render.render_keyframes") def register(): bpy.utils.register_class(RenderKeyframesOperator) bpy.utils.register_class(RenderKeyframePanel) def unregister(): bpy.utils.unregister_class(RenderKeyframesOperator) bpy.utils.unregister_class(RenderKeyframePanel) if __name__ == "__main__": register()
вторник, 1 апреля 2014 г.
понедельник, 13 января 2014 г.
Что это?
Ещё по незнанию написал скрипт Similar Crease Selection, оказалось в блендере есть такая штука, правда только в режиме Edge. Но мож кому пригодится, сделан через bmesh.
import bpy import bmesh class SimilarCreaseOperator(bpy.types.Operator): """Select edges by crease""" bl_idname = "mesh.select_similar_crease" bl_label = "Select similar crease" RESOLUTION = 0.0001 @classmethod def poll(cls, context): return context.mode == 'EDIT_MESH' and context.active_object is not None def execute(self, context): obj = context.edit_object bm = bmesh.from_edit_mesh(obj.data) if obj.data.total_edge_sel == 0: return {'FINISHED'} crease_lay = bm.edges.layers.crease['SubSurfCrease'] creases = [edge[crease_lay] for edge in bm.edges if edge.select and edge[crease_lay] > self.RESOLUTION] if len(creases) == 0: return {'FINISHED'} for edge in bm.edges: edge_crease = edge[crease_lay] if not edge.select and edge_crease > self.RESOLUTION: for crease in creases: if crease + self.RESOLUTION >= edge_crease and crease - self.RESOLUTION <= edge_crease: edge.select_set(True) bmesh.update_edit_mesh(obj.data, False, False) return {'FINISHED'} def register(): bpy.utils.register_class(SimilarCreaseOperator) def unregister(): bpy.utils.unregister_class(SimilarCreaseOperator) if __name__ == "__main__": register()
пятница, 3 января 2014 г.
Начнём, пожалуй
Давным-давно, когда деревья ещё были большими, я ходил в кружок авиамоделирования. Авиамоделирование бывает разное, делится на категории, то чем занимался я называлось кордовым моделированием (не знаю можно ли так говорить, в гугле нашёл). Небольшой самолёт, достаточно сложной конструкции, с настоящим двигателем(видимо что-то вроде этого), совершает полеты по кругу и управляется с помощью стальных нитей(корд). Свой самолёт я так и не сделал, но мне всё же удалось поуправлять чужим. Так как мы были новичками, нам давали управлять только уже взлетевшим самолётом, ведь управлять взлётом и посадкой не так уж и просто.
Кроме меня и моего друга было ещё несколько человек и после того как полёты закончились, один из них сказал, что покажет нам что-то интересное, мы согласились и втроём(я, мой друг и этот странный парень) пошли смотреть. Странный парень привёл нас к себе в квартиру и попросил подождать, пока сам пошёл что-то доставать. Вернулся он со странным предметом, похожим на две перекрещенные палки, как выяснилось чуть позже именно двумя палками они и оказались, он сел на пол и долго прилаживал к ним верёвку, тут мы уже успели рассмотреть, что это было и смутная догадка начала появляться у нас в мозгах. Затем все втроём мы вышли на улицу и по очереди попробовали управлять этим "самолётом", т.е. эмулятором самолёта, которым была палка и нитка, если приложить определенные усилия то можно было раскрутить это чудо техники вокруг себя. Вот стоишь ты, крутишь эту палку и думаешь - какая же это ерунда. Мы вежливо проявили интерес и быстро сбежали от этого странного парня, посмеиваясь над ним на обратной дороге.
Да уж. Решил реанимировать мульт, думаю сменить формат немножко, видимо буду куски готового выкладывать сразу, всё равно не понятно - будет финиш хоть когда то. Сейчас выкладывать нечего, зато переформатирование сценария произошло небольшое, вот и неудачную сцену выкинул.
Кроме меня и моего друга было ещё несколько человек и после того как полёты закончились, один из них сказал, что покажет нам что-то интересное, мы согласились и втроём(я, мой друг и этот странный парень) пошли смотреть. Странный парень привёл нас к себе в квартиру и попросил подождать, пока сам пошёл что-то доставать. Вернулся он со странным предметом, похожим на две перекрещенные палки, как выяснилось чуть позже именно двумя палками они и оказались, он сел на пол и долго прилаживал к ним верёвку, тут мы уже успели рассмотреть, что это было и смутная догадка начала появляться у нас в мозгах. Затем все втроём мы вышли на улицу и по очереди попробовали управлять этим "самолётом", т.е. эмулятором самолёта, которым была палка и нитка, если приложить определенные усилия то можно было раскрутить это чудо техники вокруг себя. Вот стоишь ты, крутишь эту палку и думаешь - какая же это ерунда. Мы вежливо проявили интерес и быстро сбежали от этого странного парня, посмеиваясь над ним на обратной дороге.
Да уж. Решил реанимировать мульт, думаю сменить формат немножко, видимо буду куски готового выкладывать сразу, всё равно не понятно - будет финиш хоть когда то. Сейчас выкладывать нечего, зато переформатирование сценария произошло небольшое, вот и неудачную сцену выкинул.
Подписаться на:
Сообщения (Atom)