def set_uv_default_coords(context,obj):
uv_coords = obj.data.uv_layers[obj.data.uv_layers.active.name].data
### add uv items
for i in range(len(uv_coords)-len(obj.coa_uv_default_state)):
item = obj.coa_uv_default_state.add()
### remove unneeded uv items
if len(uv_coords) < len(obj.coa_uv_default_state):
for i in range(len(obj.coa_uv_default_state) - len(uv_coords)):
obj.coa_uv_default_state.remove(0)
### set default uv coords
frame_size = Vector((1 / obj.coa_tiles_x,1 / obj.coa_tiles_y))
pos_x = frame_size.x * (obj.coa_sprite_frame % obj.coa_tiles_x)
pos_y = frame_size.y * -int(int(obj.coa_sprite_frame) / int(obj.coa_tiles_x))
frame = Vector((pos_x,pos_y))
offset = Vector((0,1-(1/obj.coa_tiles_y)))
for i,coord in enumerate(uv_coords):
uv_vec_x = (coord.uv[0] - frame[0]) * obj.coa_tiles_x
uv_vec_y = (coord.uv[1] - offset[1] - frame[1]) * obj.coa_tiles_y
uv_vec = Vector((uv_vec_x,uv_vec_y))
obj.coa_uv_default_state[i].uv = uv_vec
评论列表
文章目录