CenterDataのUV版
Symmetryモードで左右対称にUV編集が出来るので便利です。
/**************************************
CenterDataのUV版
***************************************/
@script modeler
@name CenterUV
@version 2.3main
{
vmap = VMap(VMTEXTURE) || error("メッシュ内部にUV Mapはありません。 ");
while( vmap && vmap.type == VMTEXTURE ){
vmapnames += vmap.name;
vmap = vmap.next();
}
reqbegin("Center UV");
c1 = ctlpopup("Texture", 1, vmapnames);
return if !reqpost();
vindex = getvalue(c1);
reqend();
vmap = VMap(vmapnames[vindex]) || error(vmapnames[vindex],"を取得できません。");
selmode(USER);
editbegin();
valmax[1] = -100.0;
valmax[2] = -100.0;
valmin[1] = 100.0;
valmin[2] = 100.0;
foreach(p, points){
if( vmap.isMapped(p) ){
values = vmap.getValue(p);
if( values[1] > valmax[1] ) valmax[1] = values[1];
else if( values[1] < valmin[1] ) valmin[1] = values[1];
if( values[2] > valmax[2] ) valmax[2] = values[2];
else if( values[2] < valmin[2] ) valmin[2] = values[2];
}
}
offset[1] = (valmin[1] + (valmax[1]-valmin[1])*0.5) * -1;
offset[2] = (valmin[2] + (valmax[2]-valmin[2])*0.5) * -1;
foreach(p, points){
if( vmap.isMapped(p) ){
values = vmap.getValue(p);
values[1] += offset[1];
values[2] += offset[2];
vmap.setValue(p, values);
}
}
editend();
}