佳丽云

英雄无敌3-WoG中文站

 找回密码
 英雄注册|Register
楼主: XEricSin

在ERA上做MOD的教程

  [复制链接]
  • TA的每日心情
    奋斗
    2024-7-26 20:15
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]狂狼人

    1

    回帖

    4170

    金币

    0

    精华

    2级 Adventuring Hero

    Rank: 2

    积分
    290
    发表于 2020-4-19 16:19:54 | 显示全部楼层
    新人先观摩下!自己研究研究看看!

    评分

    1

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-6-26 23:24
  • 签到天数: 1121 天

    连续签到: 2 天

    [LV.10]圣龙

    66

    回帖

    1万

    金币

    0

    精华

    8级 Supreme Hero

    Rank: 8Rank: 8

    积分
    30925
    发表于 2020-4-22 01:23:33 | 显示全部楼层
    多谢楼主的好贴,楼主辛苦了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-7-19 18:43
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]狂狼人

    54

    回帖

    4980

    金币

    0

    精华

    3级 Known Hero

    Rank: 3Rank: 3

    积分
    811
    发表于 2020-4-22 17:33:08 | 显示全部楼层
    这都是大神啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-6-26 23:24
  • 签到天数: 1121 天

    连续签到: 2 天

    [LV.10]圣龙

    66

    回帖

    1万

    金币

    0

    精华

    8级 Supreme Hero

    Rank: 8Rank: 8

    积分
    30925
    发表于 2020-4-24 18:33:24 | 显示全部楼层
    谢谢分享.厉害厉害,研究研究
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-12-9 01:09
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]火元素使者

    1839

    回帖

    8223

    金币

    8

    精华

    版主

    Rank: 10Rank: 10Rank: 10

    积分
    10806

    社区QQ达人

     楼主| 发表于 2020-5-23 05:27:10 | 显示全部楼层
    今天我们来讲一讲怎么从网上获取新的特效动画DEF。

    网上有很多gif动图,但是这些动图绝大多数是半透明图片混合到底色上生成的假半透明图片。几乎没有H3可以直接使用的透明像素和不透明像素分开的图片。

    幸好,这些动图中很大部分是黑色或深灰色的底色。这使得我们可以通过一些手段把这些假半透明变成抖动式的半透明。
    我利用python写了几个函数。使用时,调用 extractGIFframes2() 和 generateBMPforDEF() 两个函数,生成bmp图片,然后可以用DEF编辑器打包城DEF。
    1. #例子,两个函数输入的文件夹地址必须一致
    2. extractGIFframes2('C:/folder')
    3. generateBMPforDEF('C:/folder')
    复制代码


    转化gif前,先创建一个文件夹比如叫effect1,把下载的gif动图放到文件夹中。
    def folder.png

    生成可用图片后变成这个样子:
    def folder2.png

    放入DEF编辑器中的效果:
    def folder3.png



    以下为python代码,需要按照相关库:
    1. import numpy as np
    2. import random
    3. import os

    4. import cv2
    5. from matplotlib import pyplot as plt

    6. #in_path = bmp/gif图片
    7. #out_path = bmp/gif图片
    8. #针对黑色背景的GIF
    9. #根据HSV的V值随机剔除像素
    10. #比方法2更耐受背景噪音
    11. def removeTransparency3(in_path, out_path):
    12.     image = cv2.imread(in_path, cv2.IMREAD_COLOR)
    13.     image1 = image.copy()
    14.     image2 = cv2.blur(image, (3, 3)) # 使用均值后的图像决定像素是否清零

    15.     HSV = cv2.cvtColor(image2,cv2.COLOR_BGR2HSV)
    16.     H,S,V = cv2.split(HSV)

    17.     V_Threshold_Lower = (V[0:5,0:5].max())*1.05 # 前五个像素点选最大值作为阈值
    18.     V_Threshold_Upper = 255 - V_Threshold_Lower
    19.    
    20.     #print(V_Threshold_Lower, V_Threshold_Upper)
    21.     #print(V[0:5,0:5])
    22.    
    23.     for i in range(V.shape[0]):
    24.         for j in range(V.shape[1]):
    25.             if V[i,j] < V_Threshold_Lower:
    26.                 image1[i,j]=[0,0,0]
    27.             elif V[i,j] < V_Threshold_Upper:
    28.                 r = random.random() # 0-1
    29.                 if r > (V[i,j] - V_Threshold_Lower)/(V_Threshold_Upper - V_Threshold_Lower):
    30.                     image1[i,j]=[0,0,0]

    31.     # 对比原始图片和随机去除透明后的图片
    32.     #plt.figure(figsize=(60,20))
    33.     #plt.subplot(121); plt.imshow(image)
    34.     #plt.subplot(122); plt.imshow(image1)
    35.     #plt.show()

    36.     cv2.imwrite(out_path, image1)
    37.    

    38. def generateBMPforDEF(framesFolder):
    39.     #输入目标文件夹的路径
    40.     filedir0 = framesFolder
    41.     #设置输出文件夹在输入文件夹内
    42.     filedir1 = filedir0 + '/generated pics'
    43.     #创建新文件夹
    44.     if not os.path.exists(filedir1):
    45.         os.makedirs(filedir1)
    46.     #获取目标文件夹中的文件名称列表  
    47.     filenames = os.listdir(filedir0)
    48.     #遍历文件名
    49.     for filename in filenames:
    50.         extension = filename.split('.')[-1]
    51.         if extension == 'bmp'or extension == 'png':
    52.             filepath0 = filedir0 + '/' + filename
    53.             filepath1 = filedir1 + '/' + filename[:-3] + 'bmp'
    54.             #print(filepath0)
    55.             print(filepath1)
    56.             removeTransparency3(filepath0, filepath1)

    57. def extractGIFframes2(GIFfolder):

    58.     '''
    59.     约定文件夹中只有一个xxx.gif
    60.     xxx的帧文件保存为GIFfolder/xxx-index.bmp
    61.     路径中用一律使用'/'
    62.     '''

    63.     #输入目标文件夹的路径
    64.     filedir0 = GIFfolder
    65.     #设置输出文件夹在输入文件夹内
    66.     filedir1 = filedir0 # 直接保存到当前目录

    67.     #获取目标文件夹中的文件名称列表  
    68.     filenames = os.listdir(filedir0)
    69.     #遍历文件名,应该保证只有一个gif文件
    70.     for filename in filenames:

    71.         if filename.split('.')[-1] == 'gif':
    72.             filepath0 = filedir0 + '/' + filename

    73.             x=cv2.VideoCapture(filepath0)
    74.             i=1
    75.             while True:
    76.                 filepath1 = '%s/%s-%02d.png' % (filedir1, filename.split('.')[0], i)
    77.                 ret, frame = x.read()
    78.                 if ret == True:
    79.                     cv2.imwrite(filepath1, frame)
    80.                     i+=1
    81.                 else:
    82.                     return

    复制代码



    点评

    这一段有点跳跃,需要python基础?有简化的方法或入门教程吗?  发表于 2020-6-16 05:35
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    开心
    2022-4-24 17:34
  • 签到天数: 108 天

    连续签到: 1 天

    [LV.6]地狱战马

    72

    回帖

    8481

    金币

    1

    精华

    5级 Honorable Hero

    Rank: 5Rank: 5

    积分
    3853

    社区QQ达人

    发表于 2020-6-4 16:08:28 | 显示全部楼层
    很详细的教程,学习学习
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-7-7 11:26
  • 签到天数: 10 天

    连续签到: 2 天

    [LV.3]火元素使者

    23

    回帖

    4596

    金币

    0

    精华

    2级 Adventuring Hero

    Rank: 2

    积分
    298

    社区QQ达人

    发表于 2020-6-15 14:52:56 | 显示全部楼层
    最近就在学这个,才看到有教程……哎!不过还来得及~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-10-6 18:13
  • 签到天数: 247 天

    连续签到: 1 天

    [LV.8]神圣凤凰

    290

    回帖

    1万

    金币

    0

    精华

    5级 Honorable Hero

    Rank: 5Rank: 5

    积分
    3101
    发表于 2020-6-15 15:59:19 | 显示全部楼层
    感谢楼主分享,虽然我一点也看不懂
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-4-28 19:39
  • 签到天数: 54 天

    连续签到: 1 天

    [LV.5]女巫

    200

    回帖

    9878

    金币

    0

    精华

    4级 Famous Hero

    Rank: 4

    积分
    1720
    发表于 2020-9-5 15:39:29 | 显示全部楼层
    好教程,稍微有点编程基础就很好理解了,另外请教一下,erm里面有没有类似random的方法或者函数,还有类似(1-1)/(2+2)的运算就必须赋值两次才能够达成吗?

    点评

    ERM帮助有相关的内容. VR:R VR:T 语法用于随机数 运算只能是从左到右,没有优先,没有括号  详情 回复 发表于 2020-9-5 16:46
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-6-6 16:12
  • 签到天数: 52 天

    连续签到: 1 天

    [LV.5]女巫

    4949

    回帖

    3万

    金币

    35

    精华

    超级版主

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    34677

    论坛守望者论坛元老杰出贡献

    发表于 2020-9-5 16:46:07 | 显示全部楼层
    tcwang11 发表于 2020-9-5 15:39
    好教程,稍微有点编程基础就很好理解了,另外请教一下,erm里面有没有类似random的方法或者函数,还有类似 ...

    ERM帮助有相关的内容.
    VR:R VR:T 语法用于随机数
    运算只能是从左到右,没有优先,没有括号

    点评

    感谢007大佬解答  详情 回复 发表于 2020-9-6 10:08
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-4-28 19:39
  • 签到天数: 54 天

    连续签到: 1 天

    [LV.5]女巫

    200

    回帖

    9878

    金币

    0

    精华

    4级 Famous Hero

    Rank: 4

    积分
    1720
    发表于 2020-9-6 10:08:06 | 显示全部楼层
    贤知有您 发表于 2020-9-5 16:46
    ERM帮助有相关的内容.
    VR:R VR:T 语法用于随机数
    运算只能是从左到右,没有优先,没有括号

    感谢007大佬解答
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2022-3-27 10:55
  • 签到天数: 57 天

    连续签到: 1 天

    [LV.5]女巫

    288

    回帖

    392

    金币

    0

    精华

    5级 Honorable Hero

    Rank: 5Rank: 5

    积分
    3216
    发表于 2020-12-25 20:07:57 | 显示全部楼层
    本帖最后由 lima133 于 2020-12-25 20:11 编辑

    楼主非常棒,还设计批量处理程序,如果能做个一键处理完毕的傻瓜就更好了。
    网上的资源包寻找何种图片格式最方便做?三国群英传里面的兵种是否可以改成def?


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-10-2 17:45
  • 签到天数: 29 天

    连续签到: 2 天

    [LV.4]狂狼人

    43

    回帖

    437

    金币

    0

    精华

    3级 Known Hero

    Rank: 3Rank: 3

    积分
    781
    发表于 2021-4-12 03:35:24 | 显示全部楼层
    对于我这种0基础的小白,只能发点感叹了!!!然后什么也做不了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-9-2 14:27
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]野猪

    135

    回帖

    1万

    金币

    4

    精华

    论坛嘉宾

    Rank: 9Rank: 9Rank: 9

    积分
    2428
    发表于 2021-4-12 11:22:14 | 显示全部楼层
    写的很详细,厉害
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-10-19 15:44
  • 签到天数: 114 天

    连续签到: 1 天

    [LV.6]地狱战马

    89

    回帖

    890

    金币

    0

    精华

    5级 Honorable Hero

    Rank: 5Rank: 5

    积分
    3190
    发表于 2021-10-22 10:12:17 | 显示全部楼层
    新来的学习下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2022-3-24 21:02
  • 签到天数: 21 天

    连续签到: 2 天

    [LV.4]狂狼人

    23

    回帖

    340

    金币

    0

    精华

    3级 Known Hero

    Rank: 3Rank: 3

    积分
    505
    发表于 2022-3-15 17:15:39 | 显示全部楼层
    来学习一下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2022-3-24 21:02
  • 签到天数: 21 天

    连续签到: 2 天

    [LV.4]狂狼人

    23

    回帖

    340

    金币

    0

    精华

    3级 Known Hero

    Rank: 3Rank: 3

    积分
    505
    发表于 2022-3-16 16:14:50 | 显示全部楼层
    今天想看看如何自己制作一个新的生物呢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2022-3-24 21:02
  • 签到天数: 21 天

    连续签到: 2 天

    [LV.4]狂狼人

    23

    回帖

    340

    金币

    0

    精华

    3级 Known Hero

    Rank: 3Rank: 3

    积分
    505
    发表于 2022-3-18 00:42:29 | 显示全部楼层
    如果我设置的条件是“当访问营火的英雄为编号2的英雄时执行”,那么请问具体应该怎么编辑呢?我没有找到可以获取当前英雄编号并保存到变量中的语句呀。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2022-3-24 21:02
  • 签到天数: 21 天

    连续签到: 2 天

    [LV.4]狂狼人

    23

    回帖

    340

    金币

    0

    精华

    3级 Known Hero

    Rank: 3Rank: 3

    积分
    505
    发表于 2022-3-19 20:46:00 | 显示全部楼层
    我找到了这个代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2022-3-24 21:02
  • 签到天数: 21 天

    连续签到: 2 天

    [LV.4]狂狼人

    23

    回帖

    340

    金币

    0

    精华

    3级 Known Hero

    Rank: 3Rank: 3

    积分
    505
    发表于 2022-3-23 22:43:31 | 显示全部楼层
    巴拉巴拉,巴拉巴拉
    回复 支持 反对

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 英雄注册|Register

    本版积分规则

    捐赠
    关注我们,英3Mod一网打尽!

    WoG中文站 ( 辽B2-20210485-10 )|辽公网安备 21128202000228 号

    GMT+8, 2024-11-16 00:38 , Processed in 1.666704 second(s), 18 queries , Gzip On, File On.

    Powered by Discuz! X3.4

    Copyright © 2004-2022, Beijing Second Sight Technology Co., LTD.

    快速回复 返回顶部 返回列表