x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

StaticMeshComponent Added in C++ Only Shows After Clicking Compile in BP Even Tho Compile is Green CheckMark

Dear Friends at Epic,

I am loving UE4, thanks so much for making it!


I hope you dont see what I am writing here as nit-picky, as for lack of understanding of this process I am about to describe I spent about 3 hours debugging the issue.

And so I feel it is my duty as Rocket Beta tester to explain this issue in-depth


Context

I have been adding many many components to my character via the c++, perhaps not the best route but it was working for me so I just kept at it.

I ran into the following issue

  • I would add a new component via the c++ code, code posted below, having retrieved the asset path from within the editor

    //ShoulderL static ConstructorHelpers::FObjectFinder StaticMeshOb_ThighPadL(TEXT("StaticMesh'/Game/thighpad.thighpad'")); Asset_RoyalThighPadL = StaticMeshOb_ThighPadL.Object;

       //Was Sword Asset Found?
         if (Asset_RoyalThighPadL != NULL)
         {
             
             //create new object
             RoyalThighPadL = PCIP.CreateDefaultSubobject < UStaticMeshComponent > (this, TEXT("TheRoyalThighPadL"));
             Components.Add(RoyalThighPadL);
             
             //Set to Asset
             RoyalThighPadL->SetStaticMesh(Asset_RoyalThighPadL);
         
             //RoyalSword->AttachParent = CapsuleComponent;
             RoyalThighPadL->bOwnerNoSee = false;
             RoyalThighPadL->bCastDynamicShadow = false;
             RoyalThighPadL->CastShadow = false;
             RoyalThighPadL->BodyInstance.SetMovementChannel(ECC_Dynamic);
             RoyalThighPadL->BodyInstance.SetCollisionEnabled(ECollisionEnabled::NoCollision);
             
             //socket name on character mesh
             RoyalThighPadL->AttachTo(Mesh, FName(TEXT("ThighPadLeft"))); 
             
             RoyalThighPadL->SetHiddenInGame(false);
             
         } // asset not null
    
    
  • I would compile my code and go in game, and component would NOT show up

  • I would go into editor and look at my blueprint component page for my character, and the component was listed and


most importantly

the Compile button had the green arrow telling me all was well (not the orange check mark indicating recompile required

alt text


After 3 hours puzzling over this

I decided to just click the recompile button anyway, even though it was already green checkmark


to my delight

the situation immediately changed, and the tooltip saying MISSING went away and the name of the component appeared (I did not notice it was missing at first)

alt text

annnnd

best of all

then the component would show up in game finally (after 3 hours of puzzling absence)!

alt text


Reproducing

To reproduce this you'd have to add a static mesh component , or skeletal, entirely through code and the only compile the C++

then you'd find the component not showing in game, probably, and need to recompile the already green check marked BP

I have reliably reproduced this issue for every component I've added via the c++ to my character ever since the first 12 or so.


The Odd Thing

This behavior only started after about 10 components had been set up in the C++ blueprint

So again I know it might sound nitpicky, but it cost me 3 hours and I thought you might like to know about it as a polishing possibility


My Suggestions

  1. Is there some way to auto-recompile the Blueprint when editor is loaded and it is suspected that a new component was added strictly through code

  2. could that little tooltip, which obviously knows something is "MISSING", could that tooltip's logic tell the Green Check Mark compile button about it, so that it turns orange question mark to indicate recompile necessary?


    My Point

I only avoided clicking the recompile button for 3 hours because it was showing green checkmark

orange question mark would have told me immediately what was going on

Any questions about my scenario or suggestions please let me know :)

Rama

Product Version: Not Selected
Tags:
more ▼

asked Mar 11 '14 at 02:17 AM in C++ Programming

avatar image

ue4-archive ♦♦ STAFF
50k 3669 1999 9123

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

1 answer: sort voted first

Hey Nathan,

I was able to get this in Rocket as well. I've let the team know.

Best regards,

Ryan

more ▼

answered Mar 11 '14 at 02:17 AM

avatar image

ue4-archive ♦♦ STAFF
50k 3669 1999 9123

avatar image ue4-archive ♦♦ STAFF Mar 11 '14 at 02:17 AM

Thanks Ryan!

:)

Rama

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question