返回列表 发帖
stylesetID="***" styleID="***"这个我知道
简单来说就相当于快捷方式~~~~

TOP

ID回复

首先。。正确的面板项中第一行应该是这样的。。
<Panel PartCount="12" FixedPos="true" ID="0">
FixedPos是什么意思。。我也忘了。。晕。。
面板就只能是ID="0"  不能改。。。
模拟器工作时是找ID 0.。。找到这个0它就知道这是面板了。。
你改了会错误。。

另外。。还有按Alt+F9出现的皮肤设置中的ID。。。

首先皮肤最上端定义下列语句
<Styles>
    <StyleSet stylesetID="1" name="面板">
    <Style styleID="0" name="5K" />
    <Style styleID="1" name="7K" />
</Styles>

那么你配置皮肤时就会出现面板选项.。。。点面板选项后就会出现子选顶5K和7K

那么就在你的5K面板中加入  stylesetID="1" styleID="0"

<Panel PartCount="12" FixedPos="true" ID="0" stylesetID="1" styleID="0">

7K加入stylesetID="1" styleID="1"

<Panel PartCount="12" FixedPos="true" ID="0" stylesetID="1" styleID="1">

这样就实现了按Alt+F9后切换面板的功能。。。

stylesetID="***" styleID="***" 这两种ID中的***是随意数字。。。

这里的PartCount="12" 中的12是我自己瞎写的。。。你应该知道吧。。。

[ 本帖最后由 Fzxhienng 于 2007-1-1 14:40 编辑 ]

TOP

我汗~~~~
我的回答是。。明天。。。别急。。。
我现在在网吧。。不好回答。。。
有的地方我也不是太明白。。。
明。。明。。明天。。。 。。。也许是后天。。。。给你个完整答复。。。

指令方面。。。没有这方面的资料。。。都是自己实验出来的。。

[ 本帖最后由 Fzxhienng 于 2007-1-1 14:15 编辑 ]

TOP

其实我也是小白~~~~~(大汗``````)
废话少说,再问~~~~~

先是药丸问题
默认的SKIN支持显示5个药丸,代码如下:
                        <part2 FrameCount="1">
                                <Frame0 u="1" v="52" w="28" h="28"  x="200"        y="3" orgy="min(0,BufferCount-1)*-99999" ImageName="main.png" />
                        </part2>                       
                        <part2 FrameCount="1">
                                <Frame0 u="1" v="52" w="28" h="28"  x="200"        y="34" orgy="min(0,BufferCount-2)*-99999" ImageName="main.png" />
                        </part2>                       
                        <part2 FrameCount="1">
                                <Frame0 u="1" v="52" w="28" h="28"  x="200"        y="65" orgy="min(0,BufferCount-3)*-99999" ImageName="main.png" />
                        </part2>                       
                        <part2 FrameCount="1">
                                <Frame0 u="1" v="52" w="28" h="28"  x="200"        y="96" orgy="min(0,BufferCount-4)*-99999" ImageName="main.png" />
                        </part2>                       
                        <part2 FrameCount="1">
                                <Frame0 u="1" v="52" w="28" h="28"  x="200"        y="127" orgy="min(0,BufferCount-5)*-99999" ImageName="main.png" />

现在我想再加入3个,于是在后面加入

                        <part2 FrameCount="1">
                                <Frame0 u="1" v="52" w="28" h="28"  x="200"        y="158" orgy="min(0,BufferCount-6)*-99999" ImageName="main.png" />
                        </part2>                       
                        <part2 FrameCount="1">
                                <Frame0 u="1" v="52" w="28" h="28"  x="200"        y="189" orgy="min(0,BufferCount-7)*-99999" ImageName="main.png" />
                        </part2>                       
                        <part2 FrameCount="1">
                                <Frame0 u="1" v="52" w="28" h="28"  x="200"        y="220" orgy="min(0,BufferCount-8)*-99999" ImageName="main.png" />

但并没有如我所望出现第6~8个药丸,是模拟器不支持还是SKIN其他地方还要修改?


现在是动画问题
如果动画这样写:
                        <part0 FrameCount="10000" FrameSpeed="2">
                                <Frame0 u="0" v="0" w="200" h="200" x="200" y="260" ImageName="1.png" />
                                <Frame0 u="0" v="0" w="200" h="200" x="200" y="260" ImageName="2l.png" />
                                <Frame0 u="0" v="0" w="200" h="200" x="200" y="260" ImageName="3.png" />
                                <Frame0 u="0" v="0" w="200" h="200" x="200" y="260" ImageName="4.png" />
                        </part0>
的确可以让动画“只出现一次”
但如果加入x="if(div(CurCombo,30)200,-1000)"这句后就没用了,因为在combo达到30时动画早就“结束”了~~~~
加入了KeyFraming="true"这句也毫无改变``````

如果这样写:
                        <part0 FrameCount="4" FrameSpeed="2"KeyFraming="true">
                                <Frame0 u="0" v="0" w="200" h="200" x="if(div(CurCombo,30)200,-1000)"
y="260" ImageName="1.png" />
                                <Frame0 u="0" v="0" w="200" h="200" x="if(div(CurCombo,30)200,-1000)"
y="260" ImageName="2l.png" />
                                <Frame0 u="0" v="0" w="200" h="200" x="if(div(CurCombo,30)200,-1000)"
y="260" ImageName="3.png" />
                                <Frame0 u="0" v="0" w="200" h="200" x="if(div(CurCombo,30)200,-1000)"
y="260" ImageName="4.png" />
                        </part0>

动画只出现第一帧,第二,三,四帧都是隐藏(也可能是透明)的,如此反复~~~
加了keyframeid="0"或keyframeid="1"也毫无效果~~~~

我现在想要的效果是在达到特定的条件后(比如特定的时间,血条,combo)。后面的代码才生效~~~~

最后轮到ID的问题~~~~
startid                maxcount                               desc        
0                1                        panel
1                1                judgement fail(MISS)
2                1                judgement bad
3                1                judgement good
4                1                judgement cool
5                1                judgement kool
6                1                lifebar
7                1                trackbar
8                1                checkbar
9                1                combo text
10                1                bg
50                50                keydown
100                50                note
150                50                longnote
200                50                channelactive
250                50                flare cool
300                50                flare kool
350                50                longflare1
400                10                combo number
410                10                score number
460                10                max combo number

比如面板是这样写的
0                1                        panel
现在我看那个0不爽
我改为
11                1                        panel
并把原SKIN里面对应面板的都ID改为11~~~~
请问是否可行?

说了这麽多,还有一个很重要的问题,就是指令问题~~~~(我想应该还有很多人对指令也不太懂)
像上面的div指令;TimePassed指令; keyframeid指令;CurCombo指令等等。我相信有很多人对它都是一知半解,都只知道简单的使用,根本就不知道它所代表的意思。也不知道到底有多少条指令,什么样的指令`````````
当然,也包括我在内(瀑布汗~~~~)

请问是否有这方面的资料呢?

哈哈,也祝你新年快乐~~~

TOP

完全不可能!!!
但是你可以在下面另写一段啊。。。如果你的第一段动画有60帧,那另写的一段做60个空帧就OK了。。
在o2mania上做动画实在太复杂了。。。。。
如果要是能支持动态的GIF或FLASH就好了。。。
有些东西我也忘了。。改日继续回复。。。。。

还有。。。新年快乐!

TOP

再问:发现那些动画的速度都是统一指定速度的,请问我能否为每一帧指定一个不同的速度呢?

TOP

解答。。。
一般有两种办法。。。
1.可以在指定比如在Combo 30时显示。。。。在60时隐藏。。。
x的写法不变,,,只不过加上个y="if(div(CurCombo,60),-1000,200)"...就是给反过来。。。同样可以在orgx  orgy.....w...h...这样地方加入这样的语句。。。。现在我还没有试。。有可能可以div div多个写到一块。。

2.如果想让图片只显示一次。。我还没有试过。。。不过应该没有问题
那么可以打开补间动画
<Part0 FrameCount="10000" FrameSpeed="60" KeyFraming="true">
希望你知道补间动画,,FrameCount写成了10000帧
然后在你动画的最后加上 <Frame0 keyframeid="9999" />
动画的总帧数必须比声明的帧数少1帧
那么比如你原来的动画只有60帧,这样将有9939个空帧,,,
等播放完这9999帧。。。要很长时间。。所以一般人不会发现这个小bug

至于在你原来的那些帧中用不用加上keyframeid="0" keyframeid="1"
我就不知道了。。。你可以试一下。。。
DJMAXFZX皮肤在 http://fzxhienng.ys168.com 有下载。。。
更新计划启动。。。只不过本人懒

昨晚刚刚试验的。。如果写成这样
x="if(div(TimePassed*1000,1),-100,10)
那么这张图片歌曲没有开始时在10像素位置显示,一旦歌曲开始图片就隐藏起来了。。。TimePassed的值应该是0到1之间 乘以1000是因为div好像不支持小数。。所以把它变大。。。。
猜测。。利用此方法可能可以实现。。在歌曲结束时显示成绩。DJMAX判定根据准确率评级。。。

不过这所有的东西应该只适用于1.3版。。。

至于ID。。。你可以看到皮肤里面都有以下注释

startid                maxcount                               desc       
0                1                        panel
1                1                judgement fail(MISS)
2                1                judgement bad
3                1                judgement good
4                1                judgement cool
5                1                judgement kool
6                1                lifebar
7                1                trackbar
8                1                checkbar
9                1                combo text
10                1                bg
50                50                keydown
100                50                note
150                50                longnote
200                50                channelactive
250                50                flare cool
300                50                flare kool
350                50                longflare1
400                10                combo number
410                10                score number
460                10                max combo number


startid就是那个ID。。。1代表面板。2代表MISS。。等等。。。o2mania读取皮肤时是根据这个ID来知道你写的东东是干什么用的。。。
maxcount是当前ID有几个。。比如面板。。。生命条就只有一个ID。。
而NOTE就有50个。。。ID就可以是50 , 51,52等等。。只不过最多目前用到57.。。。。。
combo number有10个。。分别对应显示的0-9的数字。。ID就为400,401,402等。。。。。

哎~~~最近想写一个皮肤制作教程。。问题是想让小白也能看懂是个太大的难题了。。刚写好前言。。目前完成度小于0.5%.....

建议。。。如果这帖东西写多了。。就把它改成皮肤制作经验帖什么的。。。嘎

[ 本帖最后由 Fzxhienng 于 2006-12-31 09:45 编辑 ]

TOP

试过x="if(div(CurCombo,100)200,-1000)"这条指令的确可以在Combo等于100时显示出图片,但问题也不少````
比如这张图片出现后就一直存在不消失~~~
如果把动画写成这样:
                        <part0 FrameCount="4" FrameSpeed="2">
                                <Frame0 u="0" v="0" w="200" h="200" x="if(div(CurCombo,30)200,-1000)"
y="260" ImageName="1.png" />
                                <Frame0 u="0" v="0" w="200" h="200" x="if(div(CurCombo,30)200,-1000)"
y="260" ImageName="2l.png" />
                                <Frame0 u="0" v="0" w="200" h="200" x="if(div(CurCombo,30)200,-1000)"
y="260" ImageName="3.png" />
                                <Frame0 u="0" v="0" w="200" h="200" x="if(div(CurCombo,30)200,-1000)"
y="260" ImageName="4.png" />
                        </part0>

的确能使动画杂Combo等于30时显示出来,但问题来了:虽然是显示动画但却不一定是从第一帧显示的,而且这个动画出现后不断重复并且不会不消失`````
原因我想大家都明白,因这"if(div(CurCombo,30)200,-1000)"这条指令并不是让这段代码在Combo等于30时生效,而是在Combo等于30前把动画本隐藏了起来~~~~~~~

本来还以为动画不断重复和Draw_SrcBlend = "true" 或 Draw_AlphaTest = "true"有关,但看过fancyzero 的教程后失望ing~~~~~(根本没提到,而且上面那两个和动画重复毫无瓜葛)

求问:如果我要以Combo等于30时为触发条件,动画出现时从第一帧开始显示并且只出现一次的话那有该如何写?

还有的是能否详细解释一下指令?没学过相关的课程,根本不知道有多少指令,也不知道如何运用。fancyzero的那个教程对于指令的说明太少了,根本就不够用~~~~~~
不知道指令 根本就什么也做不了`````````````b

TOP

请问DJMAXFZX哪里有下?能否提供下?

TOP

求问ID="0"
能说一下这个ID的数字所代表的意义吗?

TOP

某模拟器。。。。。。晕。。。。
不过MG模拟器也就那么几个。。。。。。。。
没有开发工具会累死。。。一点一点试,别的模拟器会比mania麻烦的多~

至于1.3正式版。。。。。老大以经说明了。。MANIA目前暂停开发~等吧

TOP

Mania的SKIN的代码不是线性的,也没有辅助制作器,想要作很长的有变化的动画很麻烦啦。
DJMAX的动画代码不是那样子的
而是大概这样子的感觉。
  <anim 01>
    time=0
    spr1=8,-1
    looppos=1
    duration=3300
;x,y,RotationX,RotationY,ScaleX(1),ScaleY(1),RotationAngle(2*3.14),%Alpha(0-255),%R(0-255),%G(0-255),%B(0-255)
    int=800,-100,0,0,6.5,6.5,0,255,255,255,255
    end=-13312,,,,,,,0,,,
    rctint=0,0,512,128
    rctend=0,0,512,128
  </anim 01>

  <anim 01>
    time=0
    spr1=8,-1
    looppos=1
    duration=3300
;x,y,RotationX,RotationY,ScaleX(1),ScaleY(1),RotationAngle(2*3.14),%Alpha(0-255),%R(0-255),%G(0-255),%B(0-255)
    int=4128,-100,0,128,6.5,6.5,0,255,255,255,255
    end=-9984,,,,,,,0,,,
    rctint=0,128,512,256
    rctend=0,128,512,256
  </anim 01>

  <anim 01>
    time=0
    spr1=8,-1
    looppos=1
    duration=3300
;x,y,RotationX,RotationY,ScaleX(1),ScaleY(1),RotationAngle(2*3.14),%Alpha(0-255),%R(0-255),%G(0-255),%B(0-255)
    int=7456,-100,0,256,6.5,6.5,0,255,255,255,255
    end=-6656,,,,,,,0,,,
    rctint=0,256,512,384
    rctend=0,256,512,384
  </anim 01>

某模拟器可以支持用这样的代码写动画然后和歌曲一起读取。
LZ有兴趣可以研究下

TOP

那请问正式板什么时候出呢?

TOP

恩。。有耐性的话可以做成动画的,,,偶以前想做过,,但后来放弃了。。。。
说实话做皮肤的话还是1.3版的好做点。。。1.3版支持div指令。。但1.2版加上这个指令就报错~{好像是div,不排除我记错的可能性}
比如说1.3版中写成这样。。 x="if(div(CurCombo,100)200,-1000)"
那么这张图片就会在Combo等于100时显示在200像素的位置,而平时就会隐藏在1000像素以外。。。
你可以看DJMAXFZX这个皮肤的COMBO,就是这样写成的。。。分别写出了一位数时,两位数,三位四位。。。在不同的Combo时隐藏一部分,但1.2版就不可能了,,,现在的模拟器不支持旋转。。。遗憾啊~

1.3版可以显示BPM。。1.2版不能。。。

但1.3版目前还是测试版,而且有BUG。。。所以还是做1.2版的吧。。
朋友努力吧。。呵呵

[ 本帖最后由 Fzxhienng 于 2006-12-24 09:42 编辑 ]

TOP

已测试——能用

高手就是高手啊~~~~我弄了好久都不行,没想到高手只说了一句就行了`````

对了,如果有足够的素材和耐性应该也可以做出DJMAX那种所谓的动画吧?
老实说那些从严格上来说根本不算是动画,只是一些图片在做有规律的运动,有点像FLASH,但又比FLASH差了很多~~~~~

TOP

返回列表