# Blueprint Interface Documentation # ABookMenuActor ### Properties
**Property Name****Type****Access****Description**
BookMenuDataUBookMenuDataEditAnywhereDefault Configuration Data for the Book, containing information such as the the widgets to be displayed as book pages
SkeletalMeshComponentUSkeletalMeshComponentVisibleAnywhere, BlueprintReadOnlyThe animated book mesh
StaticMeshComponentUStaticMeshComponentVisibleAnywhere, BlueprintReadOnlyA dummy static mesh component for doing traces. Needed to determine the UV coordinates based on trace hit results. The static mesh will be hidden in game. Must represent the book in a open state.
LeftPageCollisionUBoxComponentVisibleAnywhere, BlueprintReadOnlyCollision box used to determine which page of the book was traced
RightPageCollisionUBoxComponentVisibleAnywhere, BlueprintReadOnlyCollision box used to determine which page of the book was traced
InteractionActorABookMenuInteractionActorEditAnywhere, BlueprintReadOnlyReference to the actor that redirects the interaction to a widget interaction component
### Functions #### Set Book Menu Data --- Can be used to set the book menu data after begin play, during the game
**Pin****Direction****Type****Description**
In Book Menu DataInputUBookMenuDataThe new Book Menu Data. Will be cloned internally.
#### #### Get Book Menu Data --- Can be used to set the book menu data after begin play, during the game
**Pin****Direction****Type****Description**
Return ValueOutputUBookMenuDataA clone of the current Book Menu Data
#### Get Current Page Section Index --- Can be used to get the current page section index. The page section index indicates the currently shown pair of pages. (Index of the PageSection Array inside the BookMenuData)
**Pin****Direction****Type****Description**
Return ValueOutputIntegerthe current page section index; -1 in case Anim Instance is not defined
#### Get Pending Page Section Index --- Can be used to get the pending page section index. The pending page section index indicates the currently pending pair of pages while switching pages is in progress.
**Pin****Direction****Type****Description**
Return ValueOutputIntegerthe pending page section index; -1 in case Anim Instance is not defined
#### Get Current Page Index --- Can be used to get the index of the current page, where the interaction pointer points on.
**Pin****Direction****Type****Description**
Return ValueOutputIntegerthe current page index 0 = Left ; 1 = Right returns -1 in case Anim Instance is not defined
#### Get Book Is Open --- Can be used to check if the book is in an opened state
**Pin****Direction****Type****Description**
Return ValueOutputBooleantrue if the book is in open state; false if the book is in closed state
#### Get Book Should Open --- Can be used to check if the book should be in an opened state but opening is still in progress.
**Pin****Direction****Type****Description**
Return ValueOutputBooleantrue if the book should be in open state
#### Get Book Should Close --- Can be used to check of the book should be in a closed state but closing is still in progress.
**Pin****Direction****Type****Description**
Return ValueOutputBooleantrue if the book should be in closed state
#### Get Page Sections --- Can be used to get the Page Sections.
**Pin****Direction****Type****Description**
Return ValueOutputTMap<int32,FPageSectionDataStruct>an Map of the page sections of the book
#### Get Interaction Actor --- Returns the reference to the Book Menu Interaction Actor
**Pin****Direction****Type****Description**
Return ValueOutputABookMenuInteractionActorReturns the reference to the Book Menu Interaction Actor
#### Set Interaction Actor --- Registers the Book Menu Interaction Actor to be used for Interaction with the Book
**Pin****Direction****Type****Description**
In Interaction ActorInputABookMenuInteractionActorThe Book Menu Interaction Actor to be set
#### #### Register Interaction Component --- Method to register a Book Menu Interaction Component
**Pin****Direction****Type****Description**
In Interaction ComponentInputUBookMenuInteractionComponentThe Book Menu Interaction Component to be registered.
#### Register Interaction Actor --- Method to register a Book Menu Interaction Component
**Pin****Direction****Type****Description**
In Interaction ActorInputUBookMenuInteractionActorThe Book Menu Interaction Actor to be registered.
#### Jump to Page Section --- Determines if a forward or backward page turn need to be performed based on the current page section index.
**Pin****Direction****Type****Description**
Section IndexInputint32The index of the Page Section to be displayed
#### Open Book At --- If the book is closed, this triggers the open book animation and upfront sets the correct section to display.
**Pin****Direction****Type****Description**
Section IndexInputint32The Page Section Index to be displayed while opening the book
#### #### Close Book --- Triggers the Close Book animation #### Pause Book Update --- Pauses the animation update of the anim instance without closing the book first. #### Resume Book Update --- Resume the animation update of the anim instance. Will only resume if the book is already open. Closed books don't need to consume render time #### Interact --- Performs a Line Trace based on the Start and End Parameters and moves the Widget Interaction pointer of the Book Menu Interaction Actor if it is set. Also tells the Animation Blueprint which page was traced to.
**Pin****Direction****Type****Description**
StartInputFVectorStart of the Line Trace
EndInputFVectorEnd of the Line Trace
Debug TraceInputboolShows a debug trace if true.
Trace ChannelInputECollisionChannelThe Collision Channel to be used for the line trace.
SuccessOutputEXECIndicates if the Interaction was executed successfully
FailedOutputEXECIndicates if the Interaction was not executed successfully
Return ValueOutputboolreturns tru if the operation was successful. Otherwise false
#### InteractExt (Release 1.4+) --- Performs a Line Trace based on the Start and End Parameters and moves the Widget Interaction pointer of the Book Menu Interaction Actor if it is set. Also tells the Animation Blueprint which page was traced to.
**Pin****Direction****Type****Description**
StartInputFVectorStart of the Line Trace
EndInputFVectorEnd of the Line Trace
OutUVCoordinatesOutputFVectro2dThe UV coordinates of the traced page
Debug TraceInputboolShows a debug trace if true.
Trace ChannelInputECollisionChannelThe Collision Channel to be used for the line trace.
SuccessOutputEXECIndicates if the Interaction was executed successfully
FailedOutputEXECIndicates if the Interaction was not executed successfully
Return ValueOutputboolreturns tru if the operation was successful. Otherwise false
#### Set Keyboard Focus ---
**Pin****Direction****Type****Description**
In Page IndexInputIntegerThe page index to set the focus to
Debug TraceInputboolShows a debug trace if true.
SuccessOutputEXECIndicates if the Interaction was executed successfully
FailedOutputEXECIndicates if the Interaction was not executed successfully
Return ValueOutputboolreturns tru if the operation was successful. Otherwise false
#### Get Anim Instance --- Returns the Animation Instance of the Animation Blueprint
**Pin****Direction****Type****Description**
Return ValueOutputUBookMenuAnimInstance
#### #### Get Left Page Collision Box --- Returns the Collision Box of the left page
**Pin****Direction****Type****Description**
Return ValueOutputUBoxComponent
#### #### Get Right Page Collision Box --- Returns the Collision Box of the right page
**Pin****Direction****Type****Description**
Return ValueOutputUBoxComponent
#### #### Get Static Mesh Component --- Returns the Static Mesh Component
**Pin****Direction****Type****Description**
Return ValueOutputUStaticMeshComponent
# ABookMenuInteractionActor ### Properties
**Property Name****Type****Access****Description**
WidgetInteractionComponentUWidgetInteractionComponentVisibleAnywhere, BlueprintReadOnlyThe widget interaction component used to redirect the book interaction onto a Widget Component
PageWidgetComponentAUWidgetComponentVisibleAnywhere, BlueprintReadOnlyThe widget component used to display the first page
PageWidgetComponentBUWidgetComponentVisibleAnywhere, BlueprintReadOnlyThe widget component used to display the second page
PageWidgetComponentCUWidgetComponentVisibleAnywhere, BlueprintReadOnlyThe widget component used to display the third page
PageWidgetComponentDUWidgetComponentVisibleAnywhere, BlueprintReadOnlyThe widget component used to display the fourth page
ActiveWidgetComponentUWidgetComponentVisibleAnywhere, BlueprintReadOnlyThe widget component which is currently under interaction
DrawSizeUStaticMeshComponentVisibleAnywhere, BlueprintReadOnlyThe Draw Size of the Widget. User Widgets and Render Targets must have the same resolution. Will be set via the Book Menu Data of the Book Menu Actor
### Functions #### Move Pointer --- Calculates the world location on the Page Widget based on the UV Coordinates of the Book Actors Book Mesh
**Pin****Direction****Type****Description**
UV CoordinatesInputFVector2D UV Coordinates of the Book Page
Debug TraceInputboolShows a debug trace if true
Return ValueOutputboolreturns true if the operation was successful. Otherwise false.
#### Reset Pointer --- Sets the Interaction Pointer to a safe spot which triggers no interaction
**Pin****Direction****Type****Description**
Debug TraceInputboolShows a debug trace if true
Return ValueOutputboolreturns true if the operation was successful. Otherwise false.
#### Get Interaction Component --- returns the Widget Interaction Component. Can be used to do further interaction with the widget such as send keys etc.
**Pin****Direction****Type****Description**
Return ValueOutputUWidgetInteractionComponent
# UBookMenuData ### Properties
**Property Name****Type****Access****Description**
SkeletalMeshUSkeletalMeshEditAnywhereThe Skeletal Mesh to be set after Begin Play
AnimInstanceClassTSubclassOf<UBookMenuAnimInstance>EditAnywhereThe Animation Blueprint class to be set after Begin Play
PageMaterialIndexMappingFPageMaterialIndexMappingEditAnywhereMapping that tells us which Material Index of the Skeletal Mesh shall be used for which Page
DefaultPageSectionFPageSectionDataStructEditAnywhere, BlueprintReadWriteThe Default Page Section to be used if no concrete Page Section is defined
PageSectionsTArray<FPageSectionDataStruct>EditAnywhere, BlueprintReadWriteList of Page Sections to be used inside the Book Menu Actor
CoverMaterialUMaterialInterfaceEditAnywhere, BlueprintReadWriteMaterial for the Cover
bBookBeginsPlayOpenboolEditAnywhere, BlueprintReadWriteIf the book shall begin play in an open state or closed state
StartPageSectionint32EditAnywhere, BlueprintReadWriteIf the book shall begin play in an open state, this is the page section to open the book at. Can also be accessed by the Book Menu Actor to handle respective behavior.
DrawSizeFVector2DEditDefaultsOnlyDraw Size of the Render Targets and the Widgets. Used to set the Draw Size on all involved Actors and components
RedrawTime (Release 1.4+)floatEditDefaultsOnlyTime between redraws. if 0 we would redraw every frame
### Functions No functions # UBookMenuAnimInstance ### Properties
**Property Name****Type****Access****Description**
BookMenuActorABookMenuActorBlueprintReadOnlyThe Owning Book Menu Actor
PageSectionsTMap<int32,FPageSectionDataStruct>BlueprintReadOnlyList of all available Page Sections of the current book
PageTextureAUTextureRenderTarget2DBlueprintReadWriteTexture Render Target of the page one. Left side.
PageTextureBUTextureRenderTarget2DBlueprintReadWriteTexture Render Target of the page two. Right side.
PageTextureCUTextureRenderTarget2DBlueprintReadWriteTexture Render Target of the page three. Backside of page two.
PageTextureDUTextureRenderTarget2DBlueprintReadWriteTexture Render Target of the page four. Backside of page one.
MaterialPageAUMaterialInstanceDynamicBlueprintReadWriteDynamic Material Instance of page one. Must have a Texture Parameter called BC
MaterialPageBUMaterialInstanceDynamicBlueprintReadWriteDynamic Material Instance of page two. Must have a Texture Parameter called BC
MaterialPageCUMaterialInstanceDynamicBlueprintReadWriteDynamic Material Instance of page three. Must have a Texture Parameter called BC
MaterialPageDUMaterialInstanceDynamicBlueprintReadWriteDynamic Material Instance of page four. Must have a Texture Parameter called BC
MaterialCoverUMaterialInstanceDynamicBlueprintReadWriteDynamic Material Instance of The Cover.
PageSectionAIndexint32BlueprintReadOnlyPage Section Index for Pages one and two
PageSectionBIndexint32BlueprintReadOnlyPage Section Index for Pages three and four
DefaultPageSectionFPageSectionDataStructBlueprintReadOnlyThe Default Page Section in case there is no defined page section.
CurrentPageSectionIndexint32BlueprintReadOnlyThe Current Page Section Index to be displayed on page one and two
CurrentPageIndexint32BlueprintReadOnlyThe current Page the Interaction point on. Can be either the Left or the Right Page.
PendingPageSectionIndexint32BlueprintReadOnlyThe Page Section Index that is pending while switching pages.
DrawSizeFVector2DBlueprintReadOnlyThe Draw Size of the render targets. Must match the Widget Component Draw Size of the Book Interaction Actor.
bBookIsOpenboolEditAnywhere, BlueprintReadOnlyIndicates if the book is or shall be in an opened state
bBookShouldOpenboolBlueprintReadWriteIndicates if the book should open
bBookShouldCloseboolBlueprintReadWriteIndicates if the book should close
bBookShouldSetKeyboardFocusboolBlueprintReadOnlyIndicates if KeyboardFocus is pending
### Functions #### Set Page Sections --- Sets or replaces the current list of Page sections
**Pin****Direction****Type****Description**
InPageSectionsInputTArray<FPageSectionDataStruct>List of Page Sections to be set.
#### Init --- Method to Initialize the Animation Instance and set configurations such as Book Data.
**Pin****Direction****Type****Description**
InDataInputUBookMenuDataThe Book Menu Data
InBookMenuActorInoutABookMenuActorThe Book Menu Actor
#### Jump to Page Section --- Determines if a forward or backward page turn need to be performed based on the current page section index.
**Pin****Direction****Type****Description**
SectionIndexInputint32the index of the Page Section to be displayed
#### Open Book At --- If the book is closed, this triggers the open book animation and upfront sets the correct section to display.
**Pin****Direction****Type****Description**
SectionIndexInputint32The Page Section Index to be displayed while opening the book
#### Close Book --- Triggers the Close Book animation #### Play Page Turn Forward Anim --- 34yv0-ma Method to be overwritten in the Anim Blueprint. Shall start the Page Turn forward animation. #### Play Page Turn Reverse Anim --- Method to be overwritten in the Anim Blueprint. Shall start the Page Turn backward animation. #### Play Open Book Anim --- 5kdaq6c5 Method to be overwritten in the Anim Blueprint. Shall start the Open Book animation. #### Play Close Book Anim --- Method to be overwritten in the Anim Blueprint. Shall start the Close Book animation. #### Play Idle Book Anim --- Method to be overwritten in the Anim Blueprint. Shall start the Idle animation. #### On Page Turn Anim End --- If the book is closed, this triggers the open book animation and upfront sets the correct section to display.
**Pin****Direction****Type****Description**
IsTurnForwardInputboolIndicates if a page forward (true) or a page backward (false) animation was executed.
#### On Book Open Anim End --- Method to be called at the end of the Open Book Animation. You want to use Anim Notifies to find out when to call this Method. #### On Book Close Anim End --- Method to be called at the end of the Close Book Animation. You want to use Anim Notifies to find out when to call this Method. #### On Book Idle Anim End --- Method to be called at the end of the Idle Book Animation. e.g. to restart the Idle animation. You want to use Anim Notifies to find out when to call this Method. #### On Paused --- Called when the Anim Blueprint gets Paused to do some "pausing" stuff in the Blueprint #### On Resumed --- Called when the Anim Blueprint gets Resumed to do some "resuming" stuff in the Blueprint # UBookMenuComponent ### Properties
**Property Name****Type****Access****Description**
BookMenuActorABookMenuActorVisibleAnywhere, BlueprintReadOnlyThe spawned Book Menu Actor
BookMenuDataUBookMenuDataVisibleAnywhere, BlueprintReadOnlyThe Book Menu Data to initialize the spawned Book Menu Actor
BookMenuActorClassTSubclassOf<ABookMenuActor>VisibleAnywhere, BlueprintReadOnlyThe Class of the Book Menu Actor to be spawned at Begin Play
### Functions #### Register Interaction Component --- Calculates the world location on the Page Widget based on the UV Coordinates of the Book Actors Book Mesh
**Pin****Direction****Type****Description**
In Interaction ComponentInput
#### #### Register Interaction Actor --- Calculates the world location on the Page Widget based on the UV Coordinates of the Book Actors Book Mesh
**Pin****Direction****Type****Description**
In Interaction ActorInput
#### Interact --- Performs a Line Trace based on the Start and End Parameters and moves the Widget Interaction pointer of the Book Menu Interaction Actor if it is set. Also tells the Animation Blueprint which page was traced to.
**Pin****Direction****Type****Description**
StartInputFVectorStart of the Line Trace
EndInputFVectorEnd of the Line Trace
Debug TraceInputboolShows a debug trace if true.
Trace ChannelInputECollisionChannelThe Collision Channel to be used for the line trace.
SuccessOutputEXECIndicates if the Interaction was executed successfully
FailedOutputEXECIndicates if the Interaction was not executed successfully
Return ValueOutputboolreturns true if the operation was successful. Otherwise false
#### Interact Ext --- Performs a Line Trace based on the Start and End Parameters and moves the Widget Interaction pointer of the Book Menu Interaction Actor if it is set. Also tells the Animation Blueprint which page was traced to.
**Pin****Direction****Type****Description**
StartInputFVectorStart of the Line Trace
EndInputFVectorEnd of the Line Trace
Out UV CoordinatesOutputFVector2dThe UV Coordinate of the trace page
Debug TraceInputboolShows a debug trace if true.
Trace ChannelInputECollisionChannelThe Collision Channel to be used for the line trace.
SuccessOutputEXECIndicates if the Interaction was executed successfully
FailedOutputEXECIndicates if the Interaction was not executed successfully
Return ValueOutputboolreturns true if the operation was successful. Otherwise false
# UBookMenuInteractionComponent ### Properties
**Property Name****Type****Access****Description**
BookMenuInteractionActorClassTSubclassOf<ABookMenuInteractionActor>EditAnywhereThe Class of the Book Menu Interaction Actor to be spawned at Begin Play
InteractionActorABookMenuInteractionActorBlueprintReadOnlyThe spawned Book Menu Interaction Actor
### Functions #### Get Widget Interaction Component --- returns the Widget Interaction Component
**Pin****Direction****Type****Description**
Return ValueOutputUWidgetInteractionComponent
# UBookMenuStatics ### Properties The static Blueprint Function Library does not define any properties. ### Functions #### Create Mouse Trace Parameters --- **Description** Method to translate the mouse position into trace parameters such as start and end
**Pin****Direction****Type****Description**
Player ControllerInputAPlayerControllerThe Player controller
Trace DistanceInputfloatThe distance (length) used to perform the trace
SuccessOutputEXECIndicates if the operation was successful
FailedOutputEXECIndicates if the operation was failed
Out StartOutputFVectorThe resulting Start Coordinate of the Trace Parameters
Out EndOutputFVectorhe resulting End Coordinate of the Trace Parameters
#### Move Widget Interaction Pointer --- **Description** Calculates the world location on the Page Widget based on the UV Coordinates of the Book Actors Book Mesh
**Pin****Direction****Type****Description**
In Widget Interaction ComponentInputUWidgetInteractionComponentThe Widget Interaction Component that shall be influenced
In Widget ComponentInputUWidgetComponentThe Widget Component the Pointer shall be moved on
In Reference RotationInputFRotatorA reference rotation in order to do some relative calculations. e.g. the World Rotation of the Book Interaction Actor.
UV CoordinatesInputFVector2DUV Coordinates to be translated onto the Widget
Debug TraceInputboolshows a debug trace if true.
Return ValueOutputboolreturns true if the operation was successful. Otherwise false.
#### Book Uv Trace --- **Description** Creates a trace based on the given collision channel. If a Book Men uActor was hit the Method determines if the book was hit from the front and tries to determine the current page and the UV Coordinates. This requires the Project Settings to be set to use the generation of UV coordinates from hit results.
**Pin****Direction****Type****Description**
Book Menu ActorInputABookMenuActorThe Book Menu Actor we ar looking for
StartInputFVectorStart of the Trace
EndInputFVectorEnd of the Trace
Debug TraceInputboolshows a debug trace if true
Trace ChannelInputECollisionChannelThe Collision Channel to be used for the Trace
Out UV CoordinatesOutputFVector2DThe found UV Coordinates
Out Page IndexOutputint32The found page index 0 = Left ; 1 = Right
Return ValueOutputboolreturns true if the operation was successful. Otherwise false.
#### Get Local Player Controller --- **Description:** Method to get the First local Player Controller based on the World Context #### Create Texture Render Target 2D --- **Description** Creates a new Render Target with the specified parameters
**Parameter****Direction****Type****Description**
Draw SizeInputFVector2DThe DrawSize of the Render Target
FilterInputTextureFilterThe Texture Filter to be applied
Use Gamma CorrectionInputboolUses Gamma Correction if true
Return ValueOutputUTextureRenderTarget2Dreturns the created Render Target
#### #### Draw UserWidget to Render Target 2D --- **Description** Method to render a UserWidget onto a TextureRenderTarget2D
**Parameter****Direction****Type****Description**
User WidgetInputUUserWidgetThe UserWidget to be rendered
Render TargetInputUTextureRenderTarget2DThe Target to be rendered on
Draw SizeInputFVector2DThe DrawSize of the Render Target
Delta TimeInputfloatDelta time
Use Gamma CorrectionInputboolUses Gamma Correction if true
# UBookPageWidget ### Properties
**Property Name****Type****Access****Description**
BookMenuActorABookMenuActorEditAnywhereThe Owning Book Menu Actor of the widget. Can be used to control the Book Menu actor from the widget
PageSectionIndexint32VisibleAnywhere, BlueprintReadOnlyThe page section index of this widget. Can be used for navigation.
PageIndexint32VisibleAnywhere, BlueprintReadOnlyThe page index. 0 = Left page, 1 = Right page
### Functions #### Init --- Method to initialize the most important data in the Widget
**Pin****Direction****Type****Description**
InBookMenuActorInputABookMenuActorThe Owning Book Menu Actor of the widget. Can be used to control the Book Menu actor from the widget
InPageSectionIndexInputint32The page section index of this widget. Can be used for navigation.
InPageIndexInputint32The page index. 0 = Left page, 1 = Right page
#### #### OnSetKeyboardFocus --- Use this event to handle custom code after the widget received keyboard focus. This function is the counter part the SetKeyBoardFocus Function of the BookMenuActor.