Art resource processing method and device, electronic equipment and storage medium
Through the continuous integration platform, the scanning code and automatic push operations are triggered in art resource processing, the problems of low efficiency and low automation level of art resource processing in the existing technology are solved, and efficient and automated resource inspection and problem solving are achieved.
Patent Information
- Application Number
- CN202311331326.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-12
- Publication Date
- 2025-04-15
AI Technical Summary
When processing a large number of art resources, the existing technology is inefficient and has a long cycle, which cannot meet the needs of agile development iteration. In addition, the push of inspection results of automated scanning tools requires manual download, which reduces the automation level of resource inspection.
The continuous integration platform triggers the scanning target art resources, obtains the latest version of the scanning code, performs the scanning code for compliance checks, and automatically pushes based on the inspection results.
It realizes timely and efficient processing of art resources, meets the needs of agile development iteration, improves the automation level of resource inspection, and ensures that problems are promptly reached and resolved.
Smart Images

Figure CN119830278A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to data processing technology, and in particular to a method, device, electronic device and storage medium for processing art resources. Background Art
[0002] At present, in some large-scale software development or resource development projects, especially game, industrial design and other development projects, there are often a large number of resource files of various types. In order to avoid the normal operation of the project development software affected by resource file errors, it is necessary to perform periodic checks on the resource files in the project.
[0003] The existing technology usually checks resource files through a detection platform or with the help of existing resource scanning tools. However, for a large number of resource files, checking resources through a detection platform is inefficient and time-consuming, and cannot meet the needs of agile development iterations; and the current automated scanning tools rely on specific resource editing tools, and the push of inspection results requires manual download, which reduces the automation level of resource inspection. Summary of the invention
[0004] The embodiments of the present application provide a method, device, electronic device and computer-readable storage medium for processing art resources, which can process art resources in a timely and efficient manner.
[0005] The technical solution of the embodiment of the present application is implemented as follows:
[0006] The present application provides a method for processing art resources, the method comprising:
[0007] In response to satisfying the triggering condition for triggering the continuous integration platform to scan the target art resources, the continuous integration platform performs the following processing:
[0008] Acquire the target art resource from an art resource database, wherein the target art resource is sent to the art resource database by a development device;
[0009] Obtaining a latest version of a scanning code from a code database, wherein the scanning code integrates a detection rule;
[0010] Executing the scanning code to perform compliance check on the target art resource based on the detection rule, and obtaining a check result of the target art resource;
[0011] Based on the inspection result of the target art resource, a push operation based on the continuous integration platform is performed.
[0012] The present application provides an art resource processing device, including:
[0013] an acquisition module, configured to, in response to a trigger condition for triggering the continuous integration platform to scan a target art resource, obtain the target art resource from an art resource database, wherein the target art resource is sent to the art resource database by a development device; and obtain the latest version of the scan code from a code database, wherein the scan code integrates a detection rule;
[0014] A checking module, executing the scanning code to perform a compliance check on the target art resource based on the detection rule, and obtaining a check result of the target art resource;
[0015] The processing module executes a push operation based on the continuous integration platform based on the inspection result of the target art resource.
[0016] An embodiment of the present application provides an electronic device, the electronic device comprising:
[0017] A memory for storing computer executable instructions;
[0018] The processor is used to implement the art resource processing method provided in the embodiment of the present application when executing the computer executable instructions stored in the memory.
[0019] An embodiment of the present application provides a computer-readable storage medium storing a computer program or computer-executable instructions for implementing the art resource processing method provided in the embodiment of the present application when executed by a processor.
[0020] An embodiment of the present application provides a computer program product, including a computer program or computer executable instructions. When the computer program or computer executable instructions are executed by a processor, the art resource processing method provided in the embodiment of the present application is implemented.
[0021] The embodiments of the present application have the following beneficial effects:
[0022] The trigger conditions are used to trigger the continuous integration platform to scan the target art resources obtained from the art resource database, and obtain the latest version of the scan code from the code database. The detection rules that meet different development needs are integrated in the scan code to meet the agile development iteration needs of the project; by executing the scan code, the compliance check of the target art resources is automatically performed based on the detection rules to obtain the inspection results of the target art resources; finally, based on the continuous integration platform, the inspection results are automatically pushed in a variety of ways, so that the problems of the target art resources can be touched in time, which is more convenient to promote the resolution of the problems. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] Figure 1 It is a structural diagram of the art resource processing system architecture provided in the embodiment of the present application;
[0024] Figure 2 is a schematic diagram of the structure of an art resource processing device provided in an embodiment of the present application;
[0025] Figure 3A It is a first flow chart of processing art resources provided by an embodiment of the present application;
[0026] Figure 3B It is a schematic diagram of a process of sending a target art resource from a development device to an art resource database provided by an embodiment of the present application;
[0027] Figure 3C It is a schematic diagram of a process of sending the latest version of the scan code provided by the embodiment of the present application from the development device to the code database;
[0028] Figure 4A This is a schematic diagram of the configuration interface of the continuous integration platform provided in the embodiment of the present application;
[0029] Figure 4B It is a schematic diagram of the output form of the inspection result provided in the embodiment of the present application;
[0030] Figure 4C This is a schematic diagram of non-compliant resource information provided by an embodiment of the present application;
[0031] Figure 4D It is a schematic diagram of the execution of the code file provided in the embodiment of the present application;
[0032] Figure 5 It is a schematic diagram of the process of pushing the inspection results of the processing of art resources provided by the embodiment of the present application;
[0033] Figure 6 is a second flow chart of processing art resources provided in an embodiment of the present application;
[0034] Figure 7 This is a third flow chart of the processing of art resources provided in the embodiment of the present application. DETAILED DESCRIPTION
[0035] In order to make the purpose, technical solutions and advantages of the present application clearer, the present application will be further described in detail below in conjunction with the accompanying drawings. The described embodiments should not be regarded as limiting the present application. All other embodiments obtained by ordinary technicians in the field without making creative work are within the scope of protection of this application.
[0036] In the following description, reference is made to “some embodiments”, which describe a subset of all possible embodiments, but it can be understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.
[0037] Unless otherwise defined, all technical and scientific terms used in the embodiments of the present application have the same meanings as those commonly understood by those skilled in the art. The terms used in the embodiments of the present application are only for the purpose of describing the embodiments of the present application and are not intended to limit the present application.
[0038] Before further describing the embodiments of the present application in detail, the nouns and terms involved in the embodiments of the present application are explained. The nouns and terms involved in the embodiments of the present application are subject to the following interpretations.
[0039] 1) Art resources: specifically refers to digital content used in art production in the creation of digital content, such as textures, audio and video, object and character models, etc.
[0040] 2) UE: The abbreviation of Unreal Engine, whose Chinese name is Unreal Engine, is a game production tool suite developed by Epic that can be used to build, test and publish various types of games.
[0041] 3) Automated testing: Run the test system or application under preset conditions and evaluate the running results.
[0042] 4) Continuous Integration / Continuous Deployment (CI / CD). Continuous integration means that developers can frequently integrate code into the main branch of the public code database. Continuous deployment, with the continuous integration process as its theoretical cornerstone, is to deploy a pipeline to automate the entire process of application building, deployment, testing and release, thereby improving software delivery capabilities.
[0043] 5) Asset Registry: An editor subsystem that collects basic information about assets in the project directory that have not been loaded into memory (the main working principle is to scan the specified directory and then load the summary information of the asset). It will store this information in memory and automatically detect asset changes (renaming, moving to other directories, deletion, etc.) to keep the information accurate.
[0044] 6) Process management system: It provides rich configurable functions such as Kanban board, online documents, agile demand planning, iteration planning & detection, task time management, defect detection management, test plan & use case, continuous integration, continuous delivery & deployment, and provides three agile collaboration solutions to meet the needs of different customer scenarios.
[0045] 7) Batch Script: Batch script, also known as BAT script, is a script file for batch processing commands under Windows system, which is used to help developers execute a series of operations in batches and improve work efficiency.
[0046] 8) Component: Also known as a component, it is a replaceable, physical part of a software system that encapsulates an implementation (realizing a certain function) and provides a set of interface implementation methods. A component can be considered an encapsulated code module or a large-scale running module. A component can also be understood as an object with certain functions that can work independently or in combination with other components to work together.
[0047] In the processing method of art resources in the prior art, art resources are usually processed by the detection platform of the scanning backend and the display frontend. According to the scanning requirements of the project, the corresponding code is written, and after development and debugging by relevant personnel, the code that meets the scanning requirements is obtained, and then the code is manually executed to obtain the final scanning result. However, this resource scanning process requires separate configuration to pull the latest resources, and the code management is independent of the game project. After the new scanning requirements are developed, they also need to be recompiled together with the game project. It often takes one to three working days from the submission of requirements to the results, which cannot meet the agile development iteration requirements of the project.
[0048] In the existing technology, you can also use the resource scanning tool based on the Asset Registry and reflection mechanism to scan art resources. This tool is developed in the form of a traditional UE plug-in. Its advantage is that the plug-in method is convenient to run directly in the editor, and uses the reflection mechanism to generate attribute configuration items for various resources. At the same time, it supports automated pipeline integration, which is lighter and more flexible, and can meet the agile iteration requirements of the project. However, there is still room for improvement in automated pipeline integration. For example, when new requirements arise, it also needs to be recompiled with the overall game project before it can take effect. At the same time, the results generated by the pipeline need to be downloaded manually and cannot be pushed to the corresponding person in charge.
[0049] Based on the above analysis, the applicant found that the automated integration function of the art resource processing method in the prior art needs to be improved, and the processing results cannot be automatically pushed. To address the above problems, an embodiment of the present application provides a method for processing art resources that can process art resources in a timely and efficient manner.
[0050] The embodiments of the present application provide a method, device, electronic device, computer-readable storage medium and computer program product for processing art resources, which can process art resources in a timely and efficient manner. The exemplary applications of the electronic devices provided by the embodiments of the present application are described below. The electronic devices provided by the embodiments of the present application involve terminals and servers. The terminals can be implemented as various types of user terminals such as laptops, tablet computers, desktop computers, set-top boxes, mobile devices (for example, mobile phones, portable music players, personal digital assistants, dedicated messaging devices, portable gaming devices), smart phones, smart speakers, smart watches, smart televisions, and vehicle-mounted terminals. The exemplary applications of the electronic devices will be described below.
[0051] See also Figure 1 , Figure 1 1 is a schematic diagram of the architecture of an art resource processing system 100 provided in an embodiment of the present application, for supporting an art resource processing application; for example, Figure 1 The art resource processing system 100 involves a server 200, a network 300, a terminal 400, a resource database 500-1 and a code database 500-2. The terminal (terminal 400 is shown as an example) is connected to the server 200 via the network 300. The network 300 can be a wide area network or a local area network, or a combination of the two.
[0052] In some embodiments, terminal 400 is located in a development environment of art resources, in which servers, terminals and other development equipment may be deployed for art planners to develop art resources, edit detection rules for art resources, and so on.
[0053] Terminal 400 is used to obtain target art resources from an art resource database, write scanning codes according to scanning requirements, check the target art resources based on the detection rules in the scanning codes, and display the inspection results of the target art resources on a graphical interface 410 (graphical interface 410-1 is shown as an example). Server 200 is used to respond to the satisfaction of the triggering condition for triggering the continuous integration platform to scan the target art resources, obtain the latest version of the scanning code from the code database, execute the scanning code, perform compliance checks on the target art resources based on the detection rules, and obtain the inspection results of the target art resources; and push the inspection results based on the continuous integration platform.
[0054] A continuous integration / continuous deployment platform may be deployed in the server 200 to implement a pipeline for submitting, checking, and pushing check results of art resources.
[0055] In some embodiments, the server 200 may be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDN), and big data and artificial intelligence platforms. The terminal 400 may be a smart phone, a tablet computer, a laptop computer, a desktop computer, a smart speaker, a smart watch, a car terminal, etc., but is not limited thereto. The terminal and the server may be directly or indirectly connected via wired or wireless communication, which is not limited in the embodiments of the present application.
[0056] See also Figure 2 , Figure 2 is a schematic diagram of the structure of the server 200 provided in an embodiment of the present application, Figure 2 The server 200 shown includes: at least one processor 210, a memory 250 and at least one network interface 220. The various components in the terminal 400 are coupled together via a bus system 240. It is understood that the bus system 240 is used to achieve connection and communication between these components. In addition to the data bus, the bus system 240 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, the bus system 240 is not described in detail. Figure 2 Various buses are labeled as bus system 240 .
[0057] The processor 210 can be an integrated circuit chip with signal processing capabilities, such as a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc., where the general-purpose processor can be a microprocessor or any conventional processor, etc.
[0058] The memory 250 may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard disk drives, optical disk drives, etc. The memory 250 may optionally include one or more storage devices that are physically remote from the processor 210.
[0059] The memory 250 includes a volatile memory or a non-volatile memory, and may also include both volatile and non-volatile memories. The non-volatile memory may be a read-only memory (ROM), and the volatile memory may be a random access memory (RAM). The memory 250 described in the embodiments of the present application is intended to include any suitable type of memory.
[0060] In some embodiments, memory 250 can store data to support various operations, examples of which include programs, modules, and data structures, or a subset or superset thereof, as exemplarily described below.
[0061] Operating system 451, including system programs for processing various basic system services and performing hardware-related tasks, such as a framework layer, a core library layer, a driver layer, etc., for implementing various basic services and processing hardware-based tasks;
[0062] A network communication module 252, used to reach other electronic devices via one or more (wired or wireless) network interfaces 220, exemplary network interfaces 220 include: Bluetooth, Wireless Compatibility Certification (WiFi), and Universal Serial Bus (USB), etc.;
[0063] In some embodiments, the art resource processing device provided in the embodiments of the present application can be implemented in a software manner. Figure 2 The processing device 253 of the art resources stored in the memory 250 is shown, which can be software in the form of programs and plug-ins, etc., including the following software modules: an acquisition module 2531, a check module 2532, a processing module 2533 and a determination module 2534. These modules are logical, so they can be arbitrarily combined or further divided according to the functions implemented. The functions of each module will be explained below.
[0064] The method for processing art resources provided in the embodiment of the present application will be described in conjunction with the exemplary application and implementation of the electronic device provided in the embodiment of the present application.
[0065] The following describes the method for processing art resources provided by the embodiment of the present application. Figure 3A , Figure 3A This is a first flow chart of processing art resources provided by the embodiment of the present application, which will be combined with Figure 3A The steps shown are explained below. Figure 3A The electronic device for performing the method for processing art resources may be the above-mentioned server 200 , and may be executed, for example, by a continuous integration platform deployed in the server 200 .
[0066] In step 101, it is detected whether the triggering condition for triggering the continuous integration platform to scan the target art resources is met. If so, the process proceeds to step 102 to step 104, otherwise, the process continues to detect.
[0067] In some embodiments, the triggering method is a timed trigger, and the triggering condition includes reaching a scanning time set in the continuous integration platform. The types of timed triggers include: one-time triggering and periodic triggering.
[0068] As an example, the time for the continuous integration platform to perform resource scanning can be pre-set, and the trigger type can be set. It can be set as a one-time trigger, that is, a time on a specific date is the trigger time; or it can be set as a periodic trigger, that is, it is set to trigger at fixed intervals.
[0069] In some embodiments, the triggering method is manual triggering, and the triggering condition includes that the continuous integration platform receives a manual trigger scanning instruction.
[0070] For example, when the continuous integration platform receives a temporary resource scanning requirement, in response to the temporary resource scanning requirement, a manual trigger scanning instruction is received.
[0071] In some embodiments, the triggering method is remote triggering, and the triggering conditions include the continuous integration platform receiving a compliance check instruction from the instant messaging client of the development device terminal, and the instant messaging client obtaining the compliance check instruction through the displayed session page. The session page may include the intelligent customer service of the continuous integration platform.
[0072] For example, the continuous integration platform interacts with the instant messaging client through a deployed specific service to remotely trigger the scanning of art resources. The display format can also be customized in text or markdown format. Among them, the specific service can be a server program. The instant messaging client can interact with the server program through the HyperText Transfer Protocol (HTTP). When the instant messaging client receives the compliance check instruction, it will send the information to the server program. The server program can respond to the message and forward the message to the continuous integration platform, so that the continuous integration platform can start working. After the scan is completed, the result will be sent to the instant messaging client.
[0073] As an example, the following is the interaction process between a user and the chat robot (i.e., intelligent customer service) XGame performance test assistant of the instant messaging client:
[0074] User 2022-12-8 17:28.16
[0075] @XGame performance test assistant resource check
[0076] XGame Performance Test Assistant 001 2022-12-8 17:28:16
[0077] Received, starting XGAME resource check pipeline, please wait...
[0078] XGame performance test assistant BOT 2022-12-8 17.28:17
[0079] Executing the XGAME art resource inspection pipeline
[0080] XGame performance test assistant no2022-12-8 1731:37
[0081] Latest main art resource check results
[0082] XGame Performance Test Assistant 0012022-12-8 17:31:37
[0083] This inspection time is 2022-12-0817:27:00. It takes 2 minutes and 34 seconds.
[0084] Resource check result overview:
[0085] A total of 1,071,346 resources were checked and 74 resource errors were found, including
[0086] 1-Ul-Transparent image sets the quality to Highest: 12
[0087] 2-Ul-Opaque map set High: 1
[0088] 3-Ul-Opacity map sets Highest:1
[0089] 4-UI-Uncompressed (B8G8R8A8):0
[0090] 5-Ul-umg special effect map format is incorrect (B8G8R8A8): 0
[0091] 6-UI texture size exceeds 1920:19
[0092] 9-Character-HD Textures-Texture size greater than 1024:0
[0093] 10-Character-Non-HD Textures-Texture size is greater than 512:0
[0094] 11- Special Effects-Special Effects Texture-Special Effects Texture Size is greater than 1024:0
[0095] 12-UI texture is not standard: 12
[0096] 17-Texture-Texture format is FloatRGBA and greater than or equal to 512x512:0
[0097] 18-Texture-Texture format is B8G8R8A8 mesh greater than or equal to 512x512:15
[0098] 24-Texture2D in the mobile phone memory is greater than or equal to 3072Kb (3M): 1
[0099] 25-TextureCube in the phone memory is greater than or equal to 2048Kb (2M): 0
[0100] 26-The looping particle effect in the animation is not checked Destroyimmediately: 0
[0101] 27-WarmUpTime of particle effects is greater than 2s:0
[0102] 28-Character-HD suffix textures do not have NeverStream checked: 0
[0103] 29-Character-HD suffixed textures are not importantchar [except normals]: 0
[0104] 30-Character-Textures with the suffix rma have SRGB:0 checked
[0105] 31-Character-Normal map texturegroup is not CharacterNormalMap:0
[0106] 32-Character-Non-HD TextureGroup is not Character [Division Line]: 0
[0107] 46-Character-Error using double pass hair: 0
[0108] 48-Material-Material Instance Map Error: 0
[0109] 49-Special Effects-Particle Effects lifetime and loop are both 0:0
[0110] 51-Material-Material has more than 12 map nodes: 13
[0111] According to the above example, the inspection result content in the embodiment of the present application includes: retrieval time, time consumption, overview (including the total number of resources checked, the total number of errors, resource ID-project type-reasons for not meeting the detection rules, projects that do not meet the detection rules, and the correct values that the projects should take).
[0112] In the embodiments of the present application, multiple triggering methods such as timed triggering, manual triggering, and remote triggering are provided. The inspection scope may involve various types of art resources, such as textures, audio and video, object character models, etc. in art resources, and can be flexibly adjusted to achieve continuous detection of art resources in the game development process, thereby ensuring that problems are corrected in a timely manner and convenient to use.
[0113] In some embodiments, taking the use of art resources for game scenes as an example, the configuration of the continuous integration platform can be configured based on the construction of the game project.
[0114] For example, see Figure 4A , Figure 4A is a schematic diagram of the configuration interface of the continuous integration platform provided in the embodiment of the present application, such as Figure 4A As shown, it includes the architecture of two pipelines, stage 1 and stage 2. Among them, the construction trigger in stage 1 is the construction of the pipeline trigger method of the embodiment of the present application, and manual trigger, timed trigger or remote trigger can be set according to resource processing requirements; the construction environment in stage 2 is the construction of the game engineering development environment, including the Batch Script and archive components of the game engineering development. Figure 4A As shown, the built pipeline is completely restored to the game project construction pipeline, and can be configured based on the game project pipeline architecture.
[0115] In step 102, a target art resource is obtained from an art resource database, wherein the target art resource is sent to the art resource database by a development device.
[0116] In some embodiments, the electronic device for sending the target art resource to the art resource database may be a development device in the above-mentioned development environment, for example Figure 1 The terminal 400 shown in FIG. Figure 3B , Figure 3B This is a flow chart of the target art resource provided by the embodiment of the present application being sent from the development device to the art resource database. Figure 3B The steps shown are explained.
[0117] In step 201, in response to a submission operation on a target art resource edited on the development device, the development device queries a resource change record for a path of a modified resource package in the target art resource, wherein the resource change record includes a path of a modified resource package in any art resource.
[0118] In some embodiments, the art resources stored in the resource database are constructed in units of resource packages, and the resource modification record records the path information of the resource packages that are modified and saved.
[0119] For example, in a game scene, the processing of art resources can be realized through the game engine. The development device can register a resource modification and save event in the game engine, which will trigger the execution of the resource modification and save event when the resource package is modified and saved. Add a callback function to the resource modification and save event. The function of the callback function is to record the modified and saved resource package path into a txt text file, so that all modified resource information can be recorded, such as resource ID, resource name, etc.
[0120] In step 202, the modified resource package in the target art resource is obtained according to the path.
[0121] In some embodiments, the development device determines the location of the modified and saved resource package in the resource database by querying the path information in the resource change record, and then obtains the modified resource package in the target art resource.
[0122] For example, the development device registers an event when submitting a local resource to the art resource warehouse, executes a local resource check script in the registered event, and obtains the modified resource package in the target art resource by calling the hook function.
[0123] In step 203, a compliance check is performed on the modified resource package to obtain a check result of the art resource to be checked.
[0124] In some embodiments, when the development device detects that a resource package has been modified, it can intercept the submission of the target art resource by executing a written hook function, perform a compliance check on the modified resource package, and then determine subsequent operations based on the inspection results of the art resource to be checked.
[0125] For example, see Figure 4D , Figure 4D The standard for whether a resource package is compliant is set by humans, mainly including the setting of some resource attributes, the configuration of the format, etc. Figure 4D The pre-commit file in is a code file that will be run when submitted. The code logic is to read the modified resource package and check whether it meets the pre-configured standards, i.e., detection rules, one by one. For example, when the texture size of the art resource is too large, resulting in poor image quality and poor display of the UI interface, the detection rule of "texture size should be less than 2048" is formulated in response to the development strategy of temporary resource scanning requirements.
[0126] In step 204, when the check result is correct, the target art resource is submitted to the art resource database.
[0127] In some embodiments, when the check result is correct, a prompt message prompting to upload the target art resource to the art resource database will be displayed on the page of the continuous integration platform.
[0128] In step 205, when the check result is incorrect, the submission operation for the target art resource is blocked, and the non-compliant resource information of the target art resource is output, and the operation prompt information is displayed to prompt that the check result is incorrect, and options are provided to continue uploading or terminate uploading.
[0129] In some embodiments, the inspection result of the target art resource can be exported in the form of a pipeline component. The non-compliant resource information related to the art resource involves various types such as various parameter settings of the user interface (UI) transparent map or opaque map, the size of the character map or special effect map, and the map material.
[0130] For example, see Figure 4B , Figure 4B Schematic diagram of the output form of the inspection result provided in the embodiment of the present application; Figure 4B As shown in , the terminal page title part displays the art resource inspection path and two function buttons of "Edit" or "Execute" for operation; the module switching bar 401B is configured with four modules of "Execution Status", "View Components", "Code Change Records" and "Output Report", and the prompt bar 402B displays "Status", "Trigger" and "Execution Time". When the trigger execution of the art resource inspection is successful, the "Status" in the prompt bar 402B is displayed as "Execution Successful", and the relevant information of the trigger person and execution time is displayed in the corresponding position of the prompt bar 402B. In response to the click operation of the "View Components" module in the module switching bar 401B, the terminal presents the inspection results on the page of the display bar 403B, and can be exported in the form of pipeline components.
[0131] For example, the inspection results can be pushed to a group chat of a specific instant messaging client by a robot, which can show in detail whether there are non-compliant resources under different rules. The following is the inspection result provided by the embodiment of the present application:
[0132] The number of character faces should be less than 20w:63
[0133] Texture size should be smaller than 2048:0
[0134] Directory names should only contain uppercase and lowercase English characters, underscores, and numbers:328
[0135] Niagara System files should be prefixed with NS_:312
[0136] Niagara Emitter files are prefixed with NE_:1
[0137] Material files should be prefixed with M_ or PP_:711
[0138] The Font prefix should be Font_:14
[0139] Dialogue Voice should be prefixed with DV_:6
[0140] The Dialoque Wave prefix should be DW_:2055
[0141] Media Sound Wave should be prefixed with MSW_:0
[0142] The Reverb Effect prefix should be Reverb_:0
[0143] Sound Attenuation should be prefixed with ATT_:0
[0144] The Sound Cue prefix should be ATT_:871
[0145] Sound Mb prefix should be Mix_:0
[0146] Sound Wave prefix should be AD_:0
[0147] Physical Material should be prefixed with PM_:3
[0148] Paper Flipbook should be prefixed with PFB_:0
[0149] The Tile Set prefix should be TS_:0
[0150] The Object Library prefix should be OL_:0
[0151] Media Player should be prefixed with MP_:1
[0152] LandscapeGrassType should be prefixed with LG_:0
[0153] Force Feedback Effect should be prefixed with FFE_:0
[0154] FoliageType should be prefixed with FT_:0
[0155] The DataTable prefix should be DT_:34
[0156] CurveTable should be prefixed with Curve_:2
[0157] CameraAnim prefix should be CA_:0
[0158] TextureLightProfile should be prefixed with TLP_:0
[0159] MediaTexture should be prefixed with MT_:2
[0160] TextureCube should be prefixed with TC_:61
[0161] Texture prefix should be T_:0
[0162] SubsurfaceProfile should be prefixed with SP_:49
[0163] The MaterialParameterCollection prefix should be MPC_:34
[0164] MaterialInstance should be prefixed with MI_:0
[0165] MaterialFunction should be prefixed with MF_:677
[0166] WidgetBlueprint should be prefixed with WB_:201
[0167] The Blueprint prefix should be BP_:734
[0168] BehaviorTree should be prefixed with BT_:1
[0169] Skeleton prefix should be SKEL_:100
[0170] SkeletalMesh should be prefixed with SK_:205
[0171] The Rig prefix should be Rig_:14
[0172] PaperFlipbook should be prefixed with PFB_:0
[0173] MorphTarget should be prefixed with MT_:0
[0174] The LevelSequence prefix should be LS_:304
[0175] BlendSace should be prefixed with BS_:63
[0176] ParticleSvstem prefix should be PS_:392
[0177] StaticMesh prefix should be SM_:2896
[0178] This detection took 00h00m31s and scanned 27475 resources of 43 types.
[0179] 10134 problematic resources were detected among 46 rules.
[0180] For specific inspection details, please refer to check_result.csv or the Resource Scan Cat Platform.
[0181] For example, see Figure 4C , Figure 4C 4 is a schematic diagram of non-compliant resource information provided by an embodiment of the present application. The detection result display interface 401C is used to display whether the modification backend resource check result is incorrect; the operation prompt control 402C is used to display the operation prompt information, including two options: continue and prohibit. In response to the key operations for continue and prohibit, the resource can be continued to be uploaded or prohibited from being uploaded.
[0182] In some embodiments, before step 102 , the target art resource may be sent to the art resource database by the development device.
[0183] For example, the development device for sending the target art resource to the art resource database may be as follows: Figure 1 The terminal 400 shown in FIG. Figure 6 , Figure 6 is a second flow chart of processing art resources provided by the embodiment of the present application, which will be combined with Figure 6 The steps shown are explained.
[0184] In step 601, the development device displays an art resource editing interface for an art planner to modify art resources.
[0185] For example, in a game scene, the art resources can be processed through the game engine. The development device registers a resource modification and save event in the game engine, which triggers the execution of the resource modification and save event when the resource package is modified and saved. A callback function is added to the resource modification and save event. The function of the callback function is to record the modified and saved resource package path to a txt text file, so that all modified resource information, such as resource ID, resource name, etc., can be recorded.
[0186] In step 602, the development device receives art resources submitted by the art planner.
[0187] In response to the art planner's submission operation on the resource package, the development device performs the following operations from step 603 to step 607 on the art planner's submitted resources.
[0188] In step 603, the development device executes the check script.
[0189] For example, the development device registers an event when submitting a local resource to the art resource warehouse, and executes a local resource check script in the registered event. The check script has detection rules formulated according to resource scanning requirements. The check script is executed based on the detection rules to scan and check only the modified and saved resources, thereby reducing time consumption.
[0190] The following steps 604 to 607 are performed according to the logic of the check script executed in step 603.
[0191] In step 604, the development device reads the resource change record.
[0192] For example, the development device registers an event when submitting a local resource to the art resource warehouse, executes the local resource check script in the registered event, calls the hook function to read the resource path of the modified art resource recorded in the resource change record, obtains the modified resource package in the target art resource through the resource path, and only checks the modified resource package part to reduce time consumption.
[0193] In step 605, the development device determines the inspection result. If the inspection result shows that there is no error, the operation of step 606 is performed; if the inspection result shows that there is an error, the operation of step 607 is performed.
[0194] For example, when the development device judges the inspection result, it judges according to the detection rules in the inspection script executed in step 603. For example, when one of the scanning requirements obtained by the development device is "character-HD texture-texture size is less than or equal to 1024", the current scanning code is executed. If the result contains the detection rule of "character-HD texture-texture size is greater than 1024", it is judged that the scanning code meets the scanning requirement. If the result does not contain the detection rule of "character-HD texture-texture size is greater than 1024", or the character texture size contained in the inspection result does not meet the detection rule, it is judged that the scanning code does not meet the scanning requirement.
[0195] In step 606 , the development device submits the target art resource to the resource database normally.
[0196] In step 607 , the development device outputs non-compliant resource information.
[0197] This way, resource checks can be moved forward to when modifications are submitted, reducing the costs caused by resource problems due to non-compliance.
[0198] In the embodiment of the present application, by designing a pipeline that is triggered when submitting locally, only some resources that have been modified to be submitted to the resource database are checked, and the scanning work is put in advance to reduce the cost overhead caused by resource non-compliance.
[0199] Continue to see Figure 3A In step 103, the latest version of the scanning code is obtained from the code database, wherein the detection rules are integrated into the scanning code.
[0200] In some embodiments, before step 103, see Figure 3C , Figure 3C This is a schematic diagram of the process of sending the latest version of the scan code provided by the embodiment of the present application from the development device to the code database, which will be combined with Figure 3C The steps shown are explained.
[0201] In step 301, in response to a rule editing operation, an edited detection rule is obtained.
[0202] For example, when a development strategy has a temporary resource scanning requirement, the corresponding detection rules will be edited in the editing interface of the development device according to the temporary resource scanning requirement. For example, when the texture size of the art resource is too large, resulting in poor image quality and poor display effect of the UI interface, in response to the development strategy of the temporary resource scanning requirement, a detection rule of "texture size should be less than 2048" is formulated.
[0203] In step 302, a new version of the scanning code is generated according to the detection rule.
[0204] The new version of the scanning code integrates detection rules that meet resource scanning requirements.
[0205] In step 303, the new version of the scanned code is sent to the code database.
[0206] In some embodiments, the latest version of the scanning code is actively pushed to the code database by the development device, or the code database may actively poll and pull the latest version of the scanning code in response to a trigger condition of a resource check.
[0207] In the embodiment of the present application, the idea of continuous integration is utilized to integrate with the existing continuous integration platform, and the latest version of the scanning code can be generated according to the inspection requirements, ensuring that the continuous integration platform can pull the latest version of the scanning code when performing resource inspection in response to the trigger conditions of resource inspection.
[0208] Continue to see Figure 3A In step 104, the scanning code is executed to perform a compliance check on the target art resource based on the detection rule to obtain the inspection result of the target art resource.
[0209] In some embodiments, relevant detection rules are formulated based on the presentation effects of relevant attributes of different types of target art resources during deployment, and then scanning codes written based on the detection rules are executed to perform compliance checks on different types of relevant attributes of the target art resources to obtain inspection results of the target art resources.
[0210] For example, when the target art resources have poor rendering effects on character texture types, the development strategy will develop detection rules for corresponding character texture effects, such as "character-HD texture-texture size greater than 1024". When the scanning code written based on the developed detection rules is executed, the resources that meet the detection rules will be detected and the detection results for character texture type resources in the target art resources will be presented.
[0211] In step 105 , based on the inspection result of the target art resource, a push operation based on the continuous integration platform is performed.
[0212] In some embodiments, see Figure 5 , Figure 5 : is a schematic diagram of the principle of pushing the inspection results of the processing of art resources provided in the embodiment of the present application, Figure 3A Step 105 "Execute a push operation based on a continuous integration platform" can be based on Figure 5 The corresponding three trigger methods in the target art resources are checked, and then Figure 5 Use at least one of the following methods corresponding to the three push methods shown to complete the push operation.
[0213] Method 1: Push the inspection results of the target art resources to the pipeline page of the continuous integration platform.
[0214] The inspection results of the target art resources are first pushed to the pipeline of the development device, and then presented through the pipeline page of the continuous integration platform.
[0215] For example, when the trigger condition is reaching the scan time set in the continuous integration platform, the inspection result of the target art resource is pushed to the pre-set scan time on the pipeline page of the continuous integration platform. The pre-set scan time can be a specific moment in a single trigger or a fixed interval in a periodic trigger.
[0216] Method 2: Push the inspection results of the target art resources to the process management system.
[0217] For example, when the trigger condition is that a temporary resource scanning requirement is received in the continuous integration platform, the inspection result of the target art resource is pushed to the process management system.
[0218] Method 3: Push the inspection result of the target art resource to the conversation interface of the instant messaging client.
[0219] For example, when the trigger condition is to build a corresponding specific service based on the received compliance check instruction, the inspection result of the target art resource is pushed to the conversation interface of the instant messaging client, including the intelligent customer service of the continuous integration platform, which can be a one-to-one conversation or a group chat conversation.
[0220] In the embodiment of the present application, the inspection results of the art resources can be pushed to collaborative communication software and process management systems such as instant messaging clients to promote problem solving.
[0221] The resource processing method of the embodiment of the present application is for virtual engines, but it can also be applied to other common engines such as Unity. The following will illustrate an exemplary application of the art resource processing method provided by the embodiment of the present application in a game resource processing scenario. Figure 7 , Figure 7 This is a third flow chart of the processing of art resources provided by the embodiment of the present application, which will be combined with Figure 7 The steps shown are explained.
[0222] In step 701, the development device obtains a scanning requirement.
[0223] For example, art resources involve various types of parameter settings of transparent or opaque images of user interfaces, sizes of character maps or special effect maps, map materials, etc. The development device provides a scanning requirement editing interface, so that developers can edit scanning requirements based on the art resource configuration effects received from planners.
[0224] In step 702 , the development device determines whether the scanned code meets the scanning requirements. If so, step 705 is executed. If not, step 703 is continued.
[0225] In some embodiments, the scanning code is executed to check the target art resource, and it is determined whether the art resource type involved in the check result and the detection rules for each attribute of the art resource type in the entry meet the scanning requirements.
[0226] For example, when one of the scanning requirements obtained by the development device is "character-HD texture-texture size is less than or equal to 1024", the current scanning code is executed. If the result contains the detection rule of "character-HD texture-texture size is greater than 1024", it is judged that the scanning code meets the scanning requirements. If the result does not contain the detection rule of "character-HD texture-texture size is greater than 1024", or the character texture size contained in the inspection result does not meet the detection rule, it is judged that the scanning code does not meet the scanning requirements.
[0227] In step 703, requirements are developed.
[0228] The development equipment formulates corresponding rules according to the requirements and writes the scanning code according to the rules.
[0229] For example, developers can formulate corresponding detection rules based on scanning requirements. For example, when the texture size of art resources is too large, resulting in poor image quality and poor display effect of the user interface, developers can formulate detection rules to limit the texture size based on feedback, and the development equipment can generate corresponding scanning codes according to the detection rules.
[0230] In step 704, the development device pushes the scanned code to the code database by git push.
[0231] In the embodiment of the present application, the development device implements the processing of scanning codes through git, and other versions of management tools can also be used to manage resources, such as svn or perforce.
[0232] For example, the development device can push the scanned code in the development device to the code database through git push.
[0233] Among them, the general form of git push is git push <remote host name><local branch name><remote branch name>, for example, git push origin master:refs / for / master, which means pushing the local master branch to the corresponding master branch on the remote host origin, origin is the remote host name, the first master is the local branch name, and the second master is the remote branch name.
[0234] In step 705, the continuous integration platform pulls the latest version of the scan code.
[0235] For example, the latest scan code integrates detection rules that meet resource scanning requirements. In response to meeting the trigger conditions of the continuous integration platform to check the target art resources, the continuous integration platform will pull the latest inspection code from the code database.
[0236] In step 706 , the continuous integration platform performs a scan.
[0237] In some embodiments, the continuous integration platform executes an automated script to check the target art assets.
[0238] For example, in response to the continuous integration platform triggering the target art resource to be checked, the continuous integration platform will automatically execute the automation script to check the target art resource. The automation script can be implemented in various types of languages. In the embodiment of the present application, the automation script is implemented by powershell, and can also be implemented by python or JavaScript.
[0239] In step 707, the continuous integration platform executes a result push operation.
[0240] The continuous integration platform pushes the inspection results to the instant messaging client group chat or the process management platform through at least one method in the embodiments of the present application.
[0241] For example, you can complete the push operation based on the continuous integration platform in at least one of the following ways:
[0242] When the trigger condition reaches the scan time set in the continuous integration platform, the inspection result of the target art resource is pushed to the pre-set scan time on the pipeline page of the continuous integration platform. The pre-set scan time can be a specific moment in a single trigger or a fixed interval in a periodic trigger.
[0243] When the trigger condition is that a temporary resource scanning demand is received in the continuous integration platform, the inspection results of the target art resources are pushed to the process management system.
[0244] When the trigger condition is to build a corresponding specific service based on the received compliance check instruction, the check result of the target art resource is pushed to the conversation interface of the instant messaging client, including the intelligent customer service of the continuous integration platform, which can be a one-to-one conversation or a group chat conversation.
[0245] The art resource processing method provided in the embodiment of the present application has significant technical effects in the three aspects of continuous deployment integration, triggering method and inspection result push. The following table is an analysis of the art resource processing method provided in the embodiment of the present application and the prior art in the three aspects of continuous deployment integration, triggering method and inspection result push.
[0246] Pipeline Integration Multi-mode trigger Access process management Access to WeChat Work Prior art 1 Partial support Manual + timing Not supported Not supported Prior Art 2 Partial support Manual + timing support Not supported Embodiments of the present application Full process support Manual + Scheduled + Remote + Resource Submission support support
[0247] As shown in the table, the art resource processing using the continuous deployment integration method provided in the embodiment of the present application can realize the automation of the entire resource inspection process, and the support scope is more comprehensive; at the same time, it supports multiple triggering methods such as manual triggering, timed triggering, remote triggering and triggering when resources are submitted, which is convenient for use; finally, the automatic push operation of the inspection results can be realized through various methods, so that the problems of the target art resources can be touched upon in time, which is more convenient to promote the resolution of the problems.
[0248] The following continues to describe the exemplary structure of the art resource processing device 253 provided in the embodiment of the present application implemented as a software module. In some embodiments, Figure 2 As shown, the software modules stored in the art resource processing device 253 of the memory 250 may include:
[0249] Acquisition module 2531 is used for responding to the triggering condition of triggering the continuous integration platform to scan the target art resource, and the continuous integration platform acquires the target art resource from the art resource database, wherein the target art resource is sent to the art resource database by the development device; and acquires the latest version of the scan code from the code database, wherein the scan code integrates the detection rules.
[0250] The inspection module 2532 is used to execute the scanning code to perform compliance inspection on the target art resource based on the detection rule to obtain the inspection result of the target art resource.
[0251] The processing module 2533 is used to perform a push operation based on the continuous integration platform based on the inspection result of the target art resource.
[0252] The determination module 2534 is used to determine the triggering method of art resource processing based on the triggering condition of triggering the continuous integration platform to scan the target art resources.
[0253] The acquisition module 2531 is also used for the development device to respond to a submission operation on the target art resource edited on the development device, query the path of the modified resource package in the target art resource from the resource change record; wherein the resource change record includes the path of the modified resource package in any art resource; and acquire the modified resource package in the target art resource according to the path.
[0254] Processing module 2533 is also used to set the scanning time of the scheduled trigger mode in the continuous integration platform, perform manual triggering operations in response to manual triggering scanning instructions for temporary resource scanning requirements received by the continuous integration platform, and perform remote triggering operations in response to compliance check instructions received by the continuous integration platform from the instant messaging client.
[0255] The inspection module 2532 is also used to perform compliance inspection on the modified resource package to obtain inspection results of the art resources to be inspected.
[0256] Processing module 2533 is also used to submit the target art resource to the art resource database when the inspection result is correct; when the inspection result is incorrect, it blocks the submission operation for the target art resource, outputs the non-compliant resource information of the target art resource, and displays operation prompt information to prompt that the inspection result is incorrect, and provides options to continue uploading or terminate uploading.
[0257] The processing module 2533 is also used to edit the corresponding detection rules according to the temporary resource scanning requirements when the development device receives the temporary resource scanning requirements; generate a new version of the scanning code according to the detection rules, and send the new version of the scanning code to the code database.
[0258] The determination module 2534 is further configured to determine that the triggering mode of the art resource processing is a timed trigger when the triggering condition includes reaching a scan time set in the continuous integration platform and the triggering type includes a one-time trigger or a periodic trigger.
[0259] The determination module 2534 is further configured to determine that the triggering mode of the art resource processing is manual triggering when the triggering condition includes the continuous integration platform receiving a manual triggering scanning instruction.
[0260] The determination module 2534 is also used to determine that the triggering mode of art resource processing is remote triggering when the triggering condition includes that the continuous integration platform receives a compliance check instruction from the instant messaging client, and the instant messaging client obtains the compliance check instruction through the displayed session page.
[0261] The processing module 2533 is also used to push the inspection result of the target art resource to the pipeline page of the continuous integration platform when the trigger mode is manual trigger.
[0262] The processing module 2533 is also used to push the inspection result of the target art resource to the process management system when the trigger mode is a timed trigger.
[0263] The processing module 2533 is also used to push the inspection result of the target art resource to the session interface of the instant messaging client when the trigger mode is remote trigger.
[0264] The embodiment of the present application provides a computer program product, which includes a computer program or a computer executable instruction, and the computer program or the computer executable instruction is stored in a computer-readable storage medium. The processor of the electronic device reads the computer executable instruction from the computer-readable storage medium, and the processor executes the computer executable instruction, so that the electronic device executes the above-mentioned art resource processing method of the embodiment of the present application.
[0265] The present application embodiment provides a computer-readable storage medium storing computer-executable instructions, wherein the computer-executable instructions or computer programs are stored. When the computer-executable instructions or computer programs are executed by a processor, the processor will execute the art resource processing method provided by the present application embodiment, for example, Figure 3A The processing method of art resources shown.
[0266] In some embodiments, the computer-readable storage medium may be a memory such as RAM, ROM, flash memory, magnetic surface memory, optical disk, or CD-ROM; or may be various devices including one or any combination of the above memories.
[0267] In some embodiments, computer executable instructions may be in the form of a program, software, software module, script or code, written in any form of programming language (including compiled or interpreted languages, or declarative or procedural languages), and may be deployed in any form, including as a stand-alone program or as a module, component, subroutine or other unit suitable for use in a computing environment.
[0268] As an example, computer-executable instructions may, but need not, correspond to a file in a file system, may be stored as part of a file that stores other programs or data, such as in one or more scripts in a HyperText Markup Language (HTML) document, in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subroutines, or code portions).
[0269] As an example, computer executable instructions may be deployed to be executed on one electronic device, or on multiple electronic devices located at one site, or on multiple electronic devices distributed at multiple sites and interconnected by a communication network.
[0270] In summary, when at least one trigger condition of scanning the target art resource using the continuous integration platform is met through the embodiment of the present application, the target art resource is obtained from the art resource database, and the latest version of the scan code is obtained from the code database, wherein the scan code integrates detection rules that meet different development needs, and can meet the agile development iteration needs of the project. By executing the scan code, the compliance check of the target art resource is automatically performed based on the detection rules to obtain the inspection result of the target art resource; finally, the inspection result is automatically pushed in a variety of ways based on the continuous integration platform, which is more convenient for promoting problem solving.
[0271] The above are only embodiments of the present application and are not intended to limit the protection scope of the present application. Any modifications, equivalent substitutions and improvements made within the spirit and scope of the present application are included in the protection scope of the present application.
Claims
1. A method for processing art resources, characterized in that: The method comprises: In response to satisfying the triggering condition for triggering the continuous integration platform to scan the target art resources, the continuous integration platform performs the following processing: Acquire the target art resource from an art resource database, wherein the target art resource is sent to the art resource database by a development device; Obtaining a latest version of a scanning code from a code database, wherein the scanning code integrates a detection rule; Executing the scanning code to perform compliance check on the target art resource based on the detection rule, and obtaining a check result of the target art resource; Based on the inspection result of the target art resource, a push operation based on the continuous integration platform is performed.
2. The method according to claim 1, characterized in that: The triggering method is a timed trigger, the triggering condition includes reaching a scanning time set in the continuous integration platform, and the types of the timed trigger include: a one-time trigger and a periodic trigger.
3. The method according to claim 1, characterized in that The triggering method is manual triggering, and the triggering condition includes that the continuous integration platform receives a manual trigger scanning instruction.
4. The method according to claim 1, characterized in that: The triggering method is remote triggering, and the triggering condition includes that the continuous integration platform receives a compliance check instruction from an instant messaging client, and the instant messaging client obtains the compliance check instruction through a displayed conversation page, and the conversation page includes the intelligent customer service of the continuous integration platform.
5. The method according to any one of claims 1 to 4, characterized in that: The target art resource is sent by the development device to the art resource database, including: The development device queries the resource change record for the path of the modified resource package in the target art resource in response to a submission operation on the target art resource edited by the development device; wherein the resource change record includes the path of the modified resource package in any art resource; Acquire the modified resource package in the target art resource according to the path; Performing a compliance check on the modified resource package to obtain a check result of the art resource to be checked; When the check result is correct, the target art resource is submitted to the art resource database.
6. The method according to claim 5, characterized in that The method further comprises: When the check result is wrong, blocking the submission operation for the target art resource and outputting the non-compliant resource information of the target art resource; An operation prompt message is displayed to prompt that the check result is incorrect, and options are provided to continue uploading or terminate uploading.
7. The method according to any one of claims 1 to 4, characterized in that: The latest version of the scanned code is sent to the code database by the development device in the following manner: In response to the rule editing operation, obtaining the edited detection rule; Generate the scan code of the new version according to the detection rule; The new version of the scanned code is sent to the code database.
8. The method according to any one of claims 1 to 4, characterized in that: The step of executing a push operation based on the continuous integration platform based on the inspection result of the target art resource includes: Do at least one of the following: Pushing the inspection result of the target art resource to the pipeline page of the continuous integration platform; Pushing the inspection result of the target art resource to the process management system; The inspection result of the target art resource is pushed to the session interface of the instant messaging client.
9. An art resource processing device, characterized in that: The device comprises: an acquisition module, configured to, in response to a trigger condition for triggering the continuous integration platform to scan a target art resource, obtain the target art resource from an art resource database, wherein the target art resource is sent to the art resource database by a development device; and obtain the latest version of the scan code from a code database, wherein the scan code integrates a detection rule; A checking module, executing the scanning code to perform compliance check on the target art resource based on the detection rule, and obtaining a check result of the target art resource; The processing module executes a push operation based on the continuous integration platform based on the inspection result of the target art resource.
10. An electronic device, characterized in that: The electronic device comprises: A memory for storing computer executable instructions; A processor, configured to implement the method according to any one of claims 1 to 8 when executing the computer executable instructions stored in the memory.
11. A computer-readable storage medium storing computer-executable instructions or a computer program, characterized in that: When the computer executable instructions or computer programs are executed by a processor, the method according to any one of claims 1 to 8 is implemented.