Open Maveth opened 10 years ago
This would definitely be fun, especially if people can port good instructional videos to the game as lessons. As for EOF, people would probably have to set up the video first, demux the audio track and use that to create a chart in EOF. I've done this with the rhythm game Phase Shift, which supports videos for charts.
like multiple arrangements with different audio for each track
It's possible? I wonder if we can generate a custom song with multiple tracks on each arrangement have your audio file and we can remove the instrument that will be played like when I play lead guitar, change to track that have no lead guitar in audio (Rock Band 3 style).
If it's possible will be awesome...
@fabianosan, yes thats always been possible, just need to not use 1 audio source (and reference it in json for each arrangement). BUT it adds a lot of work to the toolkit. and for the users, i only reason i didnt suggest it for songs, is that i thought we wanted to keep it simplified for people to make customs. maybe an advanced tab for people that want to go the extra mile.
raynebc, im thinking of converting justinguitar;s youtube videos, they are awesome. along with the simplifed songs to go with it, and yet not clutter up the songs folder.. the video themselves are just bink2 videos, but there is timing for the instructions and the videos that go beyond simple things.. plus the interactive parts....
@Maveth I'll help you with this feature. Really, I believe that another TAB is the best way, but we need to refactor some code in Package Creator to reuse the code.
I'll create a branch "lesses" for we work on it. What you think about this?
yes, that will probably be best... i got a lesson completely isolated and working, there is a weird part, like i did with getting the guitar inlays to work as a dlc, the header file needs to be in the song directory.. also as you can see, there is a naming issue. this is because i think the lessons are forced to use the cvs file, which i would rather not patch....(its inside the cache file) not that we cant do it... just it would be a pain. ill list some of the things that will need worked on.
video's are bink2 files, and i dont think thats a huge issue? i think the encoder is out there.
the only major difference in xml is the event codes, not sure if eof uses some of the regular ones that control crowds or not, but im sure raynebc can add the other codes for video/practice loops.
the json and hsan have some different entries. (shouldnt be too hard)
there are different .flat files than in songs, but they are almost the same for every lessons other than the first ID#
some of the sound banks seem a little different....
the biggest thing will be a way to easily edit the lesson algorithm... alot of it is repeated but im unsure if we will need a separate program to make the flow work properly.. i would suggest maybe some kind of xml file that can be "encoded" to create the more complex coding
the lessons also reference the narrator's voice, it will be hard to make our own easily, but any sentence that is used in game can be re-used easily enough. if we edit the raw game file then we can make our own, but i would avoid that as well... since any video can also have its own audio (in the same bk2 file)
i have a little more detailed info here, but now that i got it to play a lesson (copied from the originals but with all the originals removed from the game) i want to refine it enough, so we know exactly what we need.
i also wanna stretch the possibilities, because i think there are more things it can do, that we know. it looks like there is a sublayer that the game isnt fully using... i will look into more. once i have a lesson that is 100% unique (other than the dynamics, but i mean with all its own entities like titles,descriptions, videos. audio, bnks, and sng's) then i will post it.
EOF still has the ability to place the Rocksmith 1 era events for metronome ticks and crowd happiness, I can easily add more event types, just let me know what they should be called (actual names and display names). Also, does anybody know if the RS1 events work in RS2 (ie. for metronome count-ins)? Will the events need to be able to be assigned at any timestamp or is it fine to force them to be defined on beat markers like the other events in EOF?
practice track is the same as a regular song... an example from shifting1
events count="5">
event time="10.000" code="e1"/> event time="13.934" code="E3"/> event time="16.792" code="E13"/> event time="48.220" code="D3"/> event time="51.077" code="E13"/> /events> i dunno if they are in normal songs or not, or if there are the same as rs1? do they look the same? maybe someone can test that, but thats another thing though... fyi the toolkit encodes them if they are in the xml.
the actual lessons use
event time="226.666" code="start_free9"/> event time="233.333" code="freeze_free9"/> event time="239.999" code="end_free9"/> event time="250.833" code="start_riff1_example"/> event time="263.333" code="start_riff1_riff"/> event time="276.666" code="rate_riff1_riff"/> event time="281.666" code="end_riff1_riff"/> as an example....
Maveth,
I created a branch to us work on lessons: https://github.com/rscustom/rocksmith-custom-song-toolkit/tree/lessons
In next week I'll start to add the new attributes and fields need by lessons packages.
ok, ive been doing a little bit here, i think i figured a way we can do it and use the same main window... in all cases there is still a sng file created (even video only lessons), so it needs all the stuff that a regular song needs, but in addition it needs some other things for the lesson itself.
im thinking we can make it a special arrangement type.. when its selected (or lesson type xml selected) then it will need to have a few extra options in the add arrangement tab... also when you generate the package (in the main window) it will need to create things a little differently (mainly in the lesson json/hsan/xblock/flat/behavior).....so basicly if there exists a lesson arrangement, then the packagecreator script will need to be different.... does that make sense??
ive progressed a little further. everything should be fairly easy to do other than the lua(behavior) im pretty sure can use a special case xml from eof to create the proper lesson behaviors.. we will have to review with raynebc on that... it will need the event code at a minimum (which should be ok) but the logic of what is being tested will be harder... as well as the voice overs to use... i dunno if eof will be able to handle it. but i dont think the toolkit (by itself) will be either. we could possibly use a generic entry for each case (check for bend, check for slide, check for chord) but it may/,may not fit the specifics of the lesson that a person wants to create
also,, at this point im only looking at creating a PC lesson... after its working we will need to look at whats required to create the other platforms.
EOF and/or the toolkit may be able to provide some cookie cutter LUA files for pre-built lesson types (ie. a video that changes to user playable tab at some point), but if it starts requiring some elaborate scripting, the author may have to take on some of that burden.
im thinking we can make it a special arrangement type.. when its selected (or lesson type xml selected) then it will need to have a few extra options in the add arrangement tab... also when you generate the package (in the main window) it will need to create things a little differently (mainly in the lesson json/hsan/xblock/flat/behavior).....so basicly if there exists a lesson arrangement, then the packagecreator script will need to be different.... does that make sense??
Good idea, yes make sense, I'm did some analisis in lessons here, it's not complicated, have some new fields, but we can do without damage normal DLC.
@fabianosan the lessons allow/require different audio for each arrangement (for lack of a better word), i dunno if you want to add this to the regular song creation as well...
in the lessons, there can be a preview audio+bnk that only is used for the .hsan entry (header in the lesson list) a full audio+bnk for the lesson , and a third audio+bnk for practice track.... if we allowed the main dlc package creator to allow this as well (bass can have its own audio vs guitar) then we can use this feature in lessons as well... otherwise we will have to add this for lessons anyways,,,, as far as this goes, im thinking that another .wem load option is available in the add arrangement tab, maybe with a checkbox(use different audio track), and if unchecked then it behave as normal.....
it should also be noted that a lesson only contains 1 arrangement. the bass package is not included in the lead package.... (i havent tested how that works when you switch paths.. i removed all lessons from my game menu atm, so its easier for me to test my changes)
i think all the "extra" info can be included in the add arrangement tab (when a lesson type is selected) and can remain invisible/greyed out when a regular arrangement is loaded (this would include audio if we dont add it to the regular toolkit options)
i cant do alot more work on this till the weekend.
for reference later: the practice track json (in the manifest/song folder) includes an entry "EtudeKey" but thats about it, other than that it looks the same as a regular song manifest the actual lesson contains the entry "LessonKey"
but in the manifest/lesson the lesson has ALOT more lesson related entries, but doesnt have most of the song entries there is "Etude": "GEName": "Lesson": these are combines in various ways to create the different items, including the KEY names and the PLAY triggers (we might need snakez help with banks (there is one different in the one im looking at as it has a different structure after the header) example (im using the lead-shifting lesson as my base)
"Etude": "E2",
"GEName": "LShifting1",
"Lesson": "Lsn31",
"EtudeKey": "GE_E2_LShifting1",
"EtudePlayEvent": "Play_GE_E2", (audio track is the same in multiple lessons so same bank)
"LessonPlayEvent": "Play_GE_LShifting1_Lsn31",
the hsan in a regular lesson is in the manifest/lessons, for it to be a custom lesson it will need to be in the manifest/songs
everything should be fairly straight forward, other than the LUA's as raynebc said, just a video and riff section (without testing if the person is getting it or not) and practice track is straight forward.. its when you do the freeze and test/start riff repeater in the middle, that it gets more complicated. perhaps even the voice overs.. "now you try it"... they are all accessible to us though.... i dunno why but im still having trouble with the lesson name AFTER you select it from the main screen.. but the rest seems ok. atm i get errors triggering the PLAYEVENTs because the soundbanks dont have the right info if i just rename it. ive done a little work on the changes to the add arrangement tab, but nothing worth pushing yet (and only on the gui)
im gonna try and push a layout change to the lesson tree, since it shouldnt effect anything. i hope i got github setup right, im pretty sure it is. if not then ill revert it. this is my no means what it must be, just an initial suggestion. somethings can still be added. etc, none of the boxs/buttons/checkboxes do anything yet. ah good, that worked. just something to start with. i need the manifests/soundbanks created properly to continue breaking apart the whats needed in xml from eof, and LUA files,
Make a rebase first.
event time="226.666" code="start_free9"/> event time="233.333" code="freeze_free9"/> event time="239.999" code="end_free9"/> event time="250.833" code="start_riff1_example"/> event time="263.333" code="start_riff1_riff"/> event time="276.666" code="rate_riff1_riff"/> event time="281.666" code="end_riff1_riff"/>
this correspond to behaviors triggers.
mStartExampleTag = "start_riff1_example";
mStartRiffTag = "start_riff1_riff";
mRateTag = "rate_riff1_riff";
mEndTag = "end_riff1_riff";
(I did follow this because it could be used for song too.) (Video as Venue like Bandfuse.)
yes, i did mention that it might be possible, but there is a transition phase that is triggered when a video is triggered. as you can tell, there is never a video + notes at the same time in the lessons. its always does a transition. so it will need to be broken apart more.... we will see what happens after we have more stuff figured out for lessons. and if we can do it, or even if we just add an intro video to the song, we can use the same info i think... there is some question on that though, you could test it by taking a lesson and convert it be a song.. just unsure if the song menu will call the lesson info. or if reads solely from the sng, and the event calls.
@fabianosan , i just used the tree you set-up. i dont think its major issue to to up to date... as long as we arent touching the same code, we shouldnt have too many conflicts.
I am on it too no worry I quite got the logic for a lesson how to duplicate one in a package yet not working bt i i want to understand so i can help :) then i will try to include it before a song like an etude. then in same time i think that can be done via behaviors ^^
i got it working in a package, but its still using alot of default settings. once we get it to write the manifest and soundbank with the right values/keys then it will smooth sailing till we're ready to edit the LUA's
@Maveth I see your changes in ArrangementForm on lessons branch. What's is all this "lesson info" fields?
Any lesson have basically all info in MainForm (DLCPackageCreator).
Yes, it does, or at least can. some of it is blank but the values exist. If the lesson includes a practice track then it has everything that a song does (but artist/title is sometimes blank or ubisoft), im not sure the best way to do it. the toolkit is structured in a way that some options are removed to make it easier for user to make packages. and it made sense when making just simple songs. but with more advanced options im just not sure anymore. work has pushed it way into my spare time lately, so i havent had a chance to do anything else with it. i think that a completely new tab might be a better option, that includes the option to have more control of the package contents(even for single songs/multipacks). but it would also have to be bigger visually.
I had put the lesson info in with the arrangement, because i thought that IF you add a lesson xml, then it could write it as a lesson, and becuase you still create a complete pacakge with a regular arrangement, unless its video only lesson..., i dont think that will work as well as i first envisioned. i should have done more here locally before i started the thread... but i thought i was going to have a little more free time to work on it.
Still no time, i think a complete rework is in order anyways. so unless someone has worked on this, i suggest a revert of the last commit, then start over. i will put it on hold for now, because i dont have time for about a month or so..
wow, been gone almost 3 years. gonna take me a bit to catch up on things. then i would like to get back into this.
Wow, blast from the past! Welcome back Maveth!! I always hated seeing friendly people disappear.
Im trying to get the lessons working, including video (might even be able to add video to the start of songs if someone wants to try, but i think we should probably avoid that.
i think it will require a separate tab in the toolkit. it will have/reuse alot of the things that are in the toolkit, but there are more options. or perhaps we can have a simple and an advanced tab. because songs have use more options than we are currently allowing (like multiple arrangements with different audio for each track...).
we will also need a few other things... that im unsure of how best to implement, I dont thing either EOF or the toolkit can handle it as is.
at the moment ill keep working it on my own, till i get far enough for it to be at least stable, I get get to the next screen as well, before it crashed, but that might because of a number of different things.