[UT] RMusicPlayer beta - music player for UT.
- Raven
- Skaarj Warlord
- Posts: 807
- Joined: 12 Nov 2007, 09:39
- Location: Nørresundby
- Contact:
Subject:
Post Posted: 19 Feb 2009, 18:51
No error messages since they're disabled . There's this RMusicPlayer_debug.ini which enables all messages. Anyway it was my fault once again I forgot one obvious part . Anyway I've tested it (this time with unique mp3 name ) and it works. It was simple mistake - player was searching for music in wrong directories .
Madness, as you know, is like gravity…all it takes is a little push!
http://turniej.unreal.pl/portfolio
http://turniej.unreal.pl/portfolio
- Buff Skeleton
- >:E
- Posts: 4175
- Joined: 15 Dec 2007, 00:46
Subject:
Post Posted: 09 Mar 2009, 00:41
Quick question: does RMusicPlayer trigger its event when music finishes playing? If not, is there a way to make it do so?
I have a set of three songs I want to loop, but I don't want them all as one file. Instead, what I'd like to do is have something like this:
... > Song 1 plays > Song 2 plays > Song 3 plays > Song 1 plays > ...
in a loop. The only other way I could get this to work is to use a lot of dispatchers, which is messy. If each RMusicController triggered its Event when it finished playing its song, you could easily make an infinite loop between three tracks, and then still be able to play those files individually elsewhere if you wanted to.
Is this possible? Is there a way for the controller to detect when a song has finished playing and then turn that detection into an Event trigger?
I have a set of three songs I want to loop, but I don't want them all as one file. Instead, what I'd like to do is have something like this:
... > Song 1 plays > Song 2 plays > Song 3 plays > Song 1 plays > ...
in a loop. The only other way I could get this to work is to use a lot of dispatchers, which is messy. If each RMusicController triggered its Event when it finished playing its song, you could easily make an infinite loop between three tracks, and then still be able to play those files individually elsewhere if you wanted to.
Is this possible? Is there a way for the controller to detect when a song has finished playing and then turn that detection into an Event trigger?
- Raven
- Skaarj Warlord
- Posts: 807
- Joined: 12 Nov 2007, 09:39
- Location: Nørresundby
- Contact:
Subject:
Post Posted: 09 Mar 2009, 10:48
I'll try work on it this week. But it's possible only using Tick and track time of the song. I'm going to create new player class and controller type so it'll be optional.
Madness, as you know, is like gravity…all it takes is a little push!
http://turniej.unreal.pl/portfolio
http://turniej.unreal.pl/portfolio
- Buff Skeleton
- >:E
- Posts: 4175
- Joined: 15 Dec 2007, 00:46
- Raven
- Skaarj Warlord
- Posts: 807
- Joined: 12 Nov 2007, 09:39
- Location: Nørresundby
- Contact:
Subject:
Post Posted: 09 Mar 2009, 14:35
Done . In theory it should work, but I'm going to compile and test it later (maybe tomorrow) as I've got to study today.
BTW. I'm going to try to compile it also for Rune and DeusEx just to test if it works .
BTW. I'm going to try to compile it also for Rune and DeusEx just to test if it works .
Madness, as you know, is like gravity…all it takes is a little push!
http://turniej.unreal.pl/portfolio
http://turniej.unreal.pl/portfolio
- Buff Skeleton
- >:E
- Posts: 4175
- Joined: 15 Dec 2007, 00:46
Subject:
Post Posted: 09 Mar 2009, 14:57
No rush. I understand the need for studying. I'm on spring break but have a couple tests right when I get back
- Raven
- Skaarj Warlord
- Posts: 807
- Joined: 12 Nov 2007, 09:39
- Location: Nørresundby
- Contact:
Subject:
Post Posted: 19 Mar 2009, 15:09
Just a little not to let ya know if someone is interested. I've recently converted (it was easier then I've thought) player to Rune. It works exactly the same as UT version so here ya go: http://turniej.unreal.pl/files/RMusicPlayer_Rune.zip
Madness, as you know, is like gravity…all it takes is a little push!
http://turniej.unreal.pl/portfolio
http://turniej.unreal.pl/portfolio
- Buff Skeleton
- >:E
- Posts: 4175
- Joined: 15 Dec 2007, 00:46
Subject:
Post Posted: 16 Mar 2010, 04:53
Woop, not quite a year late!
Raven, I finally remembered to test the RMusicPlayerEx version. I've run into one issue, though, and that's with the Ex actor itself; when I try to set NextController in UED, it keeps reverting to None. Looking at the code, it wants me to specify an RMusic_Controller actor instead of putting in an Event or Tag name; could that be the problem, or am I missing something?
Here's my setup:
The bottom actor is the action music that plays when you start the map. It's supposed to trigger the top actor, which is the general ambient music for the map. The bottom is an Ex and the top is a normal RMusicController. I tried putting in an Ex for the top and that didn't let me select it either. For some reason, I WAS able to put "RmusicPlayer" in the actor field, as you can see, but somehow I don't think that will actually trigger the next event, since it crashes the game :p I think that was a fluke actually as I wasn't able to do it again after restarting UED.
Any ideas?
Also, I thought of another possible implementation. Instead of a tick, could you use a timer that is called after X seconds, specified by the user? Something like Settimer(SongLength,false); and then call the event in Timer? That wouldn't require constant tick calculations and the user could manually specify how long the song is. Unless you already have timer in use, that is, in which case I should send you the code UArchitect made for me that allows you to specify multiple timers.
Raven, I finally remembered to test the RMusicPlayerEx version. I've run into one issue, though, and that's with the Ex actor itself; when I try to set NextController in UED, it keeps reverting to None. Looking at the code, it wants me to specify an RMusic_Controller actor instead of putting in an Event or Tag name; could that be the problem, or am I missing something?
Here's my setup:
The bottom actor is the action music that plays when you start the map. It's supposed to trigger the top actor, which is the general ambient music for the map. The bottom is an Ex and the top is a normal RMusicController. I tried putting in an Ex for the top and that didn't let me select it either. For some reason, I WAS able to put "RmusicPlayer" in the actor field, as you can see, but somehow I don't think that will actually trigger the next event, since it crashes the game :p I think that was a fluke actually as I wasn't able to do it again after restarting UED.
Any ideas?
Also, I thought of another possible implementation. Instead of a tick, could you use a timer that is called after X seconds, specified by the user? Something like Settimer(SongLength,false); and then call the event in Timer? That wouldn't require constant tick calculations and the user could manually specify how long the song is. Unless you already have timer in use, that is, in which case I should send you the code UArchitect made for me that allows you to specify multiple timers.
- Raven
- Skaarj Warlord
- Posts: 807
- Joined: 12 Nov 2007, 09:39
- Location: Nørresundby
- Contact:
Subject:
Post Posted: 16 Mar 2010, 08:48
Ok, will check it out once I'm back home.
Yeah - could be useful
Waffnuffly wrote:Unless you already have timer in use, that is, in which case I should send you the code UArchitect made for me that allows you to specify multiple timers.
Yeah - could be useful
Madness, as you know, is like gravity…all it takes is a little push!
http://turniej.unreal.pl/portfolio
http://turniej.unreal.pl/portfolio
- ividyon
- Administrator
- Posts: 2367
- Joined: 12 Nov 2007, 14:43
- Location: Germany
- Contact:
Subject:
Post Posted: 16 Mar 2010, 09:39
Waff, I think in that case you can link to the actor in question by entering it's Name property found in the Object category. (for instance RMusicPlayer0) I ran across a similar problem when using .:..:'s Beam emitter, and that was the solution he had in mind.
- Buff Skeleton
- >:E
- Posts: 4175
- Joined: 15 Dec 2007, 00:46
Subject:
Post Posted: 16 Mar 2010, 14:26
sana wrote:Waff, I think in that case you can link to the actor in question by entering it's Name property found in the Object category. (for instance RMusicPlayer0) I ran across a similar problem when using .:..:'s Beam emitter, and that was the solution he had in mind.
Indeed, I tried that too. Everything I typed in manually returned None, so I'm guessing it's designed to use a Name property but it's actually set up to use an Actor instead.
- Core
- Skaarj Assassin
- Posts: 106
- Joined: 15 Mar 2010, 17:16
- Location: ../System/
- Contact:
Subject: Re: [UT] RMusicPlayer beta - music player for UT.
Post Posted: 27 May 2010, 19:11
Is there a version of the RMusicPlayer for use on servers, that allows players who don't have it installed to join? Or even better, a version that sends its dll & mp3's to connecting players in UTDC style?
I had to resort to writing a fake version for use on Loathsome's coop servers to make players who don't have it installed able to join maps that use it, at the cost of the mp3 usage in the maps. I encountered this when testing EXU2-BI Demo 3 on the servers two days ago.
If there's no such a version, I think it's better to have an "official" fake version from the author, to cut on potential mismatches.
If the author feels it's not acceptable to write a fake version of this, I'm willing to take it off from the servers. Let me know what you think.
I had to resort to writing a fake version for use on Loathsome's coop servers to make players who don't have it installed able to join maps that use it, at the cost of the mp3 usage in the maps. I encountered this when testing EXU2-BI Demo 3 on the servers two days ago.
If there's no such a version, I think it's better to have an "official" fake version from the author, to cut on potential mismatches.
If the author feels it's not acceptable to write a fake version of this, I'm willing to take it off from the servers. Let me know what you think.
- Buff Skeleton
- >:E
- Posts: 4175
- Joined: 15 Dec 2007, 00:46
Subject: Re: [UT] RMusicPlayer beta - music player for UT.
Post Posted: 27 May 2010, 20:10
Why would players not have everything they need already in EXU's case? Do people really download whole mods off a coop server?
It seems like it would make more sense to just put a big "make sure you have EXU installed" warning on the server running those maps, but I dunno! If you have the mod installed, you should already have RMusicPlayer too, etc.
It seems like it would make more sense to just put a big "make sure you have EXU installed" warning on the server running those maps, but I dunno! If you have the mod installed, you should already have RMusicPlayer too, etc.
- Raven
- Skaarj Warlord
- Posts: 807
- Joined: 12 Nov 2007, 09:39
- Location: Nørresundby
- Contact:
Subject: Re: [UT] RMusicPlayer beta - music player for UT.
Post Posted: 27 May 2010, 20:39
Sending dll is too risky and opens potential for abuse. What do you mean by 'fake' version ? And in case of EXU I think player need to have mod installed anyway.
Madness, as you know, is like gravity…all it takes is a little push!
http://turniej.unreal.pl/portfolio
http://turniej.unreal.pl/portfolio
- Core
- Skaarj Assassin
- Posts: 106
- Joined: 15 Mar 2010, 17:16
- Location: ../System/
- Contact:
Subject: Re: [UT] RMusicPlayer beta - music player for UT.
Post Posted: 27 May 2010, 23:32
With fake, I just meant a dummy package that has all classes, functions & variables, but doesn't depend on the native code so the maps can run with it, the file can be redirected and the players can join, at the cost of the mp3 functionality. Such is what we currently have on the servers.
Though, I think there is a way to make it work on clients that have it, while clients who don't, can still join the server.
You could for example have two packages:
a main package that contains the musicplayer's functionality & depends on the native code, and another standalone package that doesn't depend on native code, which just contains a placable bStatic actor that mappers can put in their maps, and configure its variables.
The latter actor does a class independant DLO in client or standalone netmodes on the musicplayer's class in the main package in one of its beginplay functions, if successful (meaning the machine executed on, has the dll), spawn that class, with the spawning actor as owner. From this point the spawned real actor that's based on native code can take over & start searching for it's owning fake actor, get its variables from it, and start doing its thing. Since the fake actor is bStatic, it isn't removed on the client on initial connect, so the variables don't need to be replicated, as the client has access to the mapped default values.
That way, maps that use the Musicplayer depend only on the "fake" package that contains just the placable actor with the variables, and that doesn't depend on the native dll, so it can be compressed & redirected, while players who do have the dll, can still benefit from their installation & hear the music. This is just a raw sketch of a workaround i have in mind when reasoning about it, so it could contain flaws.
More then 90% of the players never played the maps we've put on the servers before, We're using a private redirect with fast download speed so that's not a problem.
One of the main benefits of the servers is that players who just have ut patched to v436 can play any mappack there is in coop. This is one of the core features of my ecoop mod. it supports more then 60 SP campaigns, for a total of 550+ maps. When a new mappack is out, I update the mod to simulate the Gameplay/mutator settings the author had in mind for that pack as close as possible or to an acceptable level if that's not possible. So basically all the mappacks are covered & run under the same gametype/hud/mutator/...
This is also to have the servers remain in the same server tab since this depends on the game's classname. So I'm using fake subclass of my custom gametype, depending where we want the server to appear (tvcoop, coopgame2,...).
We use a portalmap that gives access to all the available campaigns, and that acts as a hub where players choose the next campaign to play and where they end up when finishing the last map of each campaign. I'm planning to update ecoop to support exu as well, after I've done some testing with it.
Though, I think there is a way to make it work on clients that have it, while clients who don't, can still join the server.
You could for example have two packages:
a main package that contains the musicplayer's functionality & depends on the native code, and another standalone package that doesn't depend on native code, which just contains a placable bStatic actor that mappers can put in their maps, and configure its variables.
The latter actor does a class independant DLO in client or standalone netmodes on the musicplayer's class in the main package in one of its beginplay functions, if successful (meaning the machine executed on, has the dll), spawn that class, with the spawning actor as owner. From this point the spawned real actor that's based on native code can take over & start searching for it's owning fake actor, get its variables from it, and start doing its thing. Since the fake actor is bStatic, it isn't removed on the client on initial connect, so the variables don't need to be replicated, as the client has access to the mapped default values.
That way, maps that use the Musicplayer depend only on the "fake" package that contains just the placable actor with the variables, and that doesn't depend on the native dll, so it can be compressed & redirected, while players who do have the dll, can still benefit from their installation & hear the music. This is just a raw sketch of a workaround i have in mind when reasoning about it, so it could contain flaws.
Waffnuffly wrote:Why would players not have everything they need already in EXU's case? Do people really download whole mods off a coop server?
More then 90% of the players never played the maps we've put on the servers before, We're using a private redirect with fast download speed so that's not a problem.
One of the main benefits of the servers is that players who just have ut patched to v436 can play any mappack there is in coop. This is one of the core features of my ecoop mod. it supports more then 60 SP campaigns, for a total of 550+ maps. When a new mappack is out, I update the mod to simulate the Gameplay/mutator settings the author had in mind for that pack as close as possible or to an acceptable level if that's not possible. So basically all the mappacks are covered & run under the same gametype/hud/mutator/...
This is also to have the servers remain in the same server tab since this depends on the game's classname. So I'm using fake subclass of my custom gametype, depending where we want the server to appear (tvcoop, coopgame2,...).
We use a portalmap that gives access to all the available campaigns, and that acts as a hub where players choose the next campaign to play and where they end up when finishing the last map of each campaign. I'm planning to update ecoop to support exu as well, after I've done some testing with it.
Who is online
Users browsing this forum: No registered users and 3 guests