P12 Editor Alpha V0.8.0.2 Release Note Pt.2

New Features

[Gameplay] Stroke function Add two types of strokes to add strokes to characters, NPCs or other objects

  • Default stroke switch for characters
  1. /* Default stroke, only on off function, can not adjust the stroke effect SetOutLine(value:boolean) */ GamePlay.GetCurrentPlayer().Character.SetOutLine(true);
  • Character custom stroke

    /* Post-processing stroke, adjust the stroke effect by control post-processing box
    Add a post-processing logic object
    Set the stroke color and stroke width in the property panel
    Call the stroke interface to enable the stroke effect
    SetOutlineAdvance(bNewEnableOutline: boolean, NewOutlineColorIndex: number)
    */
    GamePlay.GetCurrentPlayer().Character.SetOutlineAdvance(true,11); 
    

[Gameplay] Interactors support setting resources by GUID

Before modification You need to fill in the pose name in the interactive pose binding property

After modification The interactive pose binding property can be filled with the pose GUID

[Gameplay] Thermal weapon object optimization

  • Optimize the original thermal weapon logical object, add new thermal weapon logical object, this optimization thermal weapon will be completely decoupled from skills, throwing objects, thermal weapon object itself has the ability to fire After the optimization of the new thermal weapon object, the old version of the thermal weapon will be marked as abandoned and will not be maintained in the future

    • 1 key to fire, 2 keys to change ammunition

    • Properties can be modified by modifying the corresponding properties of the thermal weapon logic object

    • The function of unloading weapons and wearing weapons has been added to the scenario

    • The aiming UI is not part of the thermal weapon logic object, the aiming UI in the sample project is only for the convenience of viewing

[Gameplay] Listen to return Android cut-in/cut-out background events

/* Add listening events
Output the result in the log
Output true when in-game
Output false when cutting out of the game
*/

export funciton AddOnFocusListener(listener:(bFocus:boolean) => void):EventListener{
return new EventListener(EventsManager.OnFocus,listener);
}

[Gameplay] parallel light, sky light, post-processing default value adjustment

With the new secondary resources, the default values of parallel light, sky light and post-processing properties are adjusted

  • Parallel light intensity default value: 6.28

  • Parallel light color: 1.0, 0.95, 0.85, 0.0

  • Sky light intensity default value: 1.57

  • Sky light default color: 0.8, 0.8, 1.0, 0.0

[Gameplay] Remove the forced parent-child relationship when creating physical components

After creating a physical component, the parent-child relationship is no longer forced to be changed when constraining the object by straw transformation.

[Gameplay] Support dynamic creation of physical components and dynamic setting of physical component properties

  1. All physical components can be created dynamically by SpawnGameObject()

  2. All physical components can be dynamically modified through the new set interface.

[GamePlay] Dynamic creation of world UI requirements

  • New interface, support dynamic get, set world UI type, support dynamic get, set world UI binding UI object

    protected async OnStart(): Promise<void> {
    let UIWidget = await MWCore.GameObject.AsyncFind("51F4DA5945152E3E4EBB4E87A9CEC672") as GamePlay.UIWidget;
    
    // Set the world UI type to World
    UIWidget.WidgetSpace = GamePlay.WidgetSpace.World;
    
    //Get the world UI type
    console.log(========= World UI type: ${GamePlay.WidgetSpace[UIWidget.WidgetSpace]});
    // Set the bound UI object, pass in the UI's object ID to bind
    UIWidget.SetTargetUI("E28467724158E785214590BB7E15F2C9");
    
    //get the bound UI object
    console.log(========= binding object: ${UIWidget.GetTargetUI()});
    

[Gameplay] New API

  • New interface to get Ping value

    /**
    Ping value of current Player (-1 means failed to get)
    Ping(): number;
    @returns in milliseconds
    */_PingValue : number;
    this._PingValue = player.Ping();
    

[Gameplay] Character braking attributes

  • Walking braking rate

    • Description: Expose the deceleration rate parameter that exists in the walking state of the character, which can adjust whether the character will glide through inertia for a distance in the walking situation.

    • Interface

    /**
    Travel braking rate
    @get
    /
    get BrakingDecelerationWalking(): number;
    /*
    Travel braking rate
    @set
    */
    set BrakingDecelerationWalking(InBrakingDecelerationWalking: number);
    OnRep_BrakingDecelerationFalling(): void;
    
  • Flight Braking Rate

    • Description: Exposes the deceleration rate parameter that exists when the character is in flight, and allows you to adjust whether the character will glide through inertia for a distance in a flight situation.

    • Interface.

    /**
    Flight braking rate
    @get
    /
    get BrakingDecelerationFlying(): number;
    /*
    Flight braking rate
    @set
    */
    set BrakingDecelerationFlying(InBrakingDecelerationFlying: number);
    OnRep_BrakingDecelerationWalking(): void;
    
  • Swim braking rate

    • Description: Exposes the deceleration rate parameter present in the character's swimming state, which adjusts whether the character will glide through inertia for some distance in a swimming situation.

    • Interface.

    /**
    Swimming braking rate
    @get
    /
    get BrakingDecelerationSwimming(): number;
    /*
    Swimming braking rate
    @set
    */
    set BrakingDecelerationSwimming(InBrakingDecelerationSwimming: number);
    
  • Falling braking rate

    • Description: Exposes the deceleration rate parameter present in the character's falling state, which adjusts whether the character will glide through inertia for some distance in a falling situation.

    • Interface

    /**
    Descent braking rate
    @get
    /
    get BrakingDecelerationFalling(): number;
    /*
    Descent braking rate
    @set
    */
    set BrakingDecelerationFalling(InBrakingDecelerationFalling: number);
    OnRep_BrakingDecelerationSwimming(): void;
    
  • Maximum acceleration

    • Description: Parameters that expose the maximum acceleration that a character can achieve

    • Interface.

    /**
    Maximum acceleration
    @get
    /
    get MaxAcceleration(): number;
    /*
    Maximum acceleration
    @set
    */
    set MaxAcceleration(InMaxAcceleration: number);
    

[Gameplay] Character animation use

  • Context

    • The initial version was defined by Gameplay in terms of resources, and the resources for the actions were given information on where to play them, so that certain actions could only be played in certain poses and whether or not the animation would only be played on the top half of the body.

    • Animations are modified to support animations that can be played in any pose, and the Blues can define their own way of playing resources. Gameplay currently uses automation scripts on Montage plus all existing Slots to achieve functionality (maintaining the old resources).

    • Support resource upload tool, the animation resources with play information to Montage so that developers can upload their own animation resources, through the specification of Montage Slot to achieve the effect of animation playback (the future of the Blues to maintain their own animation resources).

  • Instructions for use.

    • In principle, the existing resources are not modified, for the animation that does not meet the demand, new to the source animation plus the corresponding slot, and then upload the resources, such as the existing resources of Normal_Sick_01 (full body animation 14735) and Normal_Sick_01_Upperbody (upper body animation 14649), which are the two ways of playing under the action.
  • Slot specification.

    • â‘ DefaultSlot - default slot without hard requirements Indeterminate animation (adjusted according to the situation in different cases, such as down action will broadcast the whole body at this time)

    • â‘¡UpperBody only broadcast the upper body animation

    • â‘¢LowerBody only broadcast lower body animation

    • â‘£ FullyBody force full body animation (due to the default of flight/driving state only play upper body animation, some such as death animation need to force full body animation)

Subscribe to Project Twelve
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.