精华内容
下载资源
问答
  • // //获取文件夹下所有的图片路径  public static List<Texture2D> allTex2d = new List(); // 储存获取到的图片  public static int pictureNumber = 0;//文件夹中图片的个数  public Image image;  ...

    using System.Collections;
    using System.Collections.Generic;
    using System.IO;
    using UnityEngine;
    using UnityEngine.UI;
    using DG;
    public class LoadImage : MonoBehaviour
    {
        public string imageUrl= @"E:\李晓军\赵建鹏\posePictures";
        private string[] dirs = new string[] { };// //获取文件夹下所有的图片路径  
        public static List<Texture2D> allTex2d = new List<Texture2D>(); // 储存获取到的图片  
        public static int pictureNumber = 0;//文件夹中图片的个数
        public Image image;
        private void OnEnable()
        {   
            if (allTex2d.Count == 0)
            {
                load();
            }
        }

        void Start()
        {
          StartCoroutine(pictureTrue());
        }

        /// <summary>
        /// 获取图片个数,并存储
        /// </summary>
        private void load()
        {
            List<string> filePaths = new List<string>();
            //格式类型大小写无所谓
            string imgtype = "*.BMP|*.jpg|*.GIF|*.PNG";
            string[] ImageType = imgtype.Split('|');
            int number = 0;//个数存储
            for (int i = 0; i < ImageType.Length; i++)
            {
                //获取文件夹下所有的图片路径  
                dirs = Directory.GetFiles(imageUrl, ImageType[i]);
           
                for (int j = 0; j < dirs.Length; j++)
                {
                    filePaths.Add(dirs[j]);
                }
                number += dirs.Length;//不同类型的图片累计增加
            }

            for (int i = 0; i < filePaths.Count; i++)
            {
                Texture2D tx = new Texture2D(100, 100);
                tx.LoadImage(getImageByte(filePaths[i]));
                allTex2d.Add(tx);
            }

            pictureNumber = number;//传递图片个数
            Debug.Log("图片的个数:" + pictureNumber);

        }

        /// <summary>  
        /// 根据图片路径返回图片的字节流byte[]  
        /// </summary>  
        /// <param name="imagePath">图片路径</param>  
        /// <returns>返回的字节流</returns>
        private static byte[] getImageByte(string imagePath)
        {
            FileStream files = new FileStream(imagePath, FileMode.Open);
            byte[] imgByte = new byte[files.Length];
            files.Read(imgByte, 0, imgByte.Length);
            files.Close();
            return imgByte;

        }

        /// <summary>
        /// 把图片实例化出来
        /// </summary>
        private IEnumerator pictureTrue()
        {
            while (true)
            {
                for (int i = 0; i < allTex2d.Count; i++)
                {
                    //image.GetComponent<Image>().sprite = null;
                    Sprite sprit = Sprite.Create(allTex2d[i], new Rect(0, 0, allTex2d[i].width, allTex2d[i].height), Vector2.zero);
                    image.GetComponent<Image>().sprite = sprit;
                    yield return new WaitForSeconds(0.1f);
                }
            }
        }
    }

     

    展开全文
  • 1.flashCC中打开库,在一个元件中右键->...2.点Export后得到playerWalk.png和playerWalk.plist,复制到当前项目目录的res文件夹下。如图: 3.修改resource.js var res = { playerWalk_plist:"res/playerWa...

    1.flashCC中打开库,在一个元件中右键->Generate Sprite Sheet...设置如下:

    2.点Export后得到playerWalk.png和playerWalk.plist,复制到当前项目目录的res文件夹下。如图:

    3.修改resource.js

    var res = {
        playerWalk_plist:"res/playerWalk.plist",
        playerWalk_png:"res/playerWalk.png"
    };
    
    var g_resources = [];
    for (var i in res) {
        g_resources.push(res[i]);
    }

    4.修改app.js

    var HelloWorldLayer = cc.Layer.extend({
        sprite:null,
        ctor:function () {
            this._super();
    
            var size = cc.winSize;
            
            cc.spriteFrameCache.addSpriteFrames(res.playerWalk_plist,res.playerWalk_png);
    
            var sp=cc.Sprite.create("#playerWalk0000");//前面加'#'号,再加plist中的帧key名
            sp.setPosition(cc.p(size.width*0.5,size.height*0.5));
            this.addChild(sp);
    
            return true;
        }
    });
    
    var HelloWorldScene = cc.Scene.extend({
        onEnter:function () {
            this._super();
            var layer = new HelloWorldLayer();
            this.addChild(layer);
        }
    });

     5.playerWalk.plist

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
        <dict>
            <key>frames</key>
            <dict>
                <key>playerWalk0000</key>
                <dict>
                    <key>aliases</key>
                    <array/>
                    <key>sourceColorRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>spriteOffset</key>
                    <string>{0,0}</string>
                    <key>spriteSize</key>
                    <string>{46,67}</string>
                    <key>spriteSourceSize</key>
                    <string>{46,67}</string>
                    <key>spriteTrimmed</key>
                    <false/>
                    <key>textureRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>textureRotated</key>
                    <false/>
                </dict>
                <key>playerWalk0001</key>
                <dict>
                    <key>aliases</key>
                    <array/>
                    <key>sourceColorRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>spriteOffset</key>
                    <string>{0,0}</string>
                    <key>spriteSize</key>
                    <string>{46,67}</string>
                    <key>spriteSourceSize</key>
                    <string>{46,67}</string>
                    <key>spriteTrimmed</key>
                    <false/>
                    <key>textureRect</key>
                    <string>{{46,0},{46,67}}</string>
                    <key>textureRotated</key>
                    <false/>
                </dict>
                <key>playerWalk0002</key>
                <dict>
                    <key>aliases</key>
                    <array/>
                    <key>sourceColorRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>spriteOffset</key>
                    <string>{0,0}</string>
                    <key>spriteSize</key>
                    <string>{46,67}</string>
                    <key>spriteSourceSize</key>
                    <string>{46,67}</string>
                    <key>spriteTrimmed</key>
                    <false/>
                    <key>textureRect</key>
                    <string>{{92,0},{46,67}}</string>
                    <key>textureRotated</key>
                    <false/>
                </dict>
                <key>playerWalk0003</key>
                <dict>
                    <key>aliases</key>
                    <array/>
                    <key>sourceColorRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>spriteOffset</key>
                    <string>{0,0}</string>
                    <key>spriteSize</key>
                    <string>{46,67}</string>
                    <key>spriteSourceSize</key>
                    <string>{46,67}</string>
                    <key>spriteTrimmed</key>
                    <false/>
                    <key>textureRect</key>
                    <string>{{138,0},{46,67}}</string>
                    <key>textureRotated</key>
                    <false/>
                </dict>
                <key>playerWalk0004</key>
                <dict>
                    <key>aliases</key>
                    <array/>
                    <key>sourceColorRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>spriteOffset</key>
                    <string>{0,0}</string>
                    <key>spriteSize</key>
                    <string>{46,67}</string>
                    <key>spriteSourceSize</key>
                    <string>{46,67}</string>
                    <key>spriteTrimmed</key>
                    <false/>
                    <key>textureRect</key>
                    <string>{{184,0},{46,67}}</string>
                    <key>textureRotated</key>
                    <false/>
                </dict>
                <key>playerWalk0005</key>
                <dict>
                    <key>aliases</key>
                    <array/>
                    <key>sourceColorRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>spriteOffset</key>
                    <string>{0,0}</string>
                    <key>spriteSize</key>
                    <string>{46,67}</string>
                    <key>spriteSourceSize</key>
                    <string>{46,67}</string>
                    <key>spriteTrimmed</key>
                    <false/>
                    <key>textureRect</key>
                    <string>{{0,67},{46,67}}</string>
                    <key>textureRotated</key>
                    <false/>
                </dict>
                <key>playerWalk0006</key>
                <dict>
                    <key>aliases</key>
                    <array/>
                    <key>sourceColorRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>spriteOffset</key>
                    <string>{0,0}</string>
                    <key>spriteSize</key>
                    <string>{46,67}</string>
                    <key>spriteSourceSize</key>
                    <string>{46,67}</string>
                    <key>spriteTrimmed</key>
                    <false/>
                    <key>textureRect</key>
                    <string>{{46,67},{46,67}}</string>
                    <key>textureRotated</key>
                    <false/>
                </dict>
                <key>playerWalk0007</key>
                <dict>
                    <key>aliases</key>
                    <array/>
                    <key>sourceColorRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>spriteOffset</key>
                    <string>{0,0}</string>
                    <key>spriteSize</key>
                    <string>{46,67}</string>
                    <key>spriteSourceSize</key>
                    <string>{46,67}</string>
                    <key>spriteTrimmed</key>
                    <false/>
                    <key>textureRect</key>
                    <string>{{92,67},{46,67}}</string>
                    <key>textureRotated</key>
                    <false/>
                </dict>
                <key>playerWalk0008</key>
                <dict>
                    <key>aliases</key>
                    <array/>
                    <key>sourceColorRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>spriteOffset</key>
                    <string>{0,0}</string>
                    <key>spriteSize</key>
                    <string>{46,67}</string>
                    <key>spriteSourceSize</key>
                    <string>{46,67}</string>
                    <key>spriteTrimmed</key>
                    <false/>
                    <key>textureRect</key>
                    <string>{{138,67},{46,67}}</string>
                    <key>textureRotated</key>
                    <false/>
                </dict>
                <key>playerWalk0009</key>
                <dict>
                    <key>aliases</key>
                    <array/>
                    <key>sourceColorRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>spriteOffset</key>
                    <string>{0,0}</string>
                    <key>spriteSize</key>
                    <string>{46,67}</string>
                    <key>spriteSourceSize</key>
                    <string>{46,67}</string>
                    <key>spriteTrimmed</key>
                    <false/>
                    <key>textureRect</key>
                    <string>{{184,67},{46,67}}</string>
                    <key>textureRotated</key>
                    <false/>
                </dict>
                <key>playerWalk0010</key>
                <dict>
                    <key>aliases</key>
                    <array/>
                    <key>sourceColorRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>spriteOffset</key>
                    <string>{0,0}</string>
                    <key>spriteSize</key>
                    <string>{46,67}</string>
                    <key>spriteSourceSize</key>
                    <string>{46,67}</string>
                    <key>spriteTrimmed</key>
                    <false/>
                    <key>textureRect</key>
                    <string>{{0,134},{46,67}}</string>
                    <key>textureRotated</key>
                    <false/>
                </dict>
                <key>playerWalk0011</key>
                <dict>
                    <key>aliases</key>
                    <array/>
                    <key>sourceColorRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>spriteOffset</key>
                    <string>{0,0}</string>
                    <key>spriteSize</key>
                    <string>{46,67}</string>
                    <key>spriteSourceSize</key>
                    <string>{46,67}</string>
                    <key>spriteTrimmed</key>
                    <false/>
                    <key>textureRect</key>
                    <string>{{46,134},{46,67}}</string>
                    <key>textureRotated</key>
                    <false/>
                </dict>
                <key>playerWalk0012</key>
                <dict>
                    <key>aliases</key>
                    <array/>
                    <key>sourceColorRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>spriteOffset</key>
                    <string>{0,0}</string>
                    <key>spriteSize</key>
                    <string>{46,67}</string>
                    <key>spriteSourceSize</key>
                    <string>{46,67}</string>
                    <key>spriteTrimmed</key>
                    <false/>
                    <key>textureRect</key>
                    <string>{{92,134},{46,67}}</string>
                    <key>textureRotated</key>
                    <false/>
                </dict>
                <key>playerWalk0013</key>
                <dict>
                    <key>aliases</key>
                    <array/>
                    <key>sourceColorRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>spriteOffset</key>
                    <string>{0,0}</string>
                    <key>spriteSize</key>
                    <string>{46,67}</string>
                    <key>spriteSourceSize</key>
                    <string>{46,67}</string>
                    <key>spriteTrimmed</key>
                    <false/>
                    <key>textureRect</key>
                    <string>{{138,134},{46,67}}</string>
                    <key>textureRotated</key>
                    <false/>
                </dict>
                <key>playerWalk0014</key>
                <dict>
                    <key>aliases</key>
                    <array/>
                    <key>sourceColorRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>spriteOffset</key>
                    <string>{0,0}</string>
                    <key>spriteSize</key>
                    <string>{46,67}</string>
                    <key>spriteSourceSize</key>
                    <string>{46,67}</string>
                    <key>spriteTrimmed</key>
                    <false/>
                    <key>textureRect</key>
                    <string>{{184,134},{46,67}}</string>
                    <key>textureRotated</key>
                    <false/>
                </dict>
                <key>playerWalk0015</key>
                <dict>
                    <key>aliases</key>
                    <array/>
                    <key>sourceColorRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>spriteOffset</key>
                    <string>{0,0}</string>
                    <key>spriteSize</key>
                    <string>{46,67}</string>
                    <key>spriteSourceSize</key>
                    <string>{46,67}</string>
                    <key>spriteTrimmed</key>
                    <false/>
                    <key>textureRect</key>
                    <string>{{0,0},{46,67}}</string>
                    <key>textureRotated</key>
                    <false/>
                </dict>
            </dict>
            <key>metadata</key>
            <dict>
                <key>format</key>
                <integer>3</integer>
                <key>size</key>
                <string>{256,256}</string>
                <key>target</key>
                <dict>
                    <key>name</key>
                    <string>playerWalk.png</string>
                    <key>textureFileName</key>
                    <string>playerWalk</string>
                    <key>textureFileExtension</key>
                    <string>png</string>
                    <key>premultipliedAlpha</key>
                    <true/>
                </dict>
            </dict>
        </dict>
    </plist>
    View Code

     

    展开全文
  • 本插件为自制插件,方便快捷,类似AE的序列帧格式输出设置,可以将附着脚本的相机画面渲染出序列帧,同时提供数设置,文件夹选择,渲染图片大小设置,渲染中停止功能。
  • 闲言碎语不要讲,本篇是开源系列正式第一篇,思来想去,决定把这个重要的首篇留给了 dayu_path本文大纲背景安装技术细节介绍使用举例基础用法处理序列帧先得到符合要求的文件们查看序列帧数信息把序列帧展开,...

    好久不见,我就不找理由强行解释没更新了。

    闲言碎语不要讲,本篇是开源系列正式第一篇,思来想去,决定把这个重要的首篇留给了 dayu_path

    本文大纲

    背景安装技术细节介绍使用举例基础用法处理序列帧先得到符合要求的文件们查看序列帧的帧数信息把序列帧展开,获得每个单个文件几种 pattern 风格转换其他场景应用更高级的用法未来新功能项目地址

    背景

    我们在日常开发中经常面临路径、文件名处理的问题,比如:

    • 把某个文件夹下所有的.mov文件拿出来,有时需要一直递归下去

    • 三个平台(win mac linux)的路径转换

    • 提取出文件名中的文件类型(拓展名)

    • 提取出文件名中的帧号

    • 文件夹的相对路径花式跳转

    配合os sys glob模块,这些还算在可控范围。但遇到文件序列帧处理,就真的想跪了。

    • 识别我们是同一套序列帧

    • 有缺失帧的处理

    • Nuke 软件的 %04d 风格、Houdini 软件的 $F4和其他####风格转换

    • 递归扫描出指定文件下,某几种指定格式的序列帧文件

    • 把序列帧文件展开成一帧一帧(执行拷贝操作)

    还有一个遗憾,使用os处理,这很不面向对象。

    安装

    使用pip安装

    pip install -U dayu-path

    导入库

    from dayu_path import DayuPath

    技术细节介绍

    不 care 这些的请直接调到下一节

    dayu_path最初版是基于unipath库进行拓展的。

    后来觉得安装dayu_path还得安装unipath太烦了。

    于是就合并unipath的功能,发展到了现在的样子。

    dayu_path是继承

    • str(python 3.x) 或

    • unicode(python 2.x)

    类进行拓展开发的。

    os模块里面的相关的函数,添加到dayu_path类上。

    也就是说 str/unicode 有的函数它都有,os有的函数它也(大部分)有。

    并根据影视动画行业的文件特点,增加了序列文件的处理功能。

    使用举例

    from dayu_path import DayuPath
    my_file = DayuPath('d:/test_dayu_path/a/exr/pl_0010_comp_master_v0001.1001.exr')

    基础用法

    # 返回文件的名字
    print my_file.name 
    # pl_0010_comp_master_v0001.1001.exr

    # 返回文件的拓展名
    print my_file.ext 
    # .exr

    # 返回去掉name最后一个 .之后的内容
    print my_file.stem 
    # pl_0010_comp_master_v0001.1001
    print my_file.stem.stem 
    # pl_0010_comp_master_v0001

    # 返回文件名中符合 `.v{}.` 的部分 
    print my_file.version 
    # v0001 

    # 返回文件名中包含数字且不合符version格式的最后一组匹配到的数字 们
    print my_file.frame 
    # 1001 

    # 返回文件所在的文件夹
    my_file.parent 
    # d:/test_dayu_path/a/exr
    my_folder = my_file.parent.parent 
    # d:/test_dayu_path/a

    # 返回文件夹的子文件/文件夹
    my_folder.child('exr'
    # d:/test_dayu_path/a/exr

    # 判断文件/文件夹是否存在
    my_folder.exists() 
    # True
    my_folder.child('hahaha').exists() 
    # False

    # 让操作系统打开文件夹
    my_folder.show() 
    # windows就弹出文件资源管理器啦~
    my_file.show() 
    # 打开文件所在文件夹

    # 一些 os 模块的函数展示
    my_folder.listdir() 
    # [u'd:/test_dayu_path/a/exr']

    处理序列帧

    我们假设个场景,外包/DI 发回来的一大堆的 exr 序列帧文件,结果如下

    from_vendor/
      pl_0010/
        exr/
          pl_0010_comp_v0007.1001.exr
          pl_0010_comp_v0007.1002.exr
          pl_0010_comp_v0007.1005.exr
          pl_0010_comp_v0007.1006.exr
        mov/
          pl_0010_comp_v0007.mov
          something_other_format.mp4
      20190306/
        20190306.csv
        exr/
          A001C001_170922_E4FB.7272829.exr
          A001C001_170922_E4FB.7272830.exr
          A001C001_170922_E4FB.7272831.exr
          A001C001_170922_E4FB.7272832.exr
          something_other_format.jpg

    制片大大要把这些文件上传到公司内部服务器上,并且要符合公司文件夹层级规范。f720b5851a9480487c465f42e24f191b.png

    于是拜托你来帮忙写个小工具ddb979e50bcfedc274a3f61acd619935.png,要求如下:

    • 自动识别到 exrmov 文件,其他文件忽略掉

    • 能在文件序列有缺失帧的时候提示他

    • 只想指定from_vendor文件夹

    • 可以自行决定是否要把文件的帧号从10010001开始(比如重新给 DI 发来的文件排帧号)

    • 当有缺帧的时候,可以自行决定是否保持帧号(比如外包只提交了某几个关键帧)

    • 拷贝到公司服务器符合规则的路径下

    看在她/他这么有诚意的份儿上,你打开 Python,进行了如下行云流水的操作。

    先得到符合要求的文件们
    from dayu_path import DayuPath


    root_folder = DayuPath('/path/to/from_vendor')

    # 使用 scan 函数进行扫盘操作
    # recursive 代表是否要递归扫盘
    # ext_filters 传入要过滤的文件格式
    for seq_file in root_folder.scan(recursive=True, ext_filters=('mov','exr')):
        print seq_file 

        # 我们就得到了符合要求的序列文件,他们被合并成了一个 DayuPath
        # /path/to/from_vendor/20190306/exr/A001C001_170922_E4FB.%07d.exr
        # /path/to/from_vendor/pl_0010/exr/pl_0010_comp_v0007.%04d.exr
        # /path/to/from_vendor/pl_0010/mov/pl_0010_comp_v0007.mov
    查看序列帧的帧数信息
    # 我们拿这个序列文件举例 my_seq_file
    # /path/to/from_vendor/pl_0010/exr/pl_0010_comp_v0007.%04d.exr

    # 获取序列中所有的帧号
    my_seq_file.frames
    # [1001, 1002, 1005, 1006]

    # 获取序列中丢失的帧
    my_seq_file.missing
    # [1003, 1004]
    把序列帧展开,获得每个单个文件
    for f in my_seq_file.frames:
        my_seq_file.restore_pattern(f)
        # /path/to/from_vendor/pl_0010/exr/pl_0010_comp_v0007.1001.exr
        # /path/to/from_vendor/pl_0010/exr/pl_0010_comp_v0007.1002.exr
        # /path/to/from_vendor/pl_0010/exr/pl_0010_comp_v0007.1005.exr
        # /path/to/from_vendor/pl_0010/exr/pl_0010_comp_v0007.1006.exr

    符合要求的文件都拿到了,下面就是要拷贝重命名操作了.
    这里我留个作业914dc029085e06d9c07c460e16371318.png,请好学的自行你探索dayu_path里面的:

    • rename_sequence

    • copy_sequence

    几种 pattern 风格转换
    my_seq_file.to_pattern()
    # /path/to/from_vendor/pl_0010/exr/pl_0010_comp_v0007.%04d.exr

    my_seq_file.to_pattern('#')
    # /path/to/from_vendor/pl_0010/exr/pl_0010_comp_v0007.####.exr

    my_seq_file.to_pattern('$')
    # /path/to/from_vendor/pl_0010/exr/pl_0010_comp_v0007.$F4.exr

    其他场景应用

    情景:需要用户指定一组 jpg 序列帧,只需要用户随意选择其中一帧

    # 用户通过界面选择了 hahahah.1044.jpg 文件
    single_file = DayuPath('d:/temp/hahahah.1044.jpg')

    # 不递归扫盘
    seq_file = list(single_file.scan())[0]

    print seq_file
    # d:/temp/hahahah.%04d.jpg

    情景:maya软件里面 file 节点的file属性

    # maya 界面显示的就是 d:/temp/hahahah.%04d.jpg 文件
    fake_seq_file = DayuPath('d:/temp/hahahah.%04d.jpg')
    fake_seq_file.frames
    # [] 空列表

    # 不递归进行扫盘
    real_seq_file = list(fake_seq_file.scan())[0]
    real.frames
    # [..., 1044, 1055, ...] 有了!

    更高级的用法

    你可以拓展 dayu_path哟~0182d972a20f2b9c137221410b52089b.png

    比如说,你们公司的文件夹层级结构非常地规范,一个文件的全路径,包含了project shot 环节等等各种信息。

    那么,拿到这个路径后,如何基于dayu_path,得到这些信息呢?

    from dayu_path import DayuPath

    work_file = DayuPath('x:/projects/my_awsome_project/shots/pl/0010/ani/v0001/pl_0010_ani_v0001.ma')

    # 我想这样访问信息
    work_file.project() 
    # 返回 my_awsome_project

    work_file.sequence() 
    # 返回 pl

    work_file.shot() 
    # 返回 0010 或者 pl_0010

    work_file.step() 
    # 返回 ani

    # 等等

    我们可以给dayu_path添加plugin,比如上面的例子,可以这样做

    from dayu_path import DayuPath
    from dayu_path.plugin import DayuPathPlugin

    # 定义干活的函数
    def project(self):
       # 我粗暴地演示下,不为运行失败负责哟~
       return self.split('/')[2]

    # 注册为 dayu_path 的属性
    DayuPathPlugin.register_func(project)

    # 测试一下吧
    DayuPath('x:/projects/my_awsome_project/shots/pl/0010/ani/v0001/pl_0010_ani_v0001.ma').project()
    # 我觉得应该打印出 my_awsome_project

    未来新功能

    • 支持udim,可以识别和展开

    项目地址

    https://github.com/phenom-films/dayu_path

    欢迎 watch star fork 三连击aea91c60a6b1383e434d3a496570244f.png

    『人生苦短,我用 dayu_path』


    本公众号还有『色彩科学系列』科普文章哦

    关注公众号后在

    菜单“系列文章->色彩科学” 即可查看。

    展开全文
  • 序列帧动画制作

    2020-10-16 11:01:36
    动画制作: 1 打开编辑器 2 新建项目,名称示例:playrun 3 创建动画,名称示例:playrun,帧率用来控制动画速度快慢,也可以右键修改 4 右键创建动作,名称示例playrun 5 右键添加(就是图片),重复操作,...

    帧动画制作:

    1 打开编辑器

    2 新建项目,名称示例:playrun

    3 创建动画,名称示例:playrun,帧率用来控制动画速度快慢,也可以右键修改

    4 右键创建动作,名称示例playrun

    5 右键添加帧(就是图片),重复操作(名称不要一样,序号就可以),直到添加完所有图片,可以点击左侧红框内播放按钮进行预览

    6 点击导出

    7 文件名示例:playrun,点击保存,文件夹就会出现png和json两个格式的文件,全都放到egret项目中

    展开全文
  • 将一段AVI视频的每一转换成图片序列并保存到指定文件夹
  • Unity序列帧实现

    2013-08-22 22:07:00
    转自:脱莫柔Unity3D学习...读取Resources文件夹下的序列帧,两种播放方式。 usingUnityEngine; usingSystem.Collections; publicclassanim_xuanwo:MonoBehaviour{ publicstringmovieName="YouFolderName" ...
  • “文件”,选择存放序列帧文件夹 然后导入,接着看到如下界面,直接确定。 此时,窗口中就显示了我们所导入的所有序列帧,如下所示 2. 对序列帧进行裁剪【关键】 我们刚导入的序列帧默认是占据了整个...
  • 制作序列帧动画

    2019-11-06 10:25:32
    1、新建一个空白项目,并且把图片放到assets目录下的images文件夹 2、创建一个场景以及一个精灵 3、选中刚才创建的精灵,然后点击顶部的导航栏的面板-动画编辑器 4、这时候会提示说,要制作动画,需要先为当前...
  • 创建项目 ... 使用CocosStudio创建...右键单击CocosStudio的工程文件,选择“导入资源”,然后找到资源存放的文件夹,选择图片,进行导入。 添加一个Sprite 选择“精灵”的选项卡,把它拖入到场景中。 设置记
  • 导航一、导入资源二、创建节点三、使用序列帧创建动画四、使用骨骼动画 一、导入资源 动画资源放到resources/model文件夹下,没有则对应新建一个,当然,也可以是其他路径,代码做对应修改就行(下同); 二、创建...
  • 创建序列帧动画特效

    千次阅读 2016-09-12 19:02:34
    首先从官方网站或者其他地方下载TexturePackerGUI到电脑上,然后利用这个软件制作plist文件,将它保存到resource文件夹下,然后创建。 代码如下: void Plane2::boom(Sprite* i){ SpriteFrameCache *frameCache...
  • 本篇博客主要是使用python程序批量复制视频中的某一图片到另外一个文件夹中。
  • (二)plist的使用和序列帧动画

    千次阅读 2015-02-04 21:03:56
    iOS的程序在安装在手机上以后会把全部资源文件集成在一个文件夹中,这种文件集合称为bundle,对于一般的工程,只有一个bundle,即mainbundle,因此可以通过bundle来获取文件的全路径,然后读取文件,下面的例子读取...
  • [工具集]等比序列帧图片切割工具

    千次阅读 2019-02-13 14:52:45
    快速对图片进行等比裁剪,导出分类好的文件夹. 工具基于Qt编写,因为代码不知道放哪了,暂不支持批处理操作 效果: 下载: https://pan.baidu.com/s/1gvGvLVPABNuZ1tWuECE2bQ 提取码:ihdg ps: 提示缺少xxx.dll文件 ...
  • Unity中基于NGUI插件制作序列帧动画

    千次阅读 2016-02-27 10:01:16
    我们不仅可以用unity开发3D游戏,还可以开发2D类游戏,在2D游戏中动画的... 1:我们首先将需要制作动画的素材导入到项目工程中,为了避免混乱,将一个动画的素材放在一个文件夹下,并将这些图片的格式改为    2:
  • FFmpeg软件在下面链接下载 需要放到streamingAsset\ffmpeg文件夹下 下面再出一个安卓调用FFmpeg生成视频的博客 using System.Collections; using System.Diagnostics; using System.IO; using UnityEngine; ...
  • 在cocoStudio中如何制作序列帧动画,在这边不提及了,在后续中会添加。把导出来的文件复制到资源文件夹下面、 在项目中添加引用,CocoStudio 、Externalion、GUI这个三个库文件,具体的引用方式在之前的文章中详细的...
  • 方便渲染人员快速拷贝、删除、重命名渲染帧序列,插件的特色在于可以快速智能区分同一文件夹中所有不同名称序列图片,并复制删除重命名。只需要指定图片的总目录,插件即可为每个通道图片序列文件快速复制、删除、...
  • 设计用于较窄的用例,以更快地生成图像帧序列,以用作较长视频中的覆盖。 工作流程如下: 通过任何视频编辑程序渲染长格式视频的上一个电影文件 放入搅拌机作为背景电影(并为声音添加声音对象) 为需要自定义...
  • 导入flash 逐动画

    2014-08-21 09:07:00
    只要图片是一序列的,比如0001-0100,就可以使用导入素材功能,选择第一张图片,选中影片剪辑并编辑然后点击导入到舞台,然后FlashCS6工具就会问你,这是一序列图片,是否逐导入,点是,就ok了. 要点: 导入到舞台,...
  • 火炬头路 工作正在进行中 Pytorch中具有光流和深度估计的单次深梦和序列梦。 特征: 使用光流进行序列梦(Farneback或SpyNet) ...当前,只能梦想从视频中预先用ffmpeg提取的帧序列 SpyNet代码改编自该
  • 同样,时间序列的嘈杂和缺少可能会使此任务更加困难。 通过各种实验表明,所提出的方法可以有效地解决这些问题。 用法 从下载数据集,将它们放在名为“ Dataset”的文件夹中,然后按照以下步骤操作。 通过运行...
  • 时间序列样式数据; 但是,在时间序列中添加功能列有助于机器学习。 要安装,请将MasterLibrary下载到工作目录。 大多数应用程序无需任何配置即可运行-使用pandas_datareader的任何应用程序都应修改为使用...
  • Unity2D中图片序列帧动画的制作 0.前言 由于我们正在开发一个2D游戏,动画是非常容易的。我们制作动画的步骤分为两步:导入图片与创建动画。 1.导入图片 这里以植物大战僵尸里寒冰射手的图片为例。 注意:右击图像...
  • 获取某路径下的图片,再逐张传入TensorRT进行识别,但是如果要做连续处理,需要将图片序列从小到大排序。 Code #define _CRT_SECURE_NO_WARNINGS #include <io.h> #include <iostream> #include <...
  • android播放动画OOM问题解决

    千次阅读 2016-01-19 17:12:51
    近来在写项目时,有遇到使用android原生的序列帧动画时,在部分手机(尤其是内存小的)上出现了OOM问题,这种问题是不可避免的。1.我觉首先你要看看是否有适配问题,因为你选择播放的图片要是没有放入对应的适配...

空空如也

空空如也

1 2 3 4 5
收藏数 98
精华内容 39
关键字:

帧序列文件夹