FIELD OF THE INVENTION
[0001] The present invention relates generally to systems and methods for generating enhanced
screenshots, and more particularly, but not by way of limitation, to systems and methods
to generate enhanced screenshots that include metadata indicative of objects located
within the enhanced screenshots.
SUMMARY OF THE INVENTION
[0002] The invention is defined in claims 1, 14 and 15, respectively. Particular embodiments
are set out in the dependent claims.
[0003] According to a first aspect, the present invention provides for methods for generating
enhanced screenshots that include executing instructions stored in memory to: (a)
evaluate at least a portion of a viewing frustum generated by the instructions to
determine one or more objects included therein; (b) obtain metadata associated with
at least one of the one or more objects; (c) generate at least one enhanced screenshot
indicative of the at least a portion of the viewing frustum by associating the metadata
of each of the one or more objects with a location of each of the one or more objects
within the at least one enhanced screenshot to create hotspots indicative of each
of the one or more objects such that selection at least one hotspot by a computing
system causes at least a portion of the metadata associated with the at least one
hotspot to be displayed on a display device of the computing system; and (d) provide
the at least one enhanced screenshot to the computing system for display on the display
device of the computing system.
[0004] According to a second aspect, the present invention provides for systems for generating
enhanced screenshots that may include (a) a memory for storing executable instructions
(e.g., a computer program); (b) a processor for executing the executable instructions
stored in memory, the executable instructions adapted to generate a viewing frustum
that includes one or more objects, the executable instructions including a screenshot
generation module that includes: (i) a parsing module adapted to evaluate at least
a portion of the viewing frustum to determine one or more objects included therein;
(ii) an analysis module adapted to obtain metadata associated with at least one of
the one or more objects; (iii) an assembly module adapted to generate at least one
enhanced screenshot indicative of the at least a portion of the viewing frustum by
associating the metadata of each of the one or more objects with a location of each
of the one or more objects within the at least one enhanced screenshot to create hotspots
indicative of each of the one or more objects such that selection at least one hotspot
by a computing system causes at least a portion of the metadata associated with the
at least one hotspot to be displayed on a display device of a computing system; and
(iv) an interface module adapted to provide the at least one enhanced screenshot to
the computing system for display on the display device of the computing system.
[0005] In some embodiments, metadata includes run time metadata obtained by the analysis
module and/or static metadata.
[0006] In other embodiments, the analysis module is adapted to obtain metadata associated
with each of the one or more objects by: determining coordinates for each of the one
or more obj ects indicative of a location of each of the one or more obj ects within
a program environment generated by the executable instructions; and locating metadata
associated with the each of the one or more objects based upon the determined coordinates
of each of the one or more objects.
[0007] Furthermore, the analysis module may also be adapted to append the metadata to each
of the one or more objects as one or more metadata tags. Preferably, the assembly
module is adapted to associate two or more enhanced screenshots together that each
include at least one object having at least one metadata tag in common.
[0008] In further embodiments, the screenshot generation module is adapted to generate the
at least one enhanced screenshot at predetermined intervals of time. Alternatively
or additionally, the screenshot generation module is adapted to generate at least
one enhanced screenshot upon receiving a request to obtain an enhanced screenshot
from the computing system.
[0009] In another embodiment, the screenshot generation module is further adapted to generate
at least one enhanced screenshot upon an occurrence of at least one condition. The
at least one condition may include at least one of the parsing module determining
a threshold amount of objects being located within the viewing frustum and a particular
type of object being located within the viewing frustum. The assembly module may further
be adapted to include data indicative of the at least one condition that predicated
the generation of the enhanced screenshot as metadata that is appended to the at least
one enhanced screenshot. The system may further comprise a screenshot management module
adapted to receive user-defined information indicative of at least one of the at least
one condition and a threshold amount.
[0010] In some embodiments, the assembly module is adapted to provide the at least one enhanced
screenshot in an extensible markup language format document to the computing system.
[0011] Moreover, the assembly module may be adapted to provide the at least one enhanced
screenshot in combination with a current view generated by the executable instructions
indicative of at least a portion of the viewing frustum.
[0012] In other embodiments, the analysis module is adapted to generate comparative metadata
indicative of a comparison of the metadata of a first object located within the viewing
frustum and the metadata of one or more additional objects also located within the
viewing frustum when the at least one enhanced screenshot was generated.
[0013] In still other embodiments, the assembly module is adapted to provide, to the computing
system, the at least one enhanced screenshot in a format adapted to allow sharing
the at least one enhanced screenshot via a social network.
[0014] The interface module may also be adapted to generate a view from at least a portion
of the viewing frustum. Additionally, the assembly module may be adapted to generate
two or more enhanced screenshots captured from two or more points of view relative
to the viewing frustum.
[0015] In some embodiments, the assembly module is further adapted to generate a plurality
of enhanced screenshots that are arranged as an enhanced video. The at least one enhanced
video is adapted to provide at least a portion of the metadata associated with at
least one obj ect upon receiving input indicative of a selection of the at least one
object by the computing system.
[0016] In other embodiments, the assembly module may also be adapted to capture an image
file indicative of the at least a portion of the view; map each of the one or more
objects determined to be within the at least a portion of the view to one or more
pixels of the captured image file to establish a hotspot; and associate the metadata
of each of the one or more objects with a corresponding hotspot on the captured image
file such that selection of the hotspots cause at least a portion of the metadata
corresponding to the hotspots to be displayed in a popup window located proximate
the hotspots. The assembly module may be additionally adapted to determine an area
corresponding to a geometrical configuration of the at least one of the one or more
objects.
[0017] According to a third aspect, the present invention provides for non-transitory computer
readable storage mediums having embodied thereon a program, the program being executable
by a processor to perform a method for generating a viewing frustum that includes
one or more objects, the program further including an enhanced screenshot engine adapted
to: (a) evaluate at least a portion of the viewing frustum to determine one or more
obj ects included within the viewing frustum; (b) obtain metadata associated with
at least one of the one or more objects; (c) generate at least one enhanced screenshot
indicative of the at least a portion of the viewing frustum by associating the metadata
of each of the one or more objects with a location of each of the one or more objects
within the at least one enhanced screenshot to create hotspots indicative of each
of the one or more objects such that selection at least one hotspot by a computing
system causes at least a portion of the metadata associated with the at least one
hotspot to be displayed on a display device of the computing system; and (d) provide
the at least one enhanced screenshot to the computing system for display on the display
device of the computing system.
[0018] According to a forth aspect, the present invention provides for methods for providing
an award for obtaining one or more enhanced screenshots during execution of computer-readable
instructions that generate a viewing frustum that includes one or more objects. The
methods may include: (a) comparing metadata of at least one of the one or more obj
ects included in one or more enhanced screenshots obtained by a computing system to
an established award criteria, the award criteria including information indicative
of metadata included in one or more enhanced screenshots that when obtained allow
at least one award to be provided to the computing system; and (b) providing an award
to the computing system upon the computing system obtaining one or more enhanced screenshots
having metadata that correspond to the award criteria.
[0019] In some embodiments, the method further comprises the step of establishing the award
criteria and/or defining the award.
BRIEF DESCRIPTION OF THE DRAWINGS
[0020] FIG. 1 is a schematic diagram of an exemplary environment for practicing the present
invention.
[0021] FIG. 2 illustrates an exemplary computing system that may be used to implement embodiments
of the present technology.
[0022] FIG. 3 is a schematic of an exemplary architecture of a computer program having a
screenshot generation module, constructed in accordance with the present disclosure.
[0023] FIG. 4 is an exemplary flow chart of a method for generating enhanced screenshots.
[0024] FIG. 5 is an illustrative example of an enhanced screenshot.
DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
[0025] The capturing and utilization of screenshots is well known in the art. As background,
screenshots are image files taken by a computing system to record the visual depictions,
also known as views, displayed on a display device such as a monitor associated with
the computing system. The screenshots are typically captured by at least one of a
standalone screenshot application, screenshot functionalities embedded within computer
programs or executable instructions stored in memory, and also screenshot functionalities
incorporated into operating system software. It will be understood that the term "view"
may include any visual depiction of data generated by a graphics engine or an interface
module of a computer program such as a graphical user interface. While the term "view"
has been referred to in the singular, it is noteworthy that the word view may include
a singular view generated periodically or a plurality of views, such as a continuous
view of a program environment generated by a computer program, as will be discussed
in greater detail herein.
[0026] Additionally, screenshots may also be referred to as screen captures (screencap),
screen dump, screen grab, or more formally as a print screen function. The print screen
function may be generally described as a screenshot function operatively associated
with one or more keys of a keyboard device that is associated with the computing system.
[0027] While systems and methods for obtaining screenshots are well known, they only provide
the limited functionality of capturing the view in a standardized image file format.
These image files contain relatively little, if any, information indicative of the
type of information contained within the image file, such as the objects located therein.
For example, a videogame program may include executable instructions stored in memory
that generate and display a continuously updated view in the form of a graphical user
interface with which the user may interact. During run time, the user may capture
screenshots of the view. Unfortunately, these common screenshots provide the user
with no additional information regarding the program environment other than what may
be visually ascertained by the user on the display device of their computing system.
[0028] The systems and methods of the present disclosure are adapted to generate enhanced
screenshots that are content rich relative to standard screenshots thereby providing
the user with a host of additional information that may not be readily ascertained
by visual inspection of the screenshot.
[0029] The systems and methods may generate an enhanced screenshot by capturing an image
file indicative of at least a portion of the view and intelligently appending metadata
to objects located within the screenshot by mapping the location of each of the objects
to one or more pixels of the captured image file to create hotspots indicative of
the objects. According to some embodiments, each hotspot may be approximated and defined
by a rectangular shape, although one of ordinary skill in the art with the present
disclosure before them will appreciate that other geometrical configurations may be
utilized, such as square, triangular, or other suitable polygonal configurations.
[0030] The enhanced screenshot may be generated having any one of a number of formats including,
but not limited to, extensible markup language documents (XML). It will be understood
that the enhanced screenshot may be generated utilizing any one of a number of formats
that are adapted to generate screenshots that resemble a conventional screenshot,
but when users select a hotspot on the enhanced screenshot, at least a portion of
the metadata associated with the hotspot may be displayed on the display device of
the computing system. It will be understood that "select" may include, for example,
mousing over the hotspot, hovering a selector device over the hotspot, or otherwise
contacting the hotspot.
[0031] Metadata may be displayed on the computing system in the form of textual information
included in a popup window that is displayed proximate the hotspot.
[0032] It will be understood that the term "hotspot" may include any area of interest located
within an enhanced screenshot that has been intelligently appended with metadata.
Hotspots represent the location of objects within the enhanced screenshot and may
each be defined by a rectangular boundary that encloses at least a portion of an obj
ect.
[0033] It will be understood that the term "object" may any visual item located within the
enhanced screenshot, including, but not limited to, avatars, buildings, trees, clouds,
and the like. It will further be understood that each object may be generally categorized
as either animate or inanimate. For example, animate objects may include avatars,
enemies, animals, and the like. On the other hand, inanimate objects may include buildings,
mountains, and the like.
[0034] Additionally, the term "avatar" may be understood to include a specific type of object
that is associated the computing system of an end user and includes visual representation
of the computing system that operate within the programming environment. Non-limiting
examples of avatars may include avatars that have a visual appearance that closely
approximates the physical appearance of the end user associated therewith, or may
include avatars having a fanciful or whimsical appearance.
[0035] With regard to generating a view of the program environment in either two-or three-dimensional,
a graphics engine (not shown) associated with the computing system may utilize what
is commonly known as a viewing frustum. The viewing frustum may be described as a
visual boundary abstraction that approximates a user's field of view. It will be understood
that the geometrical configuration of the viewing frustum may depend upon the type
of view being simulated. Only objects or portions of objects located within the viewing
frustum are rendered by the graphics engine as a view that is displayed via the display
device of the computing system. Therefore, as an avatar traverses through the program
environment and objects enter and exit the viewing frustum, the objects are rendered
(e.g., generated) by the graphics engine and displayed in a format that is perceivable
to the user. It will be understood that in some embodiments, the graphics engine may
include an interface module such as the interface module 305a described in greater
detail with reference to FIG. 3.
[0036] Broadly speaking, enhanced screenshots generated by the systems and methods described
herein may be utilized to capture or depict the relationship between the view provided
to the display device of the computing system and the objects located within the viewing
frustum. Moreover, as the enhanced screenshot includes metadata indicative of the
objects located within the enhanced screenshot and the metadata indicative of the
conditions under which the enhanced screenshot was obtained, additional end users
viewing the enhanced screenshot may even more fully appreciate the relationship between
the end user for which the enhanced screenshot was captured and the objects located
within the enhanced screenshot.
[0037] FIG. 1 illustrates an exemplary environment 100 for practicing the present invention.
In general, the environment 100 may include a computing system 105 having one or more
computer programs (e.g., a videogame program including executable instructions that
generate a viewing frustum that includes one or more objects) residing thereon. In
additional exemplary embodiments, the exemplary environment 100 may include both the
computing system 105 and an application server 110 cooperating together to execute
separate components (e.g., module, engine, and the like) of a computer program. As
used throughout, the term "computer program" may comprise any type of executable instructions
stored in memory and executable by the processor of a computing system. The computing
system 105 and the application server 110 may be operatively connected to one another
via a network 115 such as the Internet, a local area network, or any other suitable
type of communications channel that would be known to one of ordinary skill in the
art with the present disclosure before them.
[0038] According to some embodiments, the application server 110 may include a plurality
of application servers 110 having portions of the computer program distributed therebetween.
It will be understood that a portion of the one or more computer programs may alternatively
reside in a cloud based computing arrangement 120.
[0039] FIG. 2 illustrates an exemplary computing system 200 that may be used to implement
embodiments of the present technology. The system 200 of FIG. 2 may be implemented
in the contexts of the likes of the computing system 105 or the application server
110 (see FIG. 1). Therefore, the computing system 200 utilized to implement the methods
described herein may be referred to as a particular purpose computing system adapted
to generate enhanced screenshots by translating one or more views generated by a computer
program into enhanced screenshots that include intelligently appended metadata associated
with each of the one or more objects located therein.
[0040] The computing system 200 of FIG. 2 includes one or more processors 210 and main memory
220. Main memory 220 stores, in part, instructions and data for execution by processor
210. Main memory 220 may store the executable code when in operation. The system 200
of FIG. 2 further includes a mass storage device 230, portable storage medium drive(s)
240, output devices 250, user input devices 260, a graphics display 270, and peripheral
devices 280.
[0041] The components shown in FIG. 2 are depicted as being connected via a single bus 290.
The components may be connected through one or more data transport means. Processor
unit 210 and main memory 220 may be connected via a local microprocessor bus, and
the mass storage device 230, peripheral device(s) 280, portable storage device 240,
and display system 270 may be connected via one or more input/output (I/O) buses.
[0042] Mass storage device 230, which may be implemented with a magnetic disk drive or an
optical disk drive, is a non-volatile storage device for storing data and instructions
for use by processor unit 210. Mass storage device 230 may store the system software
for implementing embodiments of the present invention for purposes of loading that
software into main memory 220.
[0043] Portable storage device 240 operates in conjunction with a portable non-volatile
storage medium, such as a floppy disk, compact disk, digital video disc, or USB storage
device, to input and output data and code to and from the computing system 200 of
FIG. 2. The system software for implementing embodiments of the present invention
may be stored on such a portable medium and input to the computing system 200 via
the portable storage device 240.
[0044] Input devices 260 may include an alphanumeric keypad, such as a keyboard, for inputting
alpha-numeric and other information, or a pointing device, such as a mouse, a trackball,
stylus, or cursor direction keys. Additionally, the system 200 as shown in FIG. 2
includes output devices 250. Suitable output devices include speakers, printers, network
interfaces, and monitors.
[0045] Display system 270 may include a liquid crystal display (LCD) or other suitable display
device. Display system 270 receives textual and graphical information, and processes
the information for output to the display device.
[0046] Peripherals 280 may include any type of computer support device to add additional
functionality to the computing system. Peripheral device(s) 280 may include a modem
or a router.
[0047] The components provided in the computing system 200 of FIG. 2 are those typically
found in computing systems that may be suitable for use with embodiments of the present
invention and are intended to represent a broad category of such computer components
that are well known in the art. Thus, the computing system 200 of FIG. 2 may be a
personal computer, hand held computing system, telephone, mobile computing system,
workstation, server, minicomputer, mainframe computer, or any other computing system.
The computer may also include different bus configurations, networked platforms, multi-processor
platforms, etc. Various operating systems may be used including Unix, Linux, Windows,
Macintosh OS, Palm OS, Android, iPhone OS and other suitable operating systems.
[0048] It is noteworthy that any hardware platform suitable for performing the processing
described herein is suitable for use with the technology. Computer-readable storage
media refer to any medium or media that participate in providing instructions to a
central processing unit (CPU), a processor, a microcontroller, or the like. Such media
may take forms including, but not limited to, non-volatile and volatile media such
as optical or magnetic disks and dynamic memory, respectively. Common forms of computer-readable
storage media include a floppy disk, a flexible disk, a hard disk, magnetic tape,
any other magnetic storage medium, a CD-ROM disk, digital video disk (DVD), any other
optical storage medium, RAM, PROM, EPROM, a FLASHEPROM, any other memory chip or cartridge.
[0049] FIG. 3 illustrates an exemplary block diagram of a computer program 300 for practicing
the invention. According to some embodiments, the computer program 300 (e.g., executable
instructions stored in memory) resides on the computing system 105 (or application
server 110). It will be understood that the computer program 300 may include any computer
readable code that is executable by the processor of a computing system that is adapted
to provide a view of data (e.g., program environment) produced by the computer program.
Therefore, generally speaking, the computer program 300 may include an interface module
305a and one or more additional modules 305n that generate data that may be utilized
by the interface module 305a to generate a view of a program environment maintained
by the computer program 300. It will be understood that the one or more additional
modules 305n may likewise include engines, applications, or combinations thereof.
[0050] Moreover, to generate enhanced screenshots of the view generated by the interface
module 305, the computer program 300 may also include a screenshot generation module
310 that includes a parsing module 315, an analysis module 320 (a.k.a., statistical
engine), an assembly module 325, and an optional screenshot management module 330.
It will be understood that the constituent modules of the screenshot generation module
310 may be executed by a processor of the computing system to effectuate respective
functionalities attributed thereto. It is noteworthy that the screenshot generation
module 310 may be composed of more or fewer modules and engines (or combinations of
the same) and still fall within the scope of the present technology. For example,
the functionalities of the parsing module 315 and the functionalities of the analysis
module 320 may be combined into a single module or engine.
[0051] For the sake of brevity, although the computer program 300 may include any one (or
combination) of a number of computer programs, only a detailed discussion of executable
instructions that generate a viewing frustum that includes one or more objects, such
as a videogame program, will be set forth in greater detail. The executable instructions
that generate, manage, and display a view of a program environment indicative of a
viewing frustum are also provided.
[0052] As background, software architects create computer-readable instructions that function
as a basis for generating and managing a program environment.
[0053] The program environment may generally include a landscape that includes a variety
of objects. Each of the objects may include both static and dynamic or "run time"
metadata indicative of the attributes of the object. For example, an object such as
an avatar may include static information such as age, height, weight, name, and the
like, associated with the avatar. These types of static metadata are typically input
or generated during the creation of the executable instructions or during creation
of the avatar by the end user. Run time or "dynamic" metadata may include information
that may change over time such as an avatar's health status, an avatar's inventory,
an avatar's time of play, interactions between an avatar and one or more avatars,
an avatar's accomplishments, and the like. Additionally, run time metadata may include
the dynamic location of an avatar within the program environment, which when captured
may be provided in the form of a virtual geotag (e.g., a metadata tag indicative of
the virtual location of an avatar).
[0054] As previously described, the objects located within the landscape may include both
animate (e.g., animals, humans, avatars, etc.) and inanimate (e.g., furniture, structures,
etc.) objects. An exemplary program environment is described in greater detail with
regards to FIG. 5.
[0055] Objects that are inanimate may include metadata such as name, location, color, date
of creation, and the like. Objects that are animate may also include similar static
metadata, but their ability to traverse within the program environment may require
monitoring of their locations during run time. Some animate objects traverse within
the program environment based upon predefined movements that are predefined by the
executable instructions. On the other hand, additional types of user-controlled animate
objects may require monitoring, as their movements are not predefined.
[0056] For example, the executable instructions may be adapted to facilitate the use of
avatars that may selectively operate within the program environment based upon interaction
with the executable instructions via end users associated with the avatars.
[0057] Because the executable instructions may be adapted to monitor the location of each
object within the program environment, the executable instructions may be adapted
to generate a view (e.g., user interface) that may be indicative of the particular
location at which an avatar is located relative to the program environment.
[0058] During run time, the screenshot generation module 310 may be adapted to receive requests
to generate an enhanced screenshot from the computing system 105. For example, the
user may select a particular key on a keyboard or other input device that is operatively
connected to the computing system 105. According to other embodiments, the screenshot
generation module 310 may be adapted to generate one or more enhanced screenshots
automatically at predetermined intervals of time. Additionally, in some embodiments,
the screenshot generation module 310 may be adapted to generate one or more enhanced
screenshots upon the occurrence of at least one condition.
[0059] By way of non-limiting example, the screenshot generation module 310 may generate
one or more enhanced screenshots each time a particular object or group of objects
enters the view frustum.
[0060] In additional embodiments, the screenshot generation module 310 may generate one
or more enhanced screenshots each time an amount of objects within the viewing frustum
meets or exceeds a threshold amount. For example, a threshold may be established such
that when four or more avatars enter the viewing frustum an enhanced screenshot is
generated.
[0061] It will be understood that the at least one condition may be predefined by within
the executable instructions. For example, the executable instructions may be adapted
to generate at least one enhanced screenshot each time a user accomplishes a particular
type of achievement.
[0062] According to other embodiments, the at least one condition may be user-defined. As
such, the optional screenshot management module 330 may be adapted to cause the interface
module 305a to generate a graphical user interface (not shown) that allows users to
input information indicative of at least one condition. Moreover, the users may be
allowed to input information indicative of the type of metadata that they would like
to obtain for objects located in the enhanced screenshot. For example, the user may
determine that they would like to receive only run time dynamic metadata.
[0063] An additional example includes the screenshot generation module 310 generating a
plurality of sequential enhanced screenshots upon the occurrence of a particular event
such as when a user is attacked by another object such as the avatar of another user.
As the screenshot generation module 310 generates a plurality of sequential enhanced
screenshots, the user may utilize the screenshots to conduct a forensic analysis of
the event. Moreover, the use of statistical data calculated by the analysis module
320 may aid in a forensic analysis of the event.
[0064] According to other embodiments, the screenshot generation module 310 may be adapted
to generate a slideshow of enhanced screenshots that were taken within a particular
range of time (e.g., event). The enhanced screenshots may be arranged in a chronological
manner such that end users may browse through a temporal sequence of enhanced screenshots
for the range of time.
[0065] In some embodiments, the screenshot generation module 310 may be adapted to generate
an enhanced video, rather than a plurality of sequential enhanced screenshots.
[0066] Regardless of the way in which a request to obtain an enhanced screenshot is received,
the parsing module 315 may be adapted to determine each object located within the
view being displayed to the user.
[0067] After determining each of the objects, the analysis module 320 may be adapted to
identify a location for each of the objects relative to the program environment utilizing
the viewing frustum. For example, a location for each object may be determined utilizing
a two or three point Cartesian coordinate system (depending upon whether the executable
instructions utilizes two or three dimensional graphical data), although other methods
or systems for determining the location of objects within a program environment that
would be known to one of ordinary skill in the art with the present disclosure before
them are likewise contemplated for use in accordance with the present invention.
[0068] Utilizing the location of the object within the program environment, the analysis
module 320 may determine metadata associated with the determined coordinates. For
example, a static object such as a building may include metadata indicative of the
location of the building within the program environment, along with other useful information
such as a building name, a building height, or building age - just to name a few.
Therefore, the analysis module 320 may locate at least a portion of the metadata of
the building. The analysis module 320 may likewise locate metadata for additional
objects located within the viewing frustum.
[0069] With regard to three-dimensional videogame programs (e.g., executable instructions
that generate a simulated three dimensional view), because of the added spatial dimensions
of length and height, and the ability of the analysis module 320 to determine the
location of each object within the viewing frustum relative to the location of the
objects within the program environment, the analysis module 320 may be adapted to
acquire additional types of run time metadata such a distance between two or more
objects or the velocity of an object.
[0070] The analysis module 320 may be adapted to generate and utilize comparative metadata
indicative of a comparison of the metadata of a first user represented by a first
object located within the viewing frustum and the metadata of one or more additional
users represented by one or more objects also located within the viewing frustum when
the at least one enhanced screenshot was generated. For example, the analysis module
320 may be adapted to provide differential health status information indicative of
a difference between the health statuses of two separate avatars engaging one another
in combat. The analysis module 320 may be utilized to determine various types of additional
statistical data representative of objects located within one or more enhanced screenshots.
This statistical data may also be intelligently appended to the enhanced screenshot
as metadata.
[0071] Once the analysis module 320 locates the metadata associated with one or more of
the objects within the viewing frustum, the assembly module 325 may be adapted to
generate one or more enhanced screenshots indicative of at least a portion of the
viewing frustum. According to some embodiments, the assembly module 325 may capture
the at least a portion of the viewing frustum that has been rendered as a view by
the interface module 305a that may be displayed on the computing system 105 as an
image file. The analysis module 320 then appends pertinent metadata to hotspots indicative
of each of the objects located within the image file.
[0072] The assembly module 325 may be adapted to map the objects determined by their location
within the program environment to a pixel or range of pixels within the captured image
file. For example, if the parsing module 315 determines that a building is located
within the viewing frustum, the parsing module 315 may be adapted to determine the
X and Y coordinates of the building relative to the view provided by the interface
module 305a.
[0073] The X and Y coordinates obtained by the parsing module 315 may be utilized by the
assembly module 325 to associate metadata with a particular pixel or area pixels (also
determined by a second set of X and Y coordinates) of the captured image that correspond
to the X and Y coordinates of the object determined by the parsing module 315. Therefore,
the X and Y coordinates of the captured image may be directly or indirectly correlated
to the X and Y coordinates of the view as determined by the viewing frustum.
[0074] According to some embodiments, the parsing module 315 may be adapted to determine
an area of pixels that correspond to the particular geometrical configuration of an
obj ect located within the captured image. For example, the parsing module 315 may
be adapted to generate a rectangular area that approximates the size of the object
located within the captured image.
[0075] Therefore, the assembly module 325 may then intelligently append the metadata corresponding
to the object to the pixels of the captured image file to establish a hotspot. The
assembly module 325 appends or otherwise associates the metadata with particular X
and Y coordinates of the captured image such that when hotspots are moused over, the
metadata associated with the hotspot may be displayed on the display device of the
computing system.
[0076] In some embodiments, the assembly module 325 may also append additional types of
metadata to the captured image, such as the at least one condition that prompted the
generation of the enhanced screenshot. This functionality allows users to determine,
for example, the conditions under which another user generates enhanced screenshots
to allow users to learn and adapt to the playing habits of other users.
[0077] In some embodiments, the assembly module 325 may generate an enhanced screenshot
in the form of an extensible markup language (XML) document that includes one or more
captured image files indicative of the view. The locations of the objects relative
to the view may be mapped to the pixels of the image file as stated previously, such
that mousing over a hotspot indicative of an object causes metadata associated with
the object to be displayed in a popup window. The XML document may be enhanced by
appending or otherwise associating metadata tags with each object that are indicative
of the metadata corresponding to the object. Broadly speaking, the association of
metadata tags with the image file produces the enhanced screenshot.
[0078] In additional embodiments, rather than, or in addition to, storing the enhanced screenshots
as extensible markup language documents, the screenshot generation module 310 may
be adapted to provide the enhanced screenshot to the interface module 305a of the
computer program 300. The interface module 305a may be adapted to provide the enhanced
screenshot in conjunction with a current view (e.g., user interface) of the program
environment. Although not shown, the enhanced screenshot may be provided by the interface
module 305a as a window within the current view of the program environment.
[0079] According to other embodiments, enhanced screenshots may be utilized as the basis
for a game achievement function included in the executable instructions. For example,
users may be elicited to obtain enhanced screenshots of one or more objects located
somewhere within the program environment. In return for obtaining the required enhanced
screenshots, the user is provided an award, bonus, or other object indicative of an
achievement such as a badge or a virtual trophy.
[0080] Criteria for providing the award may be predefined within the executable instructions
and may include a type or an amount of metadata that may be located within the enhanced
screenshot to merit the provision of the award. By way of non-limiting example, the
executable instructions may be adapted to entice the user to obtain enhanced screenshots
of a particular animal roaming through the program environment. In exchange for obtaining
an enhanced screenshot that includes the particular animal, the executable instructions
may be adapted to provide the user with a bonus of additional health.
[0081] In additional embodiments, the screenshot generation module 310 may be adapted to
utilize automatic metadata grouping to organize two or more enhanced screenshots according
to metadata associated with the enhanced screenshots. For example, two or more enhanced
screenshots indicative of a particular location may both include the same object such
as a home base of the user. As such, the object includes a metadata tag of "Home Base,"
the screenshot generation module 310 may organize or otherwise associate the two enhanced
screenshots together. Enhanced screenshots may be stored locally in a folder on the
computing system 105 of the user, or may be stored within a database resident on a
network-enabled server (not shown) that is operatively connected to the application
server 110.
[0082] Also, although not shown, the screenshot generation module 310 may be adapted to
generate enhanced screenshots in a format that may be utilized in conjunction with
a social network. For example, multiple users may gather together at a particular
location within the program environment and obtain an enhanced screenshot, similar
to a group photo. As stated previously, the assembly module 325 of the screenshot
generation module 310 may be adapted to append metadata such as a name or other suitable
identifying information to each user's avatar. Therefore, the social network may utilize
the metadata tags associated with the enhanced screenshot to operatively associate
the user's social network profile with the enhanced screenshot.
[0083] One of ordinary skill in the art will appreciate the broad applicability of providing
a social network with an enhanced screenshot that includes a captured image having
appended metadata tags that have been mapped to the pixels of the captured image.
This functionality is in contrast to the current methods that require a user to append
metadata to the image after the user has uploaded the image to the social network.
Rather than relying on human action to properly associate metadata with objects located
within the image, the social network receives the captured image from the screenshot
generation module 310 in an enhanced screenshot form.
[0084] In some embodiments, the screenshot generation module 310 may be adapted to export
or otherwise provide (e.g., publish) an enhanced screenshot as a webpage that may
be provided for distribution via the Internet. As such, end users viewing the enhanced
screenshot as a webpage may learn about videogame play, program environment appearance,
playing habits of the end user, or other pertinent information provided by the enhanced
screenshot.
[0085] Referring now to FIG. 4, a method 400 for generating enhanced screenshots may include
a step 405 of evaluating at least a portion of a viewing frustum generated by a computer
program to determine one or more objects included therein. After evaluating the viewing
frustum, the method 400 may include obtaining metadata associated with at least one
of the one or more objects that were identified in step 405 by executing a step 410
of determining coordinates for the at least one of the one or more obj ects indicative
of a location of the at least one of the one or more obj ects within a program environment
of the computer program.
[0086] According to some embodiments, the method 400 may include a step 415 of locating
metadata associated with the one or more objects based upon the determination coordinates
of the one or more objects in step 410.
[0087] According to some embodiments, the method 400 may include generating at least one
enhanced screenshot indicative of the at least a portion of the view representative
of the viewing frustum by way of step 420. The method may also include a step 425
of mapping the one or more obj ects determined to be within the at least a portion
of the viewing frustum to one or more pixels of the captured image file to establish
hotspots.
[0088] Next, the method 400 may include a step 430 of associating metadata of the at least
one of the one or more objects with the hotspots. It will be understood that mousing
over a hotspot causes at least a portion of the metadata corresponding thereto to
be displayed. Lastly, the method 400 may include a step 435 of providing the at least
one enhanced screenshot to a computing system.
[0089] Referring now to FIG. 5, an illustrative example of an enhanced screenshot 500 is
shown. The enhanced screenshot 500 includes a captured image file 505 representative
of the viewing frustum generated by executable instructions stored in memory. The
captured image file 505 may include visual depictions of a landscape 510 having a
plurality of objects, both inanimate 515 (e.g., rocks, trees, etc.) and animate 520
(e.g., avatars corresponding to users).
[0090] At least one hotspot 525 indicative of an object is shown as being selected by a
pointer 530 indicative of the location of a mouse relative to the captured image file
505. Upon a mouseover of the at least one hotspot 525 with the pointer 530, metadata
associated with the at least one hotspot 525 is displayed as textual information 535
in a popup window located proximate the at least one hotspot 525. If necessary, additional
metadata corresponding to the at least one hotspot 525 may be displayed in an additional
location 540, such as below the captured image file 505.
[0091] The term "and/or" may indicate that any combination of elements connected by "and/or"
may be used. For example, two words or expressions in a phrase using "and/or" may
mean one or the other or both.
[0092] While various embodiments have been described above, it should be understood that
they have been presented by way of example only, and not limitation. The descriptions
are not intended to limit the scope of the technology to the particular forms set
forth herein. Thus, the breadth and scope of a preferred embodiment should not be
limited by any of the above-described exemplary embodiments. It should be understood
that the above description is illustrative and not restrictive. To the contrary, the
present descriptions are intended to cover such alternatives, modifications, and equivalents
as may be included within the scope of the technology as defined by the appended claims
and otherwise appreciated by one of ordinary skill in the art. The scope of the technology
should, therefore, be determined not with reference to the above description, but
instead should be determined with reference to the appended claims along with their
full scope of equivalents.
1. A method for generating enhanced screenshots, comprising:
executing instructions stored in memory to:
evaluate (405) at least a portion of a viewing frustum generated by the instructions
to determine one or more objects (515, 520) included therein;
obtain (410, 415) metadata associated with the one or more objects (515, 520);
generate (420, 425, 430) at least one enhanced screenshot (500) indicative of the
at least a portion of the viewing frustum by associating the metadata of each of the
one or more objects (515, 520) with a location of each of the one or more objects
(515, 520) within the at least one enhanced screenshot (500) to create hotspots (525)
indicative of each of the one or more objects (515, 520) such that selection at least
one hotspot (525) by a computing system (105) causes at least a portion of the metadata
associated with the at least one hotspot (525) to be displayed on a display device
of the computing system (105); and
provide (435) the at least one enhanced screenshot (500) to the display device of
the computing system (105).
2. The method according to claim 1, wherein the metadata includes at least one of static
metadata and run time metadata.
3. The method according to claim 1 or 2, wherein obtain (410, 415) includes:
determine (410) coordinates for each of the one or more objects (515, 520) indicative
of a location of each of the one or more objects (515, 520) within a program environment
generated by execution of the instructions; and
locate (415) metadata associated with each of the one or more objects (515, 520) based
upon the determined coordinates of each of the one or more objects (515, 520).
4. The method according to claim 1, 2 or 3, wherein the instructions are further adapted
to append the metadata to each of the one or more objects (515, 520) as one or more
metadata tags, and to preferably associate two or more enhanced screenshots together
that each include at least one object having at least one metadata tag in common.
5. The method according to any preceding claim, wherein the instructions are adapted
to be executed automatically at predetermined intervals of time and/or wherein the
instructions are adapted to be executed upon receiving a request to obtain at least
one enhanced screenshot from the computing system.
6. The method according to any preceding claim, wherein the instructions are adapted
to be executed upon an occurrence of at least one condition, wherein the at least
one condition preferably includes at least one of a threshold amount of objects located
within the viewing frustum and a particular type of object located within the viewing
frustum.
7. The method according to claim 6, wherein the at least one enhanced screenshot includes
data indicative of the at least one condition that predicated the execution of the
instructions, the data indicative of the at least one condition being appended as
metadata to the at least one enhanced screenshot.
8. The method according to any preceding claim, wherein the instructions are further
adapted to provide, to the computing system (105), the at least one enhanced screenshot
in an extensible markup language format document and/or in a format adapted to allow
sharing the at least one enhanced screenshot via a social network.
9. The method according to any preceding claim, wherein the instructions are further
adapted to provide, to the computing system (105), the at least one enhanced screenshot
along with a current view of the program environment.
10. The method according to any preceding claim, wherein the metadata includes comparative
metadata indicative of a comparison of the metadata of a first object located within
the viewing frustum and the metadata of one or more objects also located within the
viewing frustum when the at least one enhanced screenshot was generated.
11. The method according to any preceding claim, wherein a graphics engine of the computing
system (105) is adapted to generate a view from at least a portion of the viewing
frustum, and wherein the at least one enhanced screenshot preferably includes two
or more enhanced screenshots captured from two or more points of view relative to
the viewing frustum.
12. The method according to claim 11, wherein generate (420, 425, 430) includes:
capture (420) an image file (505) indicative of the at least a portion of the view;
map (425) each of the one or more objects (515, 520) determined to be within the at
least a portion of the view to one or more pixels of the captured image file (505)
to establish a hotspot (525); and
associate (430) the metadata of each of the one or more objects (515, 520) with a
corresponding hotspot (525) on the captured image file (505) such that selection of
the hotspots (525) cause at least a portion of the metadata corresponding to the hotspots
to be displayed in a popup window located proximate the hotspots.
13. The method according to any preceding claim, wherein generate includes generating
a plurality of enhanced screenshots that are arranged as an enhanced video, the at
least one enhanced video adapted to provide at least a portion of the metadata associated
with at least one obj ect upon receiving input indicative of a selection of the at
least one object by the computing system.
14. A system for generating enhanced screenshots, the system comprising:
a memory (220) adapted to store executable instructions, the executable instructions
being adapted to generate a viewing frustum that includes one or more objects (515,
520);
a processor (210) adapted to execute the executable instructions stored in the memory
(220), the executable instructions further including a screenshot generation module
(510) that includes:
a parsing module (315) adapted to evaluate (405) at least a portion of the viewing
frustum to determine the one or more objects (515, 520) included therein;
an analysis module (320) adapted to obtain (410, 415) metadata associated with each
of the one or more objects (515, 520);
an assembly module (325) adapted to generate (420, 425, 430) at least one enhanced
screenshot (500) indicative of the at least a portion of the viewing frustum by associating
the metadata of each of the one or more obj ects (515, 520) with a location of each
of the one or more objects (515, 520) within the at least one enhanced screenshot
(500) to create hotspots (525) indicative of each of the one or more objects (515,
520) such that selection at least one hotspot (520) by a computing system (105) causes
at least a portion of the metadata associated with the at least one hotspot (520)
to be displayed on a display device of the computing system (105); and
an interface module (305a) adapted to provide (435) the at least one enhanced screenshot
(500) to a computing system for display on the display device of the computing system
(105).
15. A non-transitory computer readable storage medium having embodied thereon a program,
the program being executable by a processor to perform a method according to any of
claims 1-13.