Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - jclampy69

Pages: 1 ... 3 4 [5] 6
61
Themes / Re: At-The-Arcade MOD CoinOPSDiamondsDynamic
« on: December 14, 2020, 01:43:42 PM »
I love the idea of the per-game cabinet shown in the video. Do you have those cabs and the edited layout for download?
I am interested in the wheel code especially - moving it in and out.
Hi Yaron,
The cabinet graphics are the ones *without the wall and shadow sidekick* listed in reply #15 at the top of page 2 of this thread and the marquees and logos are the ones posted in reply #31 above.
My layout.nut is just a scratchpad of different concepts at the moment, nothing finished yet. I was in the process of adding user defined settings but haven't touched it for two weeks since I got busy elsewhere.
If damonxxx is after a simple layout I could probably put something together.

The wheel moving in and out code was based on what I saw in the ioflat theme by iOtero from here http://forum.attractmode.org/index.php?topic=2481.0
If you look in the ioflat games layout.nut file the particular code are lines 895 through to 898.
Which was a modification based on the code in the silky theme by Oomek here http://forum.attractmode.org/index.php?topic=1517.0
layout.nut lines 112 through to 122.
So, it is using the property move function of the animate module.

62
Themes / Re: At-The-Arcade MOD CoinOPSDiamondsDynamic
« on: December 14, 2020, 05:25:31 AM »
Had another look at whether it is possible to have the cabinet render on-screen while scrolling the list and it doesn't look like it can be done. Since with the dynamic cabinets you'll always end up seeing one of the components rendering before the others.

So the easiest way around that is to have it initially render off-screen.

Here is a quick edit I did of my other layout to make it slide in from the left side of the screen instead of the doorway in the background (using the same method).
https://youtu.be/SfSagOBWw5k

As you can see, it can be quite snappy. Also keep in mind it still has the bottom of the cabinet underneath off-screen and I could optimize the 'surface' dimensions.

63
Themes / Re: At-The-Arcade MOD CoinOPSDiamondsDynamic
« on: December 14, 2020, 02:28:49 AM »
Wow, those marquees and logos are great, some I haven't even seen before.  ;)

I would use photoshop  and record automated-batch-processes, because most other programs have failed to process the transparencies of the cabinet images correctly, I tried...
I'm using Gimp. It can do it no problem, I'm just trying to make the process as simple as possible to make the batch process as fast as it can be.
Edit: Unfortunately Gimp will require a Python script for the 'batching process'. I did something with that a decade ago but can't even remember what that was for now. Anyway I created an .svg path file and hopefully Imagemagick will be able to do take care of the 'batch processing'. I'll try it tomorrow as past midnight now.
Edit2: Unfortunately Imagemagick will require a Perl script for the 'batching process'. So, unfortunately it seems a bit more is required to get your system ready for batch processing.
...for me the snapvideo is alway behind and keeps playing...looking strange when scrolling faster.. has to stop/fadeout before scrolling... don't know how to do it...
Yes, I noticed that. That is the beauty of rendering the full cab off-screen out of view and then having it appear on-screen as one. It maybe possible to get around that by drawing all the parts to a surface and then having that render as one, I'll give it a try.
...wonder if you compose a new image of the complete cabinet before or on the fly...would certainly spare processing time to do it before for all cabinets and make a new folder "complete cabinets"...would be super fast...and ..then...add... a two minutes animation hahah...just kidding...hihi
Since all cabinets could in theory be unique you can't really set a 'default' one to draw immediately, I tried that but it just looks weird.. You can create a default screen that is turned off, but then it may look like it is floating if your PC can't scroll fast enough.

Another way would be to have the cabinet render after you have finished navigation. But I don't know if that is acceptable?

Yaron's original at the arcade theme had a setting where the cabinet can slide in from the left. You can set the speed to your liking. Would that be what you are looking for?

64
Themes / Re: At-The-Arcade MOD CoinOPSDiamondsDynamic
« on: December 13, 2020, 11:27:52 PM »
Thanks,

The cabinet base is just a generic design at moment. I wasn't going to make authentic bases for each machine. Looks acceptable in a quick animation though. ;)
If your cabinets were coming in from the left or below the screen then you won't need to have the bottom of the cabinet. ;)
I don't think the background video would lag under normal conditions, I just had some background processing going on, etc..
The 'enter the room animation' tie's in with overall idea of the theme (don't want to spoil that yet). Although it is not a fixed speed/time so can easily be speed up, etc.

Thanks for the logos, surprisingly you have some that I couldn't find and therefore recreated. So, kudos for finding those ones.
Would be great to peruse your marquees. ;)

If you are in need of a more simple layout without the animation I could probably whip something up for you. Will send you a PM.

Edit:
I'm also looking at setting up an image batch processor. I'll let you know if I have success.

65
Themes / Re: At-The-Arcade MOD CoinOPSDiamondsDynamic
« on: December 13, 2020, 03:24:35 PM »
Hope you guys ideas are coming along alright?

Here is an animation concept I thought up a couple of weeks ago. But like you guys, I too ran into trouble finding missing marquees and logos. So, I had to create about 20% of them so far myself. Logos are quite fun, I treat it like a 'reverse paint by numbers'. Marquees are a lot more work to do.

Anyway, here is a sneak peek. It was just a concept. I have a vision to turn it into a proper theme, but there is a lot of coding and designing I will have to do to finish it.
https://youtu.be/B6ok2KSEAzg
Ignore the text on-screen, I was just using that 'debugging' the artwork. Everything is 'buttery smooth', it was just on an external mechanical hard drive that was being used in the background at the time. But I had to record that then or I probably wouldn't have got around to it for another couple of weeks.
Wheel list was a modified version of Oomek's fantastic 'Carrier' module.

Is anyone planning to compile an updated cabinet set with Next 2 R3 cabinets or after Diamonds 3 is released?

66
Themes / Re: At-The-Arcade MOD CoinOPSDiamondsDynamic
« on: December 09, 2020, 12:33:43 AM »
Hi,

There are two complete builds to date: CoinOPS Diamonds 1 and 2...
2 has 290 new Cabinets and a handful of variants ...
...got them from there for AM...because AM is best frontend;)
From a quick glance the cabinets are also in their main build Next 2. They released an R2 update a while ago and also there is an unofficial build recently that is based on the latest updates.

Edit:
Next 2 R3 released and there is a Diamonds 3 in near future.

67
Themes / Re: At-The-Arcade MOD CoinOPSDiamondsDynamic
« on: December 07, 2020, 05:39:03 PM »
Ok, I was just looking at an updated CoinOps release and noticed the 1941 cab looks updated. Capcom logo between the controls instead of a 'white highlight' placeholder. Not sure how far the 'updates' go through the whole set. Any idea where the source for these cabinets come from or are they exclusive to their group?

68
Themes / Re: At-The-Arcade MOD CoinOPSDiamondsDynamic
« on: December 07, 2020, 03:21:51 AM »
All 1000+ Cabinets without WALL and Shadow Sidekick....for everyone who wants ...

Hi, do you have a python script that removes the wall and shadow sidekick by chance?

69
Themes / Re: Conveyor_Helper Module for Themers: Updated - 11/28/2017
« on: November 16, 2020, 06:34:09 PM »
In regards to the background file usage on wheel list items, I am reading the area of the code where these are being applied.
It reads to me as if every list item is allocated two background files and the true / false parameter set by the user is only setting if they are *visible* or not.

Code: [Select]
function setGameItemContent()
{
/*
Create the configured gamelist item contents - text and artwork, borders, colors, etc.
Templates are defined here e.g. ch.Artwork_and_Text to determine how to do the gameitem setup

All images and settings are added to the object variables: runtime.surface.container,
runtime.surface.objects, and runtime.surface.objectTypes. These variables are passed to the conveyor slot
and used during the on_progress function.

!! Every GameItem contains two background images (1)the normal selected background and (2)the selected game background

This is a flawed setup because what is happening when you change the setting to *true*, is that the background file is visible on all items regardless of your intended preference.

The remainder of the code if anyone thinks there is a way to fix this?

Code: [Select]
*/

// ensure runtime.surface.container has the correct width and height;
setSurfaceContainer();

// configure margins for artwork and other items
local x = item.margin.left;
local y = item.margin.top;
local w = runtime.surface.container.width - item.margin.left - item.margin.right;
local h = runtime.surface.container.height - item.margin.top - item.margin.bottom;
local temp = null; // temp to configure item settings
local filename = null;


// Configure game item background and color
if (item.toggle.backgroundFile)
{
/*
add normal game item background file
and optionally colorize it

*/
filename = fe.script_dir + "item_backgroundFile.png";
filename = (fileExist(filename)) ? filename :  amPath + "modules/conveyour_helper/item_backgroundFile.png";
temp = add_gameItemsContent("background",filename,x,y,w,h);

if (item.toggle.backgroundColor)
{
temp.red = item.normal.color.red;
temp.green = item.normal.color.green;
temp.blue = item.normal.color.blue;
}

} else {
/*
just add a blank background and color it
if a background file is not being used

*/
filename = amPath + "modules/conveyour_helper/ui_backgroundColor.png";
temp = add_gameItemsContent("background",filename,x,y,w,h);
temp.red = item.normal.color.red;
temp.green = item.normal.color.green;
temp.blue = item.normal.color.blue;
temp.visible = (item.toggle.backgroundColor);

}

// Configure selected game item background and color
if (item.toggle.selectedBackgroundFile)
{
/*
add selected game item background file
and optionally colorize it

*/
filename = fe.script_dir + "item_selectedBackgroundFile.png";
filename = (fileExist(filename)) ? filename :  amPath + "modules/conveyour_helper/item_selectedBackgroundFile.png";
temp = add_gameItemsContent("selected",filename,x,y,w,h);

if (item.toggle.selectedBackgroundColor)
{
temp.red = item.currentlySelected.color.red;
temp.green = item.currentlySelected.color.green;
temp.blue = item.currentlySelected.color.blue;
}

} else {
/*
just add a blank background and color it
if a background file is not being used

*/
filename = amPath + "modules/conveyour_helper/ui_backgroundColor.png";
temp = add_gameItemsContent("selected",filename,x,y,w,h);
temp.red = item.currentlySelected.color.red;
temp.green = item.currentlySelected.color.green;
temp.blue = item.currentlySelected.color.blue;
temp.visible = (item.toggle.selectedBackgroundColor);
}

70
Themes / Re: Conveyor_Helper Module for Themers: Updated - 11/28/2017
« on: November 15, 2020, 04:23:12 AM »
Thank you for this awesome module.

I have noticed an issue / bug with it though:
The "item.toggle.BackgroundFile" setting will add a background to all wheel items, including the currently selected wheel item.
The "item.toggle.selectedBackgroundFile" will add a background to the currently selected wheel item, but also all other wheel items as well.
From how I read the descriptions, it is not suppose to work like this. In the above you should be able to set different background files, or for instance, have a background on only the currently selected wheel item.

Edit:
Same issue / bug happens with the background color options:
The "item.toggle.backgroundColor" setting will add a background to all wheel items, including the currently selected wheel item.
The "item.toggle.selectedBackgroundColor" will add a background to the currently selected wheel item, but also all other wheel items as well.
From how I read the descriptions, it is not suppose to work like this. In the above you should be able to set different background files, or for instance, have a background on only the currently selected wheel item.

I can't quite see where the problem is in the conveyor_helper.nut file though, or how one would go about fixing this?
The "selected wheel item" options are the ones that I would really like to use. I spent a few hours working on some nice background / border files that I have now found I can't use on only the currently selected wheel item.


I would also like to request that the vertical wheel gets an bend.direction = ch.Center (or Centre) setting option so that we could enlarge the selected wheel item whilst keeping the list centered instead of it bending off to the left or right.

Other errors in the documentation:
Scaling Size described as a percentage 0-100, when the setting is actually in decimal form so .50 being 50% or 2.00 being 200% (yes, you can go past 100 percent which is another error in documentation).
Alpha Scaling described as a percentage 0-100, when the setting is actually in alpha scale form so 255 being 100% visible or 130 being around 50% visible or 0 being completely transparent.

71
Scripting / Re: Calling an external nut
« on: October 17, 2020, 06:29:24 PM »
Is it possible to call text based 'magic tokens' as individual separate objects that are then grouped to a single surface. And then manipulate that surface with an animation?

72
Scripting / Calling an external nut
« on: October 16, 2020, 04:47:07 PM »
Hopefully this is a quick one to solve.. What am I missing?

local metabox = fe.add_surface(574, 100);
local metadata = metabox.do_nut("scripts/metadata.nut");
metabox.x= 1320
metabox.y= 365

My end goal is I was thinking of adding a delay or animation to all my metadata fields in one go.. But if that's not possible then I will just code it individually.

73
LOL, I think I started to go in circles there.. After some more research I have found a solution.

Here is my revised animated logo test layout.nut

Code: [Select]
////////////////////////////////////////////////////////////////////////////
//
// Attract-Mode animated logo test
//
//  using these artwork names for folder paths:
//  glogo = game logo
//  gvideo = game video snap
//
////////////////////////////////////////////////////////////////////////////
fe.layout.width = 1920;
fe.layout.height = 1080;

// _________________________________________________________________________
//           LOAD MODULES & PLUGINS
// `````````````````````````````````````````````````````````````````````````
fe.load_module("preserve-art") //load preserve-art module
fe.load_module("animate");
fe.do_nut("scripts/reload.nut"); //Reload your layout with button press, great when editing theme.

// _________________________________________________________________________
//      FIRST WE'LL DISPLAY THE GAMES LOGO WHERE THE VIDEO WILL APPEAR
// `````````````````````````````````````````````````````````````````````````
local logo1 = PreserveArt( "glogo", 758, 272, 400, 300 );
logo1.set_fit_or_fill( "fit" );
logo1.set_anchor( ::Anchor.Center );
logo1.mipmap = true;

local settings =
{
delay_timer = 0,
play_delay = 2000,
}

local video = fe.add_artwork("gvideo", 719, 242, 480, 360 )
video.preserve_aspect_ratio = true;
video.mipmap = true;
video.trigger = Transition.EndNavigation;

function video_on_transition(ttype, var, transition_time)
{
if (ttype == Transition.StartLayout || ttype == Transition.ToNewList || ttype == Transition.FromOldSelection)
{
settings.delay_timer = fe.layout.time
video.visible = false
}
return false
}

function video_on_tick(tick_time)
{
if (video.video_playing && tick_time - settings.delay_timer >= settings.play_delay) video.visible = true
}
fe.add_ticks_callback(this, "video_on_tick")
fe.add_transition_callback(this, "video_on_transition")

// _________________________________________________________________________
//        THEN WE'LL HIDE THE FIRST LOGO WHILE THE VIDEO IS PLAYING
// `````````````````````````````````````````````````````````````````````````
function hide_on_tick(tick_time)
{
if ( video.visible == true ) logo1.visible = false
else if ( video.visible == false ) logo1.visible = true
}
fe.add_ticks_callback(this, "hide_on_tick")

// _________________________________________________________________________
//   THEN ADD A SECOND GAME LOGO IN TOP RIGHT CORNER ONCE VIDEO IS PLAYING
// `````````````````````````````````````````````````````````````````````````
local logo2 = fe.add_artwork( "glogo", 1400, 300, 400, 300 );
logo2.preserve_aspect_ratio = true;
local logo2_start_scale = {
when = Transition.StartLayout,
property = "scale",
start = 0.0,
end = 1.0,
time = 1250,
delay = 2000
tween = Tween.Linear,}
animation.add( PropertyAnimation( logo2, logo2_start_scale ) );

function logo2_on_transition(ttype, var, transition_time)
{
if ( ttype == Transition.ToNewSelection )
logo2_start_scale.time = 1;
return false;
}
fe.add_transition_callback( this, "logo2_on_transition")

local logo2_next_scale = {
when = Transition.ToNewSelection,
property = "scale",
start = 0.0,
end = 1.0,
time = 1250,
delay = 2000
tween = Tween.Linear,}
animation.add( PropertyAnimation( logo2, logo2_next_scale ) );

// _________________________________________________________________________
//           WE'LL HIDE THE SECOND LOGO UNLESS THE VIDEO IS PLAYING
// `````````````````````````````````````````````````````````````````````````
function hide_on_tick(tick_time)
{
if ( video.visible == false ) logo2.visible = false
else if ( video.visible == true ) logo2.visible = true
}
fe.add_ticks_callback(this, "hide_on_tick")


Cheers.

74
I tried this modification:

Code: [Select]
local logo2a_scale_cfg = {
when = Transition.StartLayout,
property = "scale",
start = 0.0,
end = 1.0,
time = 1250,
delay = 2000
tween = Tween.Linear,}
{
when = Transition.EndNavigation,
property = "scale",
start = 0.0,
end = 1.0,
time = 1250,
delay = 2000
tween = Tween.Linear,}
animation.add( PropertyAnimation( logo2a, logo2a_scale_cfg ) );

But that doesn't work.

So, I tried this modification..

Code: [Select]
local logo2a = fe.add_artwork( "glogo2", 1400, 300, 400, 300 );
local logo2a_scale_cfg = {
when = Transition.EndNavigation,
property = "scale",
start = 0.0,
end = 1.0,
time = 1250,
delay = 2000
tween = Tween.Linear,}
animation.add( PropertyAnimation( logo2a, logo2a_scale_cfg ) );

function logo2a_on_transition(ttype, var, transition_time)
{
if ( ttype == Transition.EndNavigation )
{
settings.delay_timer = fe.layout.time
logo2a.visible = false
}
return false
}

function logo2a_on_tick(tick_time)
{
if ( logo.visible == true ) logo2a.visible = false
else if ( logo.visible == false ) logo2a.visible = true
}
fe.add_transition_callback( this, "logo2a_on_transition")
fe.add_ticks_callback( this, "logo2a_on_tick")

local logo2b = fe.add_artwork( "glogo2", 1400, 300, 400, 300 );
local logo2b_scale_cfg = {
when = Transition.StartLayout,
property = "scale",
start = 0.0,
end = 1.0,
time = 1250,
delay = 2000
tween = Tween.Linear,}
animation.add( PropertyAnimation( logo2b, logo2b_scale_cfg ) );

function logo2b_on_transition(ttype, var, transition_time)
{
if ( ttype == Transition.StartLayout )
{
settings.delay_timer = fe.layout.time
logo2b.visible = false
}
return false
}

function logo2b_on_tick(tick_time)
{
if ( logo.visible == true ) logo2b.visible = false
else if ( logo.visible == false ) logo2b.visible = true
}
fe.add_transition_callback( this, "logo2b_on_transition")
fe.add_ticks_callback( this, "logo2b_on_tick")


But, then you get duplicate logos appearing in the same place, one statc and one animated.

If I then modify the logo2b function as so...

Code: [Select]
function logo2b_on_tick(tick_time)
{
if ( logo.visible == true ) logo2b.visible = false
else return
}
{
if ( logo2a.visible == true ) logo2b.visible = false
else if ( logo2a.visible == false ) logo2b.visible = true
}
fe.add_transition_callback( this, "logo2b_on_transition")
fe.add_ticks_callback( this, "logo2b_on_tick")

Then it gets rid of a duplicate showing.. But, the second logo2 at start of layout is still not animating only showing as static.

75
Hi, after hanging around here for some time, I've decided to have a dabble at theme creation.

I've hit a brick wall with an animation of an artwork (logo2).. I can get it to function correctly at layout start or at the end of navigation.
But not functioning correctly at both times. It will only animate at one of these times, or I get a duplicate appearing in the same place. (one static and one animated)

In the below example, we have logo1 which is correctly a static image which is displayed for two seconds. Then we have a video snap which appears in the static logo1's place.
While the video snap is playing the static logo1 is hidden. And we get a new logo2a appear on the right-hand side of the screen that has a short animation.
This logo2a is what is giving me problems. It won't animate at both layout start and at end of navigation. It will only do one or the other.

Code: [Select]
////////////////////////////////////////////////////////////////////////////
//
// Attract-Mode animate logo test
//
//  using these artwork names for folder paths:
//  glogo1 = game logo
//  glogo2 = game logo (just set to same path as above)
//  gvideo = game video snap
//
////////////////////////////////////////////////////////////////////////////
fe.layout.width = 1920;
fe.layout.height = 1080;

// _________________________________________________________________________
//           LOAD MODULES & PLUGINS
// `````````````````````````````````````````````````````````````````````````
fe.load_module("preserve-art") //load preserve-art module
fe.load_module("animate");
fe.do_nut("scripts/reload.nut"); //Reload your layout with button press, great when editing theme.

// _________________________________________________________________________
//      FIRST WE'LL DISPLAY THE GAMES LOGO WHERE THE VIDEO WILL APPEAR
// `````````````````````````````````````````````````````````````````````````
local logo = PreserveArt( "glogo1", 758, 272, 400, 300 );
logo.set_fit_or_fill( "fit" );
logo.set_anchor( ::Anchor.Center );
logo.mipmap = true;

local settings =
{
delay_timer = 0,
play_delay = 2000,
}

local video = fe.add_artwork("gvideo", 719, 242, 480, 360 )
video.preserve_aspect_ratio = true;
video.mipmap = true;
video.trigger = Transition.EndNavigation;

function video_on_transition(ttype, var, transition_time)
{
if (ttype == Transition.StartLayout || ttype == Transition.ToNewList || ttype == Transition.FromOldSelection)
{
settings.delay_timer = fe.layout.time
video.visible = false
}
return false
}

function video_on_tick(tick_time)
{
if (video.video_playing && tick_time - settings.delay_timer >= settings.play_delay) video.visible = true
}
fe.add_ticks_callback(this, "video_on_tick")
fe.add_transition_callback(this, "video_on_transition")

// _________________________________________________________________________
//           THEN WE'LL HIDE THE LOGO WHILE THE VIDEO IS PLAYING
// `````````````````````````````````````````````````````````````````````````
function hide_on_tick(tick_time)
{
if ( video.visible == true ) logo.visible = false
else if ( video.visible == false ) logo.visible = true
}
fe.add_ticks_callback(this, "hide_on_tick")

// _________________________________________________________________________
//   THEN ADD A SECOND GAME LOGO IN TOP RIGHT CORNER ONCE VIDEO IS PLAYING
// `````````````````````````````````````````````````````````````````````````
local logo2a = fe.add_artwork( "glogo2", 1400, 300, 400, 300 );
local logo2a_scale_cfg = {
when = Transition.EndNavigation,
property = "scale",
start = 0.0,
end = 1.0,
time = 1250,
delay = 2000
tween = Tween.Linear,}
animation.add( PropertyAnimation( logo2a, logo2a_scale_cfg ) );

function logo2a_on_transition(ttype, var, transition_time)
{
if ( ttype == Transition.StartLayout || ttype == Transition.EndNavigation )
{
settings.delay_timer = fe.layout.time
logo2a.visible = false
}
return false
}

function logo2a_on_tick(tick_time)
{
if ( logo.visible == true ) logo2a.visible = false
else if ( logo.visible == false ) logo2a.visible = true
}
fe.add_transition_callback( this, "logo2a_on_transition")
fe.add_ticks_callback( this, "logo2a_on_tick")

The above layout.nut will have the animation of the second logo not functioning on layout start. It shows, but appears static.
When you perform an end of navigation, then a correctly animated second logo will appear.
How can I achieve the animated second logo on both layout start and at the end of a navigation?

Pages: 1 ... 3 4 [5] 6