Unity插件之——Voxel Importer

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity插件之——Voxel Importer相关的知识,希望对你有一定的参考价值。

参考技术A   最近在用magicavoxel建模,要导入Unity做绑骨,意外的发现了这个插件贼好用,写一个小的使用教程

首先导入插件。

创建一个空物体

挂载脚本 Voxel Skinned Animation Object

作用 :绑定体素骨骼,制作动画的前一步。

应用到动画对象。 它生成一个优化的网格。

脚本位置: 

Component/Voxel Importer/Voxel Skinned Animation Object

在voxel file打开一个magicavoxel文件

在Setting——Import Offset选择Feet

然后选择骨骼(我下的插件有四种,具体是哪种试一试就知道了)

然后就可以开(tong)心(ku)的绑骨啦

调整好骨骼位置之后,选择各骨骼,开始设置骨骼的权重。

按下 “Edit Bone Weight” 按钮,开始设置骨骼的权重

Voxel模式下

voxel: 以体素一块一块的设置,

fill :自动选择填充相关部分

Rect :矩形选择,选择到的每个体素都是同一个权重值,配合Vertex使用。(常用) 

Vertex模式下

Brush :笔刷模式,直接设置某些顶点

Rect :矩形选择,会有比较好的过度。(常用) 

然后在各部位设置好就OK啦

unity修改所选路径下的,对象的importer属性

遍历文件夹下的对象,并修改其导入设置:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;
using System.Diagnostics;
using System;
using System.Text;


public class TextureOperation
{
    [MenuItem("Assets/Texture/DisableMipmapAndRW")]
    static void DisableMipmapAndRW()
    {
        UnityEngine.Object[] objs = Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.DeepAssets);
        for (int i = 0; i < objs.Length; i++)
        {
            UnityEngine.Object obj = objs[i];
            Texture2D tex = obj as Texture2D;
            if (tex)
            {
                string texturePath = AssetDatabase.GetAssetPath(tex);
                TextureImporter ti = AssetImporter.GetAtPath(texturePath) as TextureImporter;
                if (ti)
                {
                    ti.mipmapEnabled = false;
                    ti.isReadable = false;
                    ti.SaveAndReimport();
                }
                else
                {
                    UnityEngine.Debug.LogError("========Fail to batch " + texturePath);
                }
            }
        }

    } }

  遍历所选文件夹下的 对象

 UnityEngine.Object[] objs = Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.DeepAssets);
通过对象,拿到它的路径
 string texturePath = AssetDatabase.GetAssetPath(tex);
通过它的路径,拿到它的importer,设置其属性;然后,保存并重新导入。

AssetsProcessor类也能处理对象,然后运行reimportAll也可以好像。

以上是关于Unity插件之——Voxel Importer的主要内容,如果未能解决你的问题,请参考以下文章

Unity实战篇,快速搭建体素风格关卡地图(Tile3D | 我的世界 | Voxel | 场景 | 编辑器)

Unity插件之NGUI学习—— ScrollView(Panel)

unity之spine骨骼动画使用

unity之spine骨骼动画使用

unity之spine骨骼动画使用

Unity插件系列之二维码