Modcraft - The community dedicated to quality WoW modding!
Content creation => Modelling and Animation => Topic started by: ladiszlai on May 12, 2015, 08:45:40 pm
-
Hey guys,
I've got a custom model and I don't know how to add sound effects to an animation. (I need to add a sound to the Run animation), the sound is already is in the soundentries.dbc.
Somebody know how to do this?
-
This is where http://pxr.dk/wowdev/wiki/index.php?tit ... tLK#Events (http://pxr.dk/wowdev/wiki/index.php?title=M2/WotLK#Events" onclick="window.open(this.href);return false;) comes up.
-
This is where http://pxr.dk/wowdev/wiki/index.php?tit ... tLK#Events (http://pxr.dk/wowdev/wiki/index.php?title=M2/WotLK#Events" onclick="window.open(this.href);return false;) comes up.
Thank you but i need more info. (whick dbc-s i need or do something in the 010 editor..)
-
Look at an existing M2 in 010 editor combined with the link from Ascathos and actually learn it rather than have someone do you a disservice and just tell you to do steps a, b, and c.
-
Look at an existing M2 in 010 editor combined with the link from Ascathos and actually learn it rather than have someone do you a disservice and just tell you to do steps a, b, and c.
yes, i see a row in the 010 editor: strstruct sEvents _Events[11] , so i need to edit this? And please can you help me whick dbc's i need to edit?
-
And please can you help me whick dbc's i need to edit?
If the sound is already in the dbc then you don't edit any dbcs...
-
And please can you help me whick dbc's i need to edit?
If the sound is already in the dbc then you don't edit any dbcs...
ok, so only the soundentries.dbc, now i need help about how to add the sound's direction in the 010 editor( the run animation event id is $Rs0).
Please can you say me how can i do this?
Thank you
-
And please can you help me whick dbc's i need to edit?
If the sound is already in the dbc then you don't edit any dbcs...
ok, so only the soundentries.dbc, now i need help about how to add the sound's direction in the 010 editor( the run animation event id is $Rs0).
Please can you say me how can i do this?
Thank you
You have the template, what more do you need ? oO
-
And please can you help me whick dbc's i need to edit?
If the sound is already in the dbc then you don't edit any dbcs...
ok, so only the soundentries.dbc, now i need help about how to add the sound's direction in the 010 editor( the run animation event id is $Rs0).
Please can you say me how can i do this?
Thank you
You have the template, what more do you need ? oO
"i need help about how to add the sound's direction in the 010 editor." You can read? :D
-
I'm sorry for the misinterpretation. He was being sarcastic and saying that you have all the information available that's needed to complete this and that you should try to figure it out yourself rather than have someone give you the answer.
-
I'm sorry for the misinterpretation. He was being sarcastic and saying that you have all the information available that's needed to complete this and that you should try to figure it out yourself rather than have someone give you the answer.
Ok sorry , but i really i don't know how to do this in the 010 editor .
So nobody know how to do?
-
Many of us know how to do it. Honestly, you're trying to run before you walk if this stuff is above your head.
you very helpfull....
-
You need to add a $SND event. Do you mean direction a in relate to sound or as in related to how to add them?
-
You need to add a $SND event. Do you mean direction a in relate to sound or as in related to how to add them?
I know but how?
-
Depends on how you edit the file.
Technically, move the entire events block to the end of the file, so you can extend it. Be sure to adjust the offset to the events block in the header. Then, add enough blank space behind it to hold one more record and increase the count in the header. At that point the template or whatever you are using will help you with filling out the event record. For the animation block / timestamp block, add free space again at the end of the file.
-
Depends on how you edit the file.
Technically, move the entire events block to the end of the file, so you can extend it. Be sure to adjust the offset to the events block in the header. Then, add enough blank space behind it to hold one more record and increase the count in the header. At that point the template or whatever you are using will help you with filling out the event record. For the animation block / timestamp block, add free space again at the end of the file.
Thank you , and please can you say me how can i add the sound ID to the animation?
-
for $SND events, the sound id is stored in the event record's data field
-
for $SND events, the sound id is stored in the event record's data field
Here?
(http://kepfeltoltes.hu/thumb/150524/Dwm_2015-05-24_15-08-50-89_www.kepfeltoltes.hu_.jpg) (http://kepfeltoltes.hu/view/150524/Dwm_2015-05-24_15-08-50-89_www.kepfeltoltes.hu_.jpg)
And and where can i choose the animation?
-
There what?
http://pxr.dk/wowdev/wiki/index.php?tit ... tion_block (http://pxr.dk/wowdev/wiki/index.php?title=M2/WotLK#Standard_animation_block" onclick="window.open(this.href);return false;)
-
There what?
http://pxr.dk/wowdev/wiki/index.php?tit ... tion_block (http://pxr.dk/wowdev/wiki/index.php?title=M2/WotLK#Standard_animation_block" onclick="window.open(this.href);return false;)
The black circle
I can't find there.
-
what circle?!
-
what circle?!
Which is in the picture:D Or you can see the picture?
-
Yes.
-
Ok, i've got a new question:
In the 010 editor how can i add a row ? Because when i in the Events line,here i need to create a new row . (For the SND)
-
Depends on how you edit the file.
Technically, move the entire events block to the end of the file, so you can extend it. Be sure to adjust the offset to the events block in the header. Then, add enough blank space behind it to hold one more record and increase the count in the header. At that point the template or whatever you are using will help you with filling out the event record. For the animation block / timestamp block, add free space again at the end of the file.
-
Depends on how you edit the file.
Technically, move the entire events block to the end of the file, so you can extend it. Be sure to adjust the offset to the events block in the header. Then, add enough blank space behind it to hold one more record and increase the count in the header. At that point the template or whatever you are using will help you with filling out the event record. For the animation block / timestamp block, add free space again at the end of the file.
Can you please send a picture about this?
-
I don't have any tools here, so no.
-
Someone clearly could write this?
-
Anybody can send me a m2 model with a SND event?
-
http://pxr.dk/wowdev/wiki/index.php?tit ... animations (http://pxr.dk/wowdev/wiki/index.php?title=Talk:M2/WotLK#On_animations" onclick="window.open(this.href);return false;)
-
http://pxr.dk/wowdev/wiki/index.php?title=Talk:M2/WotLK#On_animations
?
-
You asked on how to choose animation and timestamps.
-
Thanks i will try this.
-
It is not, because here cannot be found what value i need to add to the timestamps and where can i add...
In the next moment please don't send a link.
-
Somebody can help to me Which row that i can add the Animation ? (For the $SND event)
-
Or it is possible to add a sound to an animation without this SND event?
Because all of the creature models not have snd event and the sounds is working for the animations...
-
There are events that play sounds that are given by various DBCs instead, like footsteps. To quote a few, There is $AH[0-3], $B[RL][0-3], $BRT, $CSD, $CSS, $DSL, $DSO, $DTH, $ESD, $FD[1-9], $FDX, $F[LR][0-3], $FSD, $GC[0-3], $GO[0-5], $HIT, $R[LR][0-3], $SCD, $SH[LR], $SMD, $SMG, $SND, $TRD, $WGG, $W[RL][0-3], $WNG, and probably some that I forgot, that will all play a sound.
-
There are events that play sounds that are given by various DBCs instead, like footsteps. To quote a few, There is $AH[0-3], $B[RL][0-3], $BRT, $CSD, $CSS, $DSL, $DSO, $DTH, $ESD, $FD[1-9], $FDX, $F[LR][0-3], $FSD, $GC[0-3], $GO[0-5], $HIT, $R[LR][0-3], $SCD, $SH[LR], $SMD, $SMG, $SND, $TRD, $WGG, $W[RL][0-3], $WNG, and probably some that I forgot, that will all play a sound.
I know this , but i don't know how can i add these to the animation...
i added a timestamp but it is not working for me.(the sound is not play for me when the animation is in action)
-
Where did you add the value ?
-
Where did you add the value ?
To the animblock. But i think it is bad, Ascathos Can you please say me where i can add ?
-
Is not something like that supported by pymodeleditor?
-
Is not something like that supported by pymodeleditor?
What do you mean ?
-
Anybody can make a tutorial How to add $SND event to an M2 model?
-
Anybody can make a tutorial How to add $SND event to an M2 model?
Yes,it will very helpful for me because it is very hard for me too how can i add the Animation to an m2 event. Very thanks if anybody can
-
ladiszlai, there is a tool called pymodeleditor which is able to edit lots of various m2 related stuff.
-
ladiszlai, there is a tool called pymodeleditor which is able to edit lots of various m2 related stuff.
In the pymodeleditor i can add sounds?
-
Ok now i installed the pymodeleditor , here where can i add the sound ? :
(http://kepfeltoltes.hu/thumb/150604/Dwm_2015-06-04_18-28-45-69_www.kepfeltoltes.hu_.jpg) (http://kepfeltoltes.hu/view/150604/Dwm_2015-06-04_18-28-45-69_www.kepfeltoltes.hu_.jpg)
Because i not found any events section.
-
A
-
Not solved yet any ideas how can i add a sound to a model 's anim?
-
The reason nobody is giving a new answer is that the answer already exists in the thread, and that there is no easier way than that because no tools exist for it, at all. The only way you can solve this is by trying to understand how stuff works. There is an easy way to do so: take something existing and look how it is there. Then gradually change things (like, different event type and data, then timestamp, then animation, until you understand it and can create an event from scratch in your model.
The only other way for someone to help you with this is either writing a tool for it, which is huge work for something that apparently only one person ever tried to do in 10 years, or doing it for you, which I doubt people will do.
-
The reason nobody is giving a new answer is that the answer already exists in the thread, and that there is no easier way than that because no tools exist for it, at all. The only way you can solve this is by trying to understand how stuff works. There is an easy way to do so: take something existing and look how it is there. Then gradually change things (like, different event type and data, then timestamp, then animation, until you understand it and can create an event from scratch in your model.
The only other way for someone to help you with this is either writing a tool for it, which is huge work for something that apparently only one person ever tried to do in 10 years, or doing it for you, which I doubt people will do.
Or i need a tutorial.
-
Or i need a tutorial.
You sounds condescending.
Schlumpf will loose his patience and wield the Banhammer if you continue. Never act like if people were at your service. Never.
If you search a bit and try to understand, you'll never need a tutorial. Let's take a look at the M2 page on the Wiki.
Maybe you don't understand how to understand these data. That's fine, we all have to learn some day.
There are basic steps :
First, do you know the difference between a binary and a text file ? If you open a text file with an editor, you'll see it's rather readable. Like the code of a program. If you open a binary file, you'll only see garbage, Chinese symbols everywhere.
The models in WoW, as m2 files, are binary.
But don't panic, cause there is a way to understand them. The WoW client read these models, so we should be able to, it's just a program after all, it can't be smarter than us ;)
We will view them not with a simple text editor, but with an Hex editor (numbers and letters will show up instead of the garbage). You have to know what hexadecimal is, just look on Wikipedia.
So the wiki tells us at which offset in the model a number is and what it represents. Be sure to understand what an offset is. The header is at the beginning of the file, so the base value is 0. If an address says 0x60, then you have to look at 0+0x60, which is 0x60. Handy.
Note that the"0x" part just means this number is hexadecimal.
In the header, you'll find number of elements and offsets to the first elements.
And that's all the client (and us) needs to read a model and understand its data ;)
You go to the offset, and to the corresponding section in the wiki, and the offsets specified in this section of the wiki will have where you are as a basis value.
It is basic, but I don't think it is common sense for people not versed in computer science and that's why I'm explaining this to you.
If you were to already know what I just wrote and don't want to explore data yourself, then you would be actually lazy and I would ask you to leave this board and come back with a stronger will.
But I'm still confident in the Internet community (maybe I'm too young x) ) and I think sometimes people don't ask for a tutorial because they're lazy but because of their lack of general CS knowledge. And as they don't find this general knowledge here, they just assume it's too hard for them and ask.
-
Or i need a tutorial.
You sounds condescending.
Schlumpf will loose his patience and wield the Banhammer if you continue. Don't act like people are at your service. Never.
If you search a bit and try to understand, you'll never need a tutorial. Let's take a look at the M2 page on the Wiki.
Maybe you don't understand how to understand these data. That's fine, we all have to learn some day.
There are basic steps :
First, do you know the difference between a binary and a text file ? If you open a text file with an editor, you'll see it's rather readable. Like the code of a program. If you open a binary file, you'll only see garbage, Chinese symbols everywhere.
The models in WoW, as m2 files, are binary.
But don't panic, cause there is a way to understand them. The WoW client read these models, so we should be able to, it's just a program after all, it can't be smarter than us ;)
We will view them not with a simple text editor, but with an Hex editor (numbers and letters will show up instead of the garbage). You have to know what hexadecimal is, just look on Wikipedia.
So the wiki tells us at which offset in the model a number is and what it represents. Be sure to understand what an offset is. The header is at the beginning of the file, so the base value is 0. If an address says 0x60, then you have to look at 0+0x60, which is 0x60. Handy.
Note that the"0x" part just means this number is hexadecimal.
In the header, you'll find number of elements and offsets to the first elements.
And that's all the client (and us) needs to read a model and understand its data ;)
You go to the offset, and to the corresponding section in the wiki, and the offsets specified in this section of the wiki will have where you are as a basis value.
It is basic, but I don't think it is common sense for people not versed in computer science and that's why I'm explaining this to you.
If you were to already know what I just wrote and don't want to explore data yourself, then you would be actually lazy and I would ask you to leave this board and come back with a stronger will.
But I'm still confident in the Internet community (maybe I'm too young x) ) and I think sometimes people don't ask for a tutorial because they're lazy but because of their lack of general CS knowledge. And as they don't find this general knowledge here, they just assume it's too hard for them and ask.
Sorry,but This post was unnecessary...
I know what is the Hex edit ....
My problem this :
So i would like to make an SND event for my model, so i added the $SND to the "struct sEvents _Events" line
and i put the SoundID (which is in the SoundEntries.dbc) to the "uint32 Data". Ok that's fine.
Now come the hard part , how can i add the AnimID, Schlumpf send me a link for this : http://pxr.dk/wowdev/wiki/index.php?tit ... animations (http://pxr.dk/wowdev/wiki/index.php?title=Talk:M2/WotLK#On_animations" onclick="window.open(this.href);return false;) , I spend a lot of time for read this ,
Here i founded this : "Some timestamps/values.elements entries may have number/elements = 0, if for that animation id no animation is given." Then i think i need to add The AnimID to the Timestamp entry (which is in the "struct SubAnimBlock_T substruct" line), so i added the 5 number ( this is the "Run" AnimationID). And i tryed this ingame but the sound is not played for me.
If anybody can give me more instructions i will thanks this.
-
Sorry,but This post was unnecessary...
I know what is the Hex edit ....
My problem this :
So i would like to make an SND event for my model, so i added the $SND to the "struct sEvents _Events" line
and i put the SoundID (which is in the SoundEntries.dbc) to the "uint32 Data". Ok that's fine.
Now come the hard part , how can i add the AnimID, Schlumpf send me a link for this : http://pxr.dk/wowdev/wiki/index.php?tit ... animations (http://pxr.dk/wowdev/wiki/index.php?title=Talk:M2/WotLK#On_animations" onclick="window.open(this.href);return false;) , I spend a lot of time for read this ,
Here i founded this : "Some timestamps/values.elements entries may have number/elements = 0, if for that animation id no animation is given." Then i think i need to add The AnimID to the Timestamp entry (which is in the "struct SubAnimBlock_T substruct" line), so i added the 5 number ( this is the "Run" AnimationID). And i tryed this ingame but the sound is not played for me.
If anybody can give me more instructions i will thanks this.
He sent you on this page because on this page there is an explanation on how it works.
So, you made an event. You give it the &SND identifier, and put the SoundID. Fine. Now what the client wants is "when the hell am I going to play that ?"
That's when the timestamps arrives. They are points in time. For each point in time reference in your event, what you said to do in the event will be done.
The animations in Wotlk work this way : each animation has its little timeline, from 0 to X, depending of the length of the animation.
---Supposition---
The n+ofs might not refer directly to the timestamps. Like for animations, they could refer to other array refs (n+ofs), one per animation. So if you want your event to happen, you make as much timestamp array_refs as animations, and in each of these animations you put a 0 to their n. Except the run one, where you put like n=1 and ofs=somewhere where you put a timestamp (uint32 value) like 0.
To know which one is the run, you can check in the animations, they have an ID. So look for the animations with the Run ID, note which one it is (0,1,2...) and you'll change this one in the event.
-
Ok thank you for the information , If i Send you my m2 could you please add the Animation to the $SND ? (To the Run animation AnimID=5)
I uploaded for you : http://www.mediafire.com/download/et6jz ... mymodel.m2 (http://www.mediafire.com/download/et6jzr3tl8d0k6d/mymodel.m2" onclick="window.open(this.href);return false;)
The Sound id is already in.
Very,very thanks if you can.
I think the only way is this.
-
Ok thank you for the information , If i Send you my m2 could you please add the Animation to the $SND ? (To the Run animation AnimID=5)
I uploaded for you : http://www.mediafire.com/download/et6jz ... mymodel.m2 (http://www.mediafire.com/download/et6jzr3tl8d0k6d/mymodel.m2" onclick="window.open(this.href);return false;)
The Sound id is already in.
Very,very thanks if you can.
I think the only way is this.
If you don't do it yourself you will never learn.
Obviously you're either lying or not reading what has been posted on this thread your question has already been answered and it's been explained how to be done.
One thing is asking people for information on a subject and another is expecting free labor.
Just take your time and actually do some R&D and you will get the results you want, expecting people to do the work for you and make tutorials for you doesn't teach you anything.
P.S.
Sorry for this little rant but you're not the first to come around expecting things to be handed to you, it's not hard to do some R&D.
-
Yes,but if anybody can this is good for example , so in the next time when i do a snd event i will copy from this model.
-
Any model with an event is fine to understand how it works or to copy from.
Also, copying needs so much adjustments that just doing it from scratch is easier.
-
Sorry,but This post was unnecessary...
I know what is the Hex edit ....
My problem this :
So i would like to make an SND event for my model, so i added the $SND to the "struct sEvents _Events" line
and i put the SoundID (which is in the SoundEntries.dbc) to the "uint32 Data". Ok that's fine.
Now come the hard part , how can i add the AnimID, Schlumpf send me a link for this : http://pxr.dk/wowdev/wiki/index.php?tit ... animations (http://pxr.dk/wowdev/wiki/index.php?title=Talk:M2/WotLK#On_animations" onclick="window.open(this.href);return false;) , I spend a lot of time for read this ,
Here i founded this : "Some timestamps/values.elements entries may have number/elements = 0, if for that animation id no animation is given." Then i think i need to add The AnimID to the Timestamp entry (which is in the "struct SubAnimBlock_T substruct" line), so i added the 5 number ( this is the "Run" AnimationID). And i tryed this ingame but the sound is not played for me.
If anybody can give me more instructions i will thanks this.
He sent you on this page because on this page there is an explanation on how it works.
So, you made an event. You give it the &SND identifier, and put the SoundID. Fine. Now what the client wants is "when the hell am I going to play that ?"
That's when the timestamps arrives. They are points in time. For each point in time reference in your event, what you said to do in the event will be done.
The animations in Wotlk work this way : each animation has its little timeline, from 0 to X, depending of the length of the animation.
---Supposition---
The n+ofs might not refer directly to the timestamps. Like for animations, they could refer to other array refs (n+ofs), one per animation. So if you want your event to happen, you make as much timestamp array_refs as animations, and in each of these animations you put a 0 to their n. Except the run one, where you put like n=1 and ofs=somewhere where you put a timestamp (uint32 value) like 0.
To know which one is the run, you can check in the animations, they have an ID. So look for the animations with the Run ID, note which one it is (0,1,2...) and you'll change this one in the event.
Ok , I put the 1 to the Run's Anim block (n) but ingame the sound is not played for me too , i don't know what is the problem now because the same I did what you said. :
(http://kepfeltoltes.hu/thumb/150609/Dwm_2015-06-09_17-38-33-18_www.kepfeltoltes.hu_.jpg) (http://kepfeltoltes.hu/view/150609/Dwm_2015-06-09_17-38-33-18_www.kepfeltoltes.hu_.jpg)
-
ofsValues is wrong
-
ofsValues is wrong
But spik96 say me : ofs=somewhere where you put a timestamp (uint32 value) like 0.
Or what value i need to add this ?
-
Which is correct. As you can even see, you point to some weird value, though (the beginning of the file), not a place where you can put a value to.
-
Which is correct. As you can even see, you point to some weird value, though (the beginning of the file), not a place where you can put a value to.
And how can i look for the correct value?
-
somewhere where you put a timestamp (uint32 value)
Or to quote myself from the first page..
… Then, add enough blank space behind it to hold one more record and increase the count in the header. At that point the template or whatever you are using will help you with filling out the event record. For the animation block / timestamp block, add free space again at the end of the file.
-
somewhere where you put a timestamp (uint32 value)
I don't know what this mean.
Now my final problem is the ofs value :D and soon this topic will be solved.
-
somewhere where you put a timestamp (uint32 value)
I don't know what this mean.
Now my final problem is the ofs value :D and soon this topic will be solved.
To know where to find data the client needs to know the address, the position in the file. That's the goddamn offset.
You can click somewhere in the file, 010 editor will tell you the address of your cursor.
Click at the beginning of your value, copy the address, put the address in the ofs, and now the client will be able to read it, jump, and read the value.
I knew you lacked general basic CS knowledge. That's why you're having a bad time and difficulties to understand.
-
somewhere where you put a timestamp (uint32 value)
I don't know what this mean.
Now my final problem is the ofs value :D and soon this topic will be solved.
To know where to find data the client needs to know the address, the position in the file. That's the goddamn offset.
You can click somewhere in the file, 010 editor will tell you the address of your cursor.
Click at the beginning of your value, copy the address, put the address in the ofs, and now the client will be able to read it, jump, and read the value.
I knew you lacked general basic CS knowledge. That's why you're having a bad time and difficulties to understand.
Thank you for this you really helpful...
Ok now i added an offset to the end of the file and i put this value to the ofs but the sound is not played yet. :
(http://kepfeltoltes.hu/thumb/150609/Dwm_2015-06-09_21-26-15-18_www.kepfeltoltes.hu_.jpg) (http://kepfeltoltes.hu/view/150609/Dwm_2015-06-09_21-26-15-18_www.kepfeltoltes.hu_.jpg)
What i do wrong?
-
No ideas :(?