#uclass
Explore tagged Tumblr posts
usafphantom2 · 3 years ago
Text
Tumblr media
The left side of the hangar gets more interesting. On the back, Northrop shows the X-47B drone developed as part of the United States Navy's Unmanned Carrier-Launched Airborne Surveillance and Strike (UCLASS) program. In July 2013, the X-47B was the first drone of its kind to demonstrate its ability to land on an aircraft carrier. Northrop Grumman is competing against Lockheed Martin and General Atomics in the MQ-Next program initiated by the U.S. Air Force to replace the MQ-9 Reaper. But currently the X-47B program is officially closed.
9 notes · View notes
gizmologi · 4 years ago
Text
Umma Rilis uClass, Platform E-learning untuk Belajar Agama dengan Tarif Premium
Umma Rilis uClass, tarif mulai Rp30 ribu hingga 300 ribu per kelas online
Pandemi Covid-19 membuka kebiasaan baru di mana banyak hal dilakukan secara daring, termasuk belajar. Bukan cuma pembelajaran jarak jauh yang diterapkan pada pelajar dan mahasiswa, tetapi juga untuk belajar agama. Startup pengembang aplikasi Umma melihat peluang tersebut dengan merilis fitur uClass untuk mempermudah pengguna belajar ilmu agama dari rumah.
Umma sendiri adalah platform komunitas…
View On WordPress
0 notes
nunoxaviermoreira · 7 years ago
Photo
Tumblr media
Southern Railway (SR) Maunsell U Class 31806 Evershot Bank 26/4/18 by Thirty Seven 401 https://flic.kr/p/H9pqh2
0 notes
codehunter · 3 years ago
Text
GeoDjango GEOSException error
Trying to install a GeoDjango on my machine. I'm really new to Python and being brought into a project that has been a very tricky install for the other team members. I installed Python 2.7 and GEOS using brew, and running PSQL 9.2.4 but keep getting this error when I try to get the webserver running:
__import__(name)File "/Users/armynante/Desktop/uclass-files/uclass-env/lib/python2.7/sitepackages/django/contrib/gis/geometry/backend/geos.py", line 1, in <module>from django.contrib.gis.geos import (File "/Users/armynante/Desktop/uclass-files/uclass-env/lib/python2.7/sitepackages/django/contrib/gis/geos/__init__.py", line 6, in <module>from django.contrib.gis.geos.geometry import GEOSGeometry, wkt_regex, hex_regexFile "/Users/armynante/Desktop/uclass-files/uclass-env/lib/python2.7/sitepackages/django/contrib/gis/geos/geometry.py", line 14, in <module>from django.contrib.gis.geos.coordseq import GEOSCoordSeqFile "/Users/armynante/Desktop/uclass-files/uclass-env/lib/python2.7/site-packages/django/contrib/gis/geos/coordseq.py", line 9, in <module>from django.contrib.gis.geos.libgeos import CS_PTRFile "/Users/armynante/Desktop/uclass-files/uclass-env/lib/python2.7/site-packages/django/contrib/gis/geos/libgeos.py", line 119, in <module>_verinfo = geos_version_info()File "/Users/armynante/Desktop/uclass-files/uclass-env/lib/python2.7/sitepackages/django/contrib/gis/geos/libgeos.py", line 115, in geos_version_infoif not m: raise GEOSException('Could not parse version info string "%s"' % ver)django.contrib.gis.geos.error.GEOSException: Could not parse version info string"3.4.2-CAPI-1.8.2 r3921"
Cant seem to find anything relevant to this trace on SO or the web. I think it might be a regex failure? I'm currently trying to reinstall PSQL and GEOS to see if I can get it running.
Here is my requirements file:
django==1.4psycopg2==2.4.4py-bcrypt==0.4python-memcached==1.48south==0.7.3# Debug Toolssqlparse==0.1.3django-debug-toolbar==0.9.1django-devserver==0.3.1# Deploymentfabric==1.4# AWS# boto==2.1.1django-storages==1.1.4django-ses==0.4.1# ECLhttp://packages.elmcitylabs.com/ecl_django-0.5.3.tar.gz#ecl_djangohttp://packages.elmcitylabs.com/ecl_google-0.2.14.tar.gz#ecl_google# https://packages.elmcitylabs.com/ecl_tools-0.3.7.tar.gz#ecl_tools# https://packages.elmcitylabs.com/chargemaster-0.2.19.tar.gz# https://packages.elmcitylabs.com/ecl_facebook-0.3.12.tar.gz#ecl_facebook# https://packages.elmcitylabs.com/ecl_twitter-0.3.3.tar.gz#ecl_twitter# Search#https://github.com/elmcitylabs/django-haystack/tarball/issue-522#django-haystack-e git+https://github.com/toastdriven/django-haystack.git#egg=django-haystackpysolr==2.1.0-beta# whoosh==2.3.2# Misc# PIL# django-shorturls==1.0.1# suds==0.4django-mpttsorl-thumbnailstripepytz==2013b
https://codehunter.cc/a/django/geodjango-geosexception-error
0 notes
bulletinwave · 3 years ago
Text
NEXiLUX Wireless 3 Pro Controller Gamepad for Nintendo Wii U, Gray
NEXiLUX Wireless 3 Pro Controller Gamepad for Nintendo Wii U, Gray
Price: (as of – Details) Bluetooth Wireless connection with Wii U. Region Free Remote, it will work with worldwide Nintendo Wii U Console Integrated rechargable battery with the remote Up to four Controllers can be used at one time Button Base game controller Pro controller for Wii UClassic LayoutAnalog JoysticksAlso available in: Black & White colorsRechargeable via Included USB Cable (Mini USB)
Tumblr media
View On WordPress
0 notes
joezhehuang · 4 years ago
Text
How to navigate UE4 engine source code
Preliminary knowledge:
Understand common UE4 macros: UClass(), UPROPERTY(), UFUNCTION()
Understand common specifiers: BlueprintType, EditAnywhere, VisibleAnywhere, BlueprintCallable
Unreal c++ naming convention: AActor, UActorComponent, TArray
Some c++ features: virtual fucntions, override, inheritance, include header files rules, pointer
I use Visual Studio 2019 and Visual Assit plugin for most of my code navigation and here are some handy shortcut keys:
Alt + O: Toggle between .h and .cpp files
Alt + G: Go to implementation
Alt + Shift + O: Search file in solution
Alt + Shift + S: Search simbol in solution
Side mouse buttons: Jump back and forth to the positon you have visted
Now Visual Assit also provides you with intellisense of UE4 c++ API but it's not free. If you don't want to use it you can still navigate through the code base using Visual Studio's native shortcut:
F12: Go to implementation
Ctrl+K Ctrl O: Toggle header and source file
Ctrl + Shift + F: search for symbol or files, can scope to a specific engine module
Ctrl + -: jump backward
Ctrl + Shift + -: jump forward
Ctrl + Q: Search for a file or a symbol
Ctrl-K Ctrl-K: Set a bookmark
Ctrl-K Ctrl-N or Ctrl-K Ctrl-P: Jump back and forth between bookmarks
Example 1: Find a use case of UE_LOG() in engine code
Hit ctrl + shift + f and type UE_LOG(). You can scope the searching directory to Engine/Runtime to speed up the process. Hit Find All and I got 3816 results. The code snippet I'm showing here is from Actor.cpp which resides in Source/Runtime/Engine/Private
bool AActor::Destroy( bool bNetForce, bool bShouldModifyLevel ) { // It's already pending kill or in DestroyActor(), no need to beat the corpse if (!IsPendingKillPending()) { UWorld* World = GetWorld(); if (World) { World->DestroyActor( this, bNetForce, bShouldModifyLevel ); } else { UE_LOG(LogSpawn, Warning, TEXT("Destroying %s, which doesn't have a valid world pointer"), *GetPathName()); } } return IsPendingKillPending(); }
Example 2: Find a material node in engine code
Still the same workflow but need to use more judgement this time since the results contain all the symbols that contain "WorldPostion" which means it could be a class name, functin name, object name or even comments. I know this material node is a function and should live in a material expression class so I finally found it in Source/Runtime/Engine/Private/Materials/MaterialExpression.cpp
// UMaterialExpressionWorldPosition UMaterialExpressionWorldPosition::UMaterialExpressionWorldPosition(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { #if WITH_EDITORONLY_DATA // Structure to hold one-time initialization struct FConstructorStatics { FText NAME_Coordinates; FConstructorStatics() : NAME_Coordinates(LOCTEXT( "Coordinates", "Coordinates" )) { } }; static FConstructorStatics ConstructorStatics; MenuCategories.Add(ConstructorStatics.NAME_Coordinates); bShaderInputData = true; #endif WorldPositionShaderOffset = WPT_Default; }
Example 3: Find a use case of NewObject() in engine code
Usually the use case of a function can be found in .cpp files because that's where functions are called. After I found the function I can hit F12 to jump to the definition and see what does each parameter mean.
// Note we aren't copying the the RF_ArchetypeObject flag. Also note the result is non-transactional by default. NewActorComp = NewObject( this, TemplateData->ComponentTemplateClass, InName, EObjectFlags(TemplateData->ComponentTemplateFlags) & ~(RF_ArchetypeObject | RF_Transactional | RF_WasLoaded | RF_Public | RF_InheritableComponentTemplate) );
Example 4: Use blueprint to undetstand the code
Here I present you with LineTraceSingleForObjects(), a function with 12 parameters. But by reading the code along with the blueprint node you will have a much esier time understanding what does this functin do.
UFUNCTION(BlueprintCallable, Category="Collision", meta=(bIgnoreSelf="true", WorldContext="WorldContextObject", AutoCreateRefTerm="ActorsToIgnore", DisplayName = "LineTraceForObjects", AdvancedDisplay="TraceColor,TraceHitColor,DrawTime", Keywords="raycast")) static bool LineTraceSingleForObjects( const UObject* WorldContextObject, const FVector Start, const FVector End, const TArray > & ObjectTypes, bool bTraceComplex, const TArray& ActorsToIgnore, EDrawDebugTrace::Type DrawDebugType, FHitResult& OutHit, bool bIgnoreSelf, FLinearColor TraceColor = FLinearColor::Red, FLinearColor TraceHitColor = FLinearColor::Green, float DrawTime = 5.0f );
0 notes
yaziyorsonhavadis · 5 years ago
Text
Çocuklar İçin TikTok' Uygulaması Zigazoo, Android ve iOS İçin Yayınlandı
Tumblr media
'Çocuklar İçin TikTok' Uygulaması Zigazoo, Android ve iOS İçin Yayınlandı
Zak Ringelstein tarafından sunulan çocuklara yönelik TikTok platformu, bugün Android ve iOS için yayınlandı. Birçok ebeveyn gibi Zigagoo kurucusu Zak Ringelstein da çocukların ekran başında geçirdiği süre hakkında endişe duyuyor. Koronavirüs salgını sonucu okulların kapanmasıyla çocuklar uzaktan öğrenme modeline geçtiler. Karantina uygulamasının birçok ülkede uzatılmasıyla beraber artan akıllı cihaz kullanım süresinin öğrenmeye olumsuz etkisi olduğunu düşünen Zak Ringelstein, çocukların kendi tabiriyle dijital diyete girmesi gerektiğini düşünüyor. UClass platformunun da kurucusu olan geliştirici, bu durum sonrasında “Çocuklar için TikTok” olarak açıkladığı Zigazoo uygulamasını tanıttı. Çocukların video temelli alıştırmaları yine video olarak yanıtlayabileceği ve bu cevapları arkadaşlarıyla paylaşabileceği Zigazoo ücretsiz bir uygulama. İçinde, karbonat kullanarak yapay volkan yapmak gibi birçok faydalı içeriği barından uygulamayla okul öncesi çağından ortaokul çağına kadar olan çocuklar hedeflenmiş. Ringelstein, uygulamanın gizliliğini ve çocukların güvenliğini korumak adına platformun öncelikle ebeveynler tarafından kullanılmasını öneriyor. Bununla beraber bir kullanıcının paylaşım ve içeriklerini görebilmeniz için öncelikle o kişiyi arkadaş olarak eklemeniz gerekiyor. Bu yöntemle siber zorbalığın da önlenmesi hedefleniyor.
'İlham kaynağım Susam Sokağı'
Tumblr media
Uygulamayı test ederken çocukların genellikle daha uzun videolar oluşturmayı fakat daha kısa içerikler izlemeyi tercih ettiğini fark eden Ringelstein, uygulamayı buna göre optimize ettiğini de ifade ediyor. Uygulama konusunda Susam Sokağı’ndan ilham aldığını belirten Ringelstein, eğitim ve eğlencenin birlikte olduğu işlerin her zaman başarı elde ettiğini de belirtiyor. Yalnızca bir ay içerisinde Zigazoo sitesinde 100.000 video indirme/yükleme trafiğine ulaşıldı. Zigazoo’nun çocuklara yönelik bir TikTok platformu olduğunu söyleyen Ringelstein, platformun alanında tek olduğunu iddia ediyor. Görsel ve işitsel materyallere dayanan öğrenme sisteminin öğrenciler açısından daha iyi olduğunu ifade eden Zigazoo kurucusu, sitenin amacının tamamıyla çocukların güvenliğini temel olmak koşuluyla onlara öğrenme ve eğlence fırsatı sunmak olduğunu sözlerine ekliyor. Uygulama şu an için belli bir bölgede kullanılabiliyor ve Türkiye bu bölgeler arasında yer almıyor. Münasıran Webtekno | Teknoloji Haberleri ve İncelemeleri Otomatik Alınan Haber Kaynak linki Tıklayın Haber Kaynağına gidin var reklamstore_region_id = 540842; #demirose #facebook #seyhangüler #google #amazon #weather #gmail Read the full article
0 notes
un-enfant-immature · 5 years ago
Text
Zigazoo launches to be a ‘TikTok’ for kids, surpasses 100,000 uploads and downloads
Like many parents, Zigazoo founder Zak Ringelstein worries about his children’s screen time. His worries only grew when COVID-19 led to school shutdowns and kids came home to a world of remote learning. Now, as lockdowns extend, Ringelstein is learning to embrace screen time as a way to sneak education and entertainment into his kids’ digital diet.
Ringelstein, the former founder of UClass (acquired in 2015), launched Zigazoo, which he describes as a “TikTok for kids.”
Zigazoo is a free app where kids can answer short video-based exercises that they can answer through video and share responses with friends. Exercises range from how to create a baking soda volcano to making fractions out of food, and targets kids from preschool to middle school.
To ensure the app’s privacy, Ringelstein says that parents should be the primary users of the app. Users have to accept a friend request in order for their content to be seen, a move Ringelstein sees as key to avoiding bad actors or potential bullying.
Additionally, Zigazoo uses an API to moderate content.
Ringelstein’s first users were his own kids, a test he says was very rewarding.
Ringelstein’s son participating in a Zigazoo prompt.
The testing process made him realize that kids like to create longer videos, and watch smaller videos, so Zigazoo is figuring out an attention span for viewing. Currently, average time on site per user has gone up to 19 minutes and 43 seconds per day.
Ringelstein pointed to “Sesame Street” as his inspiration. Mixing education and entertainment has proven successful for a number of businesses. Kids were drooling in front of the screen watching the characters of “Sesame Street,” spending mindless hours staring at the television set, he recalls.
“The creators of Sesame Street…used the medium to educate kids and entertain them at the same time,” Ringelstein said. Vox described “Sesame Street” as a “bedrock for educational television,” bringing loved characters to the table with former First Lady Michelle Obama or using a silly song to teach kids about recycling.
In one month, Zigazoo has had 100,000 videos uploaded to and downloaded from its site.
While Zigazoo claims to be a “TikTok” for kids, it is competing with the platform itself. Some teachers have turned to TikTok to create lessons on solar cell systems and experiments.
Others are putting together guides of “kid friendly” TikTok creators. And TikTok itself recently let parents set restrictions on content, DMs and screen time for their kids.
Video-based learning is a better way for students to engage actively in an educational activity, versus passively reading a paragraph from a Google doc, according to Ringelstein.
Combining education with entertainment comes with a set of risks around child safety. Last March, The New York Times wrote a story about how “kidfluencers” has grown as a concept, where parents put their kids online, touting brands, and make money off of it. The resulting ethical concerns are why Ringelstein is confident that Zigazoo is needed.
“Zigazoo is a not a kid play date smack dab in the middle of an adult party like YouTube and TikTok, it is a universe tailor-made for kid safety, learning and enjoyment,” he said.
Ringelstein sees Zigazoo’s “friend” versus “follow” feature as key to the safety of kids: Unlike TikTok, where there is a public feed and users can follow everyone, Zigazoo requires users to opt-in to being followed, similar to Facebook.
The partnerships will allow Zigazoo to post verified content using favorite and well-known characters to teach kids about the subjects they care about. And in a world where digital detoxes are no longer a reality, a smarter screen-time activity seems much needed.
Recently, Zigazoo partnered with The American Federation of Teachers for a capstone project directed at millions of K-12 students. Students are invited to submit a video using Zigazoo to encapsulate their learning experience over the past school year, which AFT says is a “far better way to sum up learning than a high-stakes test.”
This summer Ringelstein is launching “Zigazoo Channels” with a select group of major children’s entertainment companies, podcasts, museums, libraries, zoos, social media influencers and more.
0 notes
dizzedcom · 5 years ago
Text
Zigazoo launches to be a ‘TikTok’ for kids, surpasses 100,000 uploads and downloads
Zigazoo launches to be a ‘TikTok’ for kids, surpasses 100,000 uploads and downloads
Tumblr media
Like many parents, Zigazoo founder Zak Ringelstein worries about his children’s screen time. His worries only grew when COVID-19 led to school shutdowns and kids came home to a world of remote learning. Now, as lockdowns extend, Ringelstein is learning to embrace screen time as a way to sneak education and entertainment into his kids’ digital diet.
Ringelstein, the former founder of UClass (acqui…
View On WordPress
0 notes
fy-onf · 7 years ago
Photo
Tumblr media Tumblr media
© UCLASS | do not edit
18 notes · View notes
iyarpage · 7 years ago
Text
Unreal Engine 4 C++ Tutorial
Blueprints is a very popular way to create gameplay in Unreal Engine 4. However, if you’re a long-time programmer and prefer sticking to code, C++ is for you! Using C++, you can also make changes to the engine and also make your own plugins.
In this tutorial, you will learn how to:
Create C++ classes
Add components and make them visible to Blueprints
Create a Blueprint class based on a C++ class
Add variables and make them editable in Blueprints
Bind axis and action mappings to functions
Override C++ functions in Blueprints
Bind an overlap event to a function
Please note that this is not a tutorial on learning C++. Instead, this tutorial will focus on working with C++ in the context of Unreal Engine.
Note: This tutorial assumes you already know the basics of using Unreal Engine. If you are new to Unreal Engine, you should go through our 10-part Unreal Engine for Beginners tutorial series first.
Getting Started
If you haven’t already, you will need to install Visual Studio. Follow Epic’s official guide on setting up Visual Studio for Unreal Engine 4. (Although you can use alternative IDEs, this tutorial will use Visual Studio as Unreal is already designed to work with it.)
Afterwards, download the starter project and unzip it. Navigate to the project folder and open CoinCollector.uproject. If it asks you to rebuild modules, click Yes.
Tumblr media
Once that is done, you will see the following scene:
Tumblr media
In this tutorial, you will create a ball that the player will control to collect coins. In previous tutorials, you have been creating player-controlled characters using Blueprints. For this tutorial, you will create one using C++.
Creating a C++ Class
To create a C++ class, go to the Content Browser and select Add New\New C++ Class.
Tumblr media
This will bring up the C++ Class Wizard. First, you need to select which class to inherit from. Since the class needs to be player-controlled, you will need a Pawn. Select Pawn and click Next.
Tumblr media
In the next screen, you can specify the name and path for your .h and .cpp files. Change Name to BasePlayer and then click Create Class.
Tumblr media
This will create your files and then compile your project. After compiling, Unreal will open Visual Studio. If BasePlayer.cpp and BasePlayer.h are not open, go to the Solution Explorer and open them. You can find them under Games\CoinCollector\Source\CoinCollector.
Tumblr media
Before we move on, you should know about Unreal’s reflection system. This system powers various parts of the engine such as the Details panel and garbage collection. When you create a class using the C++ Class Wizard, Unreal will put three lines into your header:
#include "TypeName.generated.h"
UCLASS()
GENERATED_BODY()
Unreal requires these lines in order for a class to be visible to the reflection system. If this sounds confusing, don’t worry. Just know that the reflection system will allow you to do things such as expose functions and variables to Blueprints and the editor.
You’ll also notice that your class is named ABasePlayer instead of BasePlayer. When creating an actor-type class, Unreal will prefix the class name with A (for actor). The reflection system requires classes to have the appropriate prefixes in order to work. You can read about the other prefixes in Epic’s Coding Standard.
Note: Prefixes will not display within the editor. For example, if you wanted to create a variable of type ABasePlayer, you would search for BasePlayer.
That’s all you need to know about the reflection system for now. Next, you will add a player model and camera. To do this, you need to use components.
Adding Components
For the player Pawn, you will add three components:
Static Mesh: This will allow you to select a mesh to represent the player
Spring Arm: This component operates like a camera boom. One end will be attached to the mesh and the camera will be attached to the other end.
Camera: Whatever this camera sees is what Unreal will display to the player
First, you need to include headers for each type of component. Open BasePlayer.h and then add the following lines above #include "BasePlayer.generated.h":
#include "Components/StaticMeshComponent.h" #include "GameFramework/SpringArmComponent.h" #include "Camera/CameraComponent.h"
Note: It is important that the .generated.h file is the last include. In this case, your includes should look like this:
#include "CoreMinimal.h" #include "GameFramework/Pawn.h" #include "Components/StaticMeshComponent.h" #include "GameFramework/SpringArmComponent.h" #include "Camera/CameraComponent.h" #include "BasePlayer.generated.h"
If it is not the last include, you will get an error when compiling.
Now you need to declare variables for each component. Add the following lines after SetupPlayerInputComponent():
UStaticMeshComponent* Mesh; USpringArmComponent* SpringArm; UCameraComponent* Camera;
The name you use here will be the name of the component in the editor. In this case, the components will display as Mesh, SpringArm and Camera.
Next, you need to make each variable visible to the reflection system. To do this, add UPROPERTY() above each variable. Your code should now look like this:
UPROPERTY() UStaticMeshComponent* Mesh; UPROPERTY() USpringArmComponent* SpringArm; UPROPERTY() UCameraComponent* Camera;
You can also add specifiers to UPROPERTY(). These will control how the variable behaves with various aspects of the engine.
Add VisibleAnywhere and BlueprintReadOnly inside the brackets for each UPROPERTY(). Separate each specifier with a comma.
UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
VisibleAnywhere will allow each component to be visible within the editor (including Blueprints).
BlueprintReadOnly will allow you to get a reference to the component using Blueprint nodes. However, it will not allow you to set the component. It is important for components to be read-only because their variables are pointers. You do not want to allow users to set this otherwise they could point to a random location in memory. Note that BlueprintReadOnly will still allow you to set variables inside of the component, which is the desired behavior.
Note: For non-pointer variables (int, float, boolean etc.), use EditAnywhere and BlueprintReadWrite instead.
Now that you have variables for each component, you need to initialize them. To do this, you must create them within the constructor.
Initializing Components
To create components, you can use CreateDefaultSubobject<Type>("InternalName"). Open BasePlayer.cpp and add the following lines inside ABasePlayer():
Mesh = CreateDefaultSubobject<UStaticMeshComponent>("Mesh"); SpringArm = CreateDefaultSubobject<USpringArmComponent>("SpringArm"); Camera = CreateDefaultSubobject<UCameraComponent>("Camera");
This will create a component of each type. It will then assign their memory address to the provided variable. The string argument will be the component’s internal name used by the engine (not the display name although they are the same in this case).
Next you need to set up the hierarchy (which component is the root and so on). Add the following after the previous code:
RootComponent = Mesh; SpringArm->SetupAttachment(Mesh); Camera->SetupAttachment(SpringArm);
The first line will make Mesh the root component. The second line will attach SpringArm to Mesh. Finally, the third line will attach Camera to SpringArm.
Now that the component code is complete, you need to compile. Perform one of the following methods to compile:
In Visual Studio, select Build\Build Solution
In Unreal Engine, click Compile in the Toolbar
Next, you need to set which mesh to use and the rotation of the spring arm. It is advisable to do this in Blueprints because you do not want to hard-code asset paths in C++. For example, in C++, you would need to do something like this to set a static mesh:
static ConstructorHelpers::FObjectFinder<UStaticMesh> MeshToUse(TEXT("StaticMesh'/Game/MyMesh.MyMesh"); MeshComponent->SetStaticMesh(MeshToUse.Object);
However, in Blueprints, you can just select a mesh from a drop-down list.
Tumblr media
If you were to move the asset to another folder, your Blueprints wouldn’t break. However, in C++, you would have to change every reference to that asset.
To set the mesh and spring arm rotation within Blueprints, you will need to create a Blueprint based on BasePlayer.
Note: It is common practice to create base classes in C++ and then create a Blueprint subclass. This makes it easier for roles such as artists and designers to edit classes.
Subclassing C++ Classes
In Unreal Engine, navigate to the Blueprints folder and create a Blueprint Class. Expand the All Classes section and search for BasePlayer. Select BasePlayer and then click Select.
Tumblr media
Rename it to BP_Player and then open it.
First, you will set the mesh. Select the Mesh component and set its Static Mesh to SM_Sphere.
Tumblr media
Next, you need to set the spring arm’s rotation and length. This will be a top-down game so the camera needs to be above the player.
Select the SpringArm component and set Rotation to (0, -50, 0). This will rotate the spring arm so that the camera points down towards the mesh.
Tumblr media
Since the spring arm is a child of the mesh, it will start spinning when the ball starts spinning.
Tumblr media
To fix this, you need to set the rotation of the spring arm to be absolute. Click the arrow next to Rotation and select World.
Tumblr media
Afterwards, set Target Arm Length to 1000. This will place the camera 1000 units away from the mesh.
Tumblr media
Next, you need to set the Default Pawn Class in order to use your Pawn. Click Compile and then go back to the editor. Open the World Settings and set Default Pawn to BP_Player.
Tumblr media
Press Play to see your Pawn in the game.
Tumblr media
The next step is to add functions so the player can move around.
Implementing Movement
Instead of adding an offset to move around, you will move around using physics! First, you need a variable to indicate how much force to apply to the ball.
Go back to Visual Studio and open BasePlayer.h. Add the following after the component variables:
UPROPERTY(EditAnywhere, BlueprintReadWrite) float MovementForce;
EditAnywhere allows you to edit MovementForce in the Details panel. BlueprintReadWrite will allow you to set and read MovementForce using Blueprint nodes.
Next, you will create two functions. One for moving up and down and another for moving left and right.
Creating Movement Functions
Add the following function declarations below MovementForce:
void MoveUp(float Value); void MoveRight(float Value);
Later on, you will bind axis mapppings to these functions. By doing this, axis mappings will be able to pass in their scale (which is why the functions need the float Value parameter).
Note: If you are not familiar with axis mappings and scale, check out our Blueprints tutorial.
Now, you need to create an implementation for each function. Open BasePlayer.cpp and add the following at the end of the file:
void ABasePlayer::MoveUp(float Value) { FVector ForceToAdd = FVector(1, 0, 0) * MovementForce * Value; Mesh->AddForce(ForceToAdd); } void ABasePlayer::MoveRight(float Value) { FVector ForceToAdd = FVector(0, 1, 0) * MovementForce * Value; Mesh->AddForce(ForceToAdd); }
MoveUp() will add a physics force on the X-axis to Mesh. The strength of the force is provided by MovementForce. By multiplying the result by Value (the axis mapping scale), the mesh can move in either the positive or negative directions.
MoveRight() does the same as MoveUp() but on the Y-axis.
Now that the movement functions are complete, you need to bind the axis mappings to them.
Binding Axis Mappings to Functions
For the sake of simplicity, I have already created the axis mappings for you. You can find them in the Project Settings under Input.
Tumblr media
Note: Axis mappings do not need to have the same name as the function you are binding them to.
Add the following inside SetupPlayerInputComponent():
InputComponent->BindAxis("MoveUp", this, &ABasePlayer::MoveUp); InputComponent->BindAxis("MoveRight", this, &ABasePlayer::MoveRight);
This will bind the MoveUp and MoveRight axis mappings to MoveUp() and MoveRight().
That’s it for the movement functions. Next, you need to enable physics on the Mesh component.
Enabling Physics
Add the following lines inside ABasePlayer():
Mesh->SetSimulatePhysics(true); MovementForce = 100000;
The first line will allow physics forces to affect Mesh. The second line will set MovementForce to 100,000. This means 100,000 units of force will be added to the ball when moving. By default, physics objects weigh about 110 kilograms so you need a lot of force to move them!
If you’ve created a subclass, some properties won’t change even if you’ve changed it within the base class. In this case, BP_Player won’t have Simulate Physics enabled. However, any subclasses you create now will have it enabled by default.
Compile and then go back to Unreal Engine. Open BP_Player and select the Mesh component. Afterwards, enable Simulate Physics.
Tumblr media
Click Compile and then press Play. Use W, A, S and D to move around.
Tumblr media
Next, you will declare a C++ function that you can implement using Blueprints. This allows designers to create functionality without having to use C++. To learn this, you will create a jump function.
Creating the Jump Function
First you need to bind the jump mapping to a function. In this tutorial, jump is set to space bar.
Tumblr media
Go back to Visual Studio and open BasePlayer.h. Add the following below MoveRight():
UPROPERTY(EditAnywhere, BlueprintReadWrite) float JumpImpulse; UFUNCTION(BlueprintImplementableEvent) void Jump();
First is a float variable called JumpImpulse. You will use this when implementing the jump. It uses EditAnywhere to make it editable within the editor. It also uses BlueprintReadWrite so you can read and write it using Blueprint nodes.
Next is the jump function. UFUNCTION() will make Jump() visible to the reflection system. BlueprintImplementableEvent will allow Blueprints to implement Jump(). If there is no implementation, any calls to Jump() will do nothing.
Note: If you want to provide a default implementation in C++, use BlueprintNativeEvent instead. You’ll learn how to do this later on in the tutorial.
Since Jump is an action mapping, the method to bind it is slightly different. Close BasePlayer.h and then open BasePlayer.cpp. Add the following inside SetupPlayerInputComponent():
InputComponent->BindAction("Jump", IE_Pressed, this, &ABasePlayer::Jump);
This will bind the Jump mapping to Jump(). It will only execute when you press the jump key. If you want it to execute when the key is released, use IE_Released instead.
Up next is overriding Jump() in Blueprints.
Overriding Functions in Blueprints
Compile and then close BasePlayer.cpp. Afterwards, go back to Unreal Engine and open BP_Player. Go to the My Blueprints panel and hover over Functions to display the Override drop-down. Click it and select Jump. This will create an Event Jump.
Tumblr media
Note: An override will be an event if there is no return type. If there is a return type, it will be a function.
Next, create the following setup:
Tumblr media
This will add an impulse (JumpImpulse) on the Z-axis to Mesh. Note that in this implementation, the player can jump indefinitely.
Next, you need to set the value of JumpImpulse. Click Class Defaults in the Toolbar and then go to the Details panel. Set JumpImpulse to 100000.
Tumblr media
Click Compile and then close BP_Player. Press Play and jump around using space bar.
Tumblr media
In the next section, you will make the coins disappear when the player touches them.
Collecting Coins
To handle overlaps, you need to bind a function to an overlap event. To do this, the function must meet two requirements. The first is that the function must have the UFUNCTION() macro. The second requirement is the function must have the correct signature. In this tutorial, you will use the OnActorBeginOverlap event. This event requires a function to have the following signature:
FunctionName(AActor* OverlappedActor, AActor* OtherActor)
Go back to Visual Studio and open BaseCoin.h. Add the following below PlayCustomDeath():
UFUNCTION() void OnOverlap(AActor* OverlappedActor, AActor* OtherActor);
After binding, OnOverlap() will execute when the coin overlaps another actor. OverlappedActor will be the coin and OtherActor will be the other actor.
Next, you need to implement OnOverlap().
Implementing Overlaps
Open BaseCoin.cpp and add the following at the end of the file:
void ABaseCoin::OnOverlap(AActor* OverlappedActor, AActor* OtherActor) { }
Since you only want to detect overlaps with the player, you need to cast OtherActor to ABasePlayer. Before you do the cast, you need to include the header for ABasePlayer. Add the following below #include "BaseCoin.h":
#include "BasePlayer.h"
Now you need to perform the cast. In Unreal Engine, you can cast like this:
Cast<TypeToCastTo>(ObjectToCast);
If the cast is successful, it will return a pointer to ObjectToCast. If unsuccessful, it will return nullptr. By checking if the result is nullptr, you can determine if the object was of the correct type.
Add the following inside OnOverlap():
if (Cast<ABasePlayer>(OtherActor) != nullptr) { Destroy(); }
Now, when OnOverlap() executes, it will check if OtherActor is of type ABasePlayer. If it is, destroy the coin.
Next, you need to bind OnOverlap().
Binding the Overlap Function
To bind a function to an overlap event, you need to use AddDynamic() on the event. Add the following inside ABaseCoin():
OnActorBeginOverlap.AddDynamic(this, &ABaseCoin::OnOverlap);
This will bind OnOverlap() to the OnActorBeginOverlap event. This event occurs whenever this actor overlaps another actor.
Compile and then go back to Unreal Engine. Press Play and start collecting coins. When you overlap a coin, the coin will destroy itself, causing it to disappear.
Tumblr media
Note: If the coins don’t disappear, try restarting the editor to do a full recompile. Some code changes require a restart in order to work.
In the next section, you will create another overridable C++ function. However, this time you will also create a default implementation. To demonstrate this, you will use OnOverlap().
Creating a Function’s Default Implementation
To make a function with a default implementation, you need to use the BlueprintNativeEvent specifier. Go back to Visual Studio and open BaseCoin.h. Add BlueprintNativeEvent to the UFUNCTION() of OnOverlap():
UFUNCTION(BlueprintNativeEvent) void OnOverlap(AActor* OverlappedActor, AActor* OtherActor);
To make a function the default implementation, you need to add the _Implementation suffix. Open BaseCoin.cpp and change OnOverlap to OnOverlap_Implementation:
void ABaseCoin::OnOverlap_Implementation(AActor* OverlappedActor, AActor* OtherActor)
Now, if a child Blueprint does not implement OnOverlap(), this implementation will be used instead.
The next step is to implement OnOverlap() in BP_Coin.
Creating the Blueprint Implementation
For the Blueprint implementation, you will call PlayCustomDeath(). This C++ function will increase the coin’s rotation rate. After 0.5 seconds, the coin will destroy itself.
To call a C++ function from Blueprints, you need to use the BlueprintCallable specifier. Close BaseCoin.cpp and then open BaseCoin.h. Add the following above PlayCustomDeath():
UFUNCTION(BlueprintCallable)
Compile and then close Visual Studio. Go back to Unreal Engine and open BP_Coin. Override On Overlap and then create the following setup:
Tumblr media
Now whenever a player overlaps a coin, Play Custom Death will execute.
Click Compile and then close BP_Coin. Press Play and collect some coins to test the new implementation.
Tumblr media
Where to Go From Here?
You can download the completed project here.
As you can see, working with C++ in Unreal Engine is quite easy. Although you’ve accomplished a lot so far with C++, there is still a lot to learn! I’d recommend checking out Epic’s tutorial series on creating a top-down shooter using C++.
If you’re new to Unreal Engine, check out our 10-part beginner series. This series will take you through various systems such as Blueprints, Materials and Particle Systems.
If there’s a topic you’d like me to cover, let me know in the comments below!
The post Unreal Engine 4 C++ Tutorial appeared first on Ray Wenderlich.
Unreal Engine 4 C++ Tutorial published first on https://medium.com/@koresol
0 notes
nunoxaviermoreira · 7 years ago
Photo
Tumblr media
Maunsell U Class 31806 Spa Road 13/4/18 by Thirty Seven 401 https://flic.kr/p/23uQAG1
0 notes
itmanco · 5 years ago
Text
Zigazoo launches to be a ‘TikTok’ for kids, surpasses 100,000 uploads and downloads Now, as lockdowns extend, Ringelstein is learning to embrace screen time as a way to sneak education and entertainment into his kids’ digital diet. Ringelstein, the former founder of UClass (acquired in 2015), launched Zigazoo, which he describes as a “TikTok for kids.” To ensure the app’s privacy, Ringelstein says that parents should be the primary users of the app. https://ift.tt/2ZZOHOS By Samy Morsy
from I.T MAN https://ift.tt/1cjthd7 via IFTTTBy Samy Morsy
0 notes
gozealouscloudcollection · 5 years ago
Text
六代戰機或在1/4個世紀後掀起新一輪全球軍備競賽
(圖自:AFRL,via New Atlas)
在競爭中,總有一些較為落後的地區會依賴於老舊的四五代戰機組合。但先進的一方,顯然不會僅僅依賴於地對空導彈防禦系統(SAM)和最新的雷達技術。
比如某天黎明時分,預警雷達發現了某個信號反射面積只有小鳥大小、但飛行速度卻兩倍於音速的不明物體。
經過初步判斷,防衛方認為它可能是一枚巡航導彈,然後立即採取各種攔截措施。但實際上,它很可能是一架先進到碾壓所有競爭者的隱形戰機。
防衛方錯誤地理解攻擊者還很遙遠,不會立即對自身產生威脅。但後來發生一些奇怪的事情,比如這個信號源竟然發射了四枚高速飛行的導彈。
(圖自:Airbus)
此時即便將所有地對空導彈都用上,也不見得能交出一份令人滿意的答卷。如果後續攻擊方派出更多的隱形戰機,這場戰爭幾乎可以在瞬間結束。
(圖自:Boeing)
當然,以上只是科幻小說中的清潔。但在第六代戰機投入全面運營的 1/4 個世紀之後,情況很可能就是這樣的。
(圖自:Dassault)
此外,防衛方也不會白白等著挨打。為了應對六代戰機造成的威脅,激光武器可能會得到飛速的發展。
想像圖:Dassault 與空客聯手打造的新一代戰機
目前已知有九個國家/地區在單獨或聯合開���六代戰機,比如美國海軍的F / A-XX,就旨在取代F / A-18E / F 超級大黃蜂,並補充F-35C、UCLASS無人機、以及美國空軍的FX Next 新一代戰術飛機。
(其旨在取代當前的颱風和颶風戰機)
與此同時,法國、德國和西班牙正在聯手打造新一代戰鬥機(NGF),以取代當前在歐洲服役的“颱風”、Panavia 龍捲風、以及 Dassault 颶風等舊式戰機。
(新一代戰機的模型)
在 2018 年 7 月的一次意外聲明中,英國不小心透露了其正在開發第六代暴風戰機的計劃,且近期瑞典有意與之合作。
(圖自:BAE Systems)
此外,日本三菱 F-3、俄羅斯蘇霍伊 Okhotnik 和米格 MiG-41 等項目,也在積極醞釀中。
.
from 六代戰機或在1/4個世紀後掀起新一輪全球軍備競賽 via KKNEWS
0 notes
thewebofslime · 6 years ago
Link
he War Zone recently outlined the logic behind persistent rumors that the U.S. Air Force, or some other U.S. government entity, might have regenerated some F-117A Nighthawk stealth combat jets for operations in the Middle East, most likely Syria, in recent years. We also noted that there’s absolutely no hard evidence to substantiate these claims. But there is a strong possibility that the United States did deploy another aircraft, a variant of the General Atomics Avenger drone, carrying the base designation Q-11, to meet a similar requirement for a stealthy, but armed platform that could strike high value and mobile targets in contested areas. To quickly recap, on Mar. 2, 2019, Dutch online aviation magazine Scramble posted claims on their Facebook page regarding the possibility that some F-117As flew missions in the Middle East in 2017. If true, this would have likely occurred because of a demand for the Nighthawks' particular attributes, most notably it being a relatively quick and stealthly platform that is able to employ laser-guided bombs on moving targets. It also doesn't represent the high-end of U.S. aerospace technology, especially in terms of its low-observable design. As such, if one was lost, the technological risk wouldn't be catastrophic. LET'S TALK ABOUT THE RUMOR THAT F-117S HAVE FLOWN MISSIONS IN THE MIDDLE EAST RECENTLY By Tyler Rogoway Posted in THE WAR ZONE PHOTO EMERGES OF STEALTHY AVENGER DRONE FITTED WITH ADVANCED MULTI-SPECTRAL SENSOR SUITE By Tyler Rogoway Posted in THE WAR ZONE SHEDDING SOME LIGHT ON THE AIR FORCE'S MOST SHADOWY DRONE SQUADRON By Joseph Trevithick and Tyler Rogoway Posted in THE WAR ZONE USAF REVEALS DETAILS ABOUT SOME OF ITS MOST SECRETIVE DRONE UNITS WITH NEW AWARDS By Joseph Trevithick Posted in THE WAR ZONE BEHOLD THE MOST DETAILED PHOTO TAKEN OF AN AIRBORNE F-117 NIGHTHAWK IN OVER A DECADE (UPDATED) By Tyler Rogoway Posted in THE WAR ZONE This is a capability gap the U.S. military had had since retiring the first-generation stealth jets in 2008 and only recently regained, at least publicly, with the integration of the GBU-49/B dual-mode Paveway precision guided bomb and associated software onto the F-35 Joint Strike Fighter. You can read all about these issues in our previous post here. Officially, most of the last of the Nighthawks are in "Type 1000" regenerative storage Tonopah Test Range Airport, where they have been since their formal retirement more than a decade ago. Between four and six have remained in flyable condition, and have flown fairly regularly, for years. The service’s stated plan has been to permanently dispose of them at a rate of four per year starting in 2017. USAF An official picture of F-117As in storage at Tonopah. But whether or not the United States sent F-117s back into combat or not, the requirements that would have prompted that deployment were still there. If the U.S. government had identified a target it wanted to strike clandestinely and that could be on the move in, say, Western Syria, an area full of Syrian air defenses, it would have had few, if any options, at least publicly, to carry out that mission without being easily detected. This bring us to the General Atomics Avenger, also known as the Predator C. The Air Force appears to have designated at least one variant of this drone the YQ-11 and there are likely be additional configurations, such as an operational MQ-11. These designations are wholly unrelated to AeroVironment’s RQ-11A and RQ-11B Ravens. At the time of writing, Air Force Materiel Command (AFMC) has not responded to our queries for clarification and additional details on this nomenclature. But more on this later. The video below was General Atomics' vision for how Avengers would operate on the battlefield circa 2012. Despite its initial name, this unmanned aircraft is distinct from the company’s earlier MQ-1 Predator and MQ-9 Reaper designs, featuring a stealthy planform reminiscent of Northrop's Tacit Blue demonstrator and using a turbofan engine for greater power and speed than its propeller-driven family members. Avenger also has a much higher operational ceiling than the MQ-1 or MQ-9, being able to reach altitudes of around 50,000 feet. GENERAL ATOMICS General Atomics Avenger in front of an MQ-1 Predator, at left, and an MQ-9 Reaper. The latest iterations of the Avenger, which are substantially larger than the original prototype, have a cruising speed of around 400 miles per hour, more than twice that of a Reaper, and a maximum flight time of around 20 hours, depending on what payloads it is carrying. In 2016, General Atomics also flew a new variant of the drone, called the Avenger Extended Range (ER), for the first time. The Avenger ER has since demonstrated an ability to remain aloft for longer than 20 hours. They also have the ability to carry weapons, including laser-guided bombs, in their internal payload bays, as well as additional stores on up to six underwing pylons. The Avenger can accommodate various sensor turrets with electro-optical, infrared, and multi-spectral cameras, as well as laser designators, on a retractable mount. This allows the drone to operate in maximum stealth mode until it reaches the target area. These drones, which, like the F-117s, don't represent the cutting-edge of American low-observable technology, but would still be well suited to conducting discreet and flexible missions over less than welcoming airspace in Syria from bases in nearby neighboring countries. General Atomics says the drones can also self-deploy to a forward operating site or that C-17A Globemaster III or C-5 Galaxy transport aircraft can transport them and other supporting equipment to the desired location. USN An Avenger with various inert examples of the precision guided bombs it can carry internally on display in front. Publicly, the Air Force has exactly one of these unmanned aircraft in its inventory, which it announced it was buying in 2011 under curious circumstances. An initial contracting notice said the service planned to send the drone to Afghanistan for tests, but this announcement was then “cancelled” and edited to redact the planned deployment location. In December 2011, the Air Force denied that it had plans to send the Avenger to Afghanistan. The initial contracting notice had come shortly after an RQ-170 Sentinel stealth drone, likely flying from a base in Afghanistan, had crashed in neighboring Iran, leading some to speculate that the Avenger’s actual missions would be over that country. Another possibility was that it might fly from Afghan bases to conduct secretive strikes against terrorists and keep in an eye on the nuclear arsenal in Pakistan. GENERAL ATOMICS An Avenger on the ground with its payload bay open. What exactly the Air Force’s plans for the Avenger were or what it actually did with the drone remain unclear. An annual history of Air Combat Command (ACC), the service’s main warfighting command, for 2011 includes a section talking about both the Predator C and the then-ongoing MQ-X program, but the comments on the former are almost entirely redacted. The author previously obtained a copy of this document via the Freedom of Information Act. “The next generation RPA [remotely piloted aircraft], or MQ-X as it was more commonly called, promised a more viable solution to meeting the Air Force's future unmanned ISR [intelligence, surveillance, and reconnaissance] needs,” the historical review explains. “Unlike the Predator C which offered only minor improvements over the MQ-9, MQ-X had to be ‘survivable in a contested environment, weather tolerant, and have robust and agile communications.’” USAF VIA FOIA The entire, unredacted portions of the section on the Predator C and MQ-X from the 2011 ACC history. This is curious commentary given that the Avenger can carry a significantly larger payload than the MQ-9, has a substantially greater cruise and dash speed, and offers stealthy capabilities that the Reaper does not. This same section says that by the end of 2011, ACC had begun discussions with the U.S. Navy about blending MQ-X with the Unmanned Carrier-Launched Airborne Surveillance and Strike (UCLASS) program. In February 2012, the Air Force publicly cancelled MQ-X entirely. In retrospect, this is not surprising as anything having to do with advanced unmanned combat air vehicles had disappeared from the USAF's documentation and vernacular around that time. You can read all about this mysterious saga here. The unredacted portions of the 2012 annual history for ACC, which the author also got via FOIA, makes no mention of this program at all or of the final fate of the Air Force’s lone Avenger. The Navy’s UCLASS turned into an entirely separate debacle, which you can read about in more detail here, resulting in a complete shift in requirements to an unmanned aircraft that would primarily serve as an aerial refueling tanker. Boeing is now on contract to build this drone, known as the MQ-25 Stingray. General Atomics had used the Avenger as a surrogate to test various technologies in support of its own ultimately failed bid for this program. The Avenger’s history with the U.S. government didn’t end with MQ-X. As of 2017, General Atomics had confirmed the sale of the lone drone to the Air Force, but also the delivery of “up to seven” additional examples to an undisclosed U.S. government entity. The year before, the company also went on the record saying that someone had flown one of these unmanned aircraft over Syria to conduct a propaganda leaflet drop. We don’t know for sure who within the U.S. government owns or is flying the other Avengers, but Air Force Materiel Command's (AFMC) Detachment 3 flies the “YQ-11,” likely the sole example the Air Force "officially" owns, for test and evaluation purposes, as of 2019. This detachment is situated in Poway, California, home of General Atomics, according to a contracting announcement that appeared on FedBizOpps, the U.S. government’s main contracting website, in February 2019. The detachment also has a so-called “operation location,” or OL-Det 3, spread between General Atomics’ Mojave Desert Flight Test Facilities at Gray Butte and El Mirage Airfields. The testing that Detachment 3 conducts, which also includes work on the MQ-9, supports ACC requirements, as well as those from U.S. Special Operations Command (SOCOM) by way of Air Force Special Operations Command (AFSOC). USAF A section from a recent contracting document mentionoing the YQ-11. USAF Another section from another related contracting document describing AFMC, Detachment 3's mission and operating locations. But the latest editions of the Air Force’s Flight Test Aircrew Training manuals, which the service published in 2017, certainly hint at the existence of other U.S. government Avengers and actual operational activities. These documents include entire sections covering the YQ-11, something that seems incongruous for a fleet of just one drone. To retain their currency on this aircraft type, the Air Force says pilots and sensor operators must conduct landings using the drone’s electro-optical, infrared, and multi-spectral camera systems. It’s worth noting that Raytheon’s product page for its Multi-Spectral Targeting System (MTS) says this system is found on the “MQ-9C,” another designation that has been associated with the Avenger. YQ-11 crews must also fly mission profiles at least simulating the employment of both missiles and bombs. “Qualification in the YQ-11 does not count as qualification in any other aircraft except like YQ-11 series (Q-11X) requiring difference/conversion training,” one of the manuals says. The “Q-11X” reference suggests that there could be additional Q-11 variants, such as an MQ-11A, beyond the "prototype" YQ-11. USAF YQ-11 proficiency requirements as described in Air Force Instruction 11-2FT, Flight Test Aircrew Training, Volume 1. “In accordance with the 2011 defense appropriation act, the Air Force procured prototype demonstration capabilities of the Avenger system,” a spokesperson for the Air Force’s 645th Aeronautical Systems Group, a special projects office better known by the nickname Big Safari, told Flight Global in 2016. “The demonstration has completed and there are no current plans for future demonstrations." But this wouldn’t preclude the Air Force from operating a separate, classified fleet of operational Avengers. It also wouldn’t prevent the service from being involved in some way with another U.S. government entity’s operation of those drones. Annual historical reviews for Big Safari for 2012, 2013, and 2014, which the author obtained via FOIA, make no mention of Predator C, Avenger, or YQ-11 in any way, though they do have a category simply labeled “Classified Programs.” TYSON V. RININGER / WWW.TVRPHOTOGRAPHY.COM In addition, all of this could fit in with what is known, and still unknown, about the Air Force’s top-secret 44th Reconnaissance Squadron, which we at The War Zone were first to report on in detail in 2018. The service will not tell us what type or types of unmanned aircraft this unit operates. The 44th has its own convoluted history tracing back to the activation of a separate, secretive entity known as the 732nd Operations Group, Detachment 1. The 732nd as a whole has connections to the Central Intelligence Agency (CIA) and the Joint Special Operations Command (JSOC). Previous media reports have suggested the group acts as a cover for or is otherwise tied in with the CIA’s top-secret drone operations. FLIGHTLINEINSIGNIA.COM A patch for the 732nd Operations Group, Detachment 1, showing motifs in common with the 30th Reconnaissance Squadron, which flies the RQ-170 Sentinel stealth drone. This insignia also has the text "Forging the Sword" along with a lightning bolt, sword, and droplets of blood, suggesting this unit had other missions beyond intelligence, surveillance, and reconnaissance. All of this brings us back to the F-117 rumors. There remains no evidence that these Nighthawk deployments ever occurred. There are, however, the on-the-record statements from General Atomics that a U.S. government agency, widely understood to be the CIA, possibly in cooperation with the Air Force, has a fleet of Avengers. There have been no other publicly acknowledged sales of this drone to the U.S. government or any other country. The drone's manufacturer has also revealed that at least one Avenger was flying over Syria at the same time when the rumors about F-117s heading back to combat were first emerging. The Avenger would have been able to meet many of the same requirements for stealthy, armed platform able to engage static and moving targets that was far faster, and therefore more responsive, than other unmanned aircraft available in the region. The 44th also officially stood up in April 2015, which would have given it months to reach at least initial operational capability ahead of an actual deployment the following year. This unit’s activation could have provided a cover for a much more mature Avenger program under the auspices of the CIA, as well. We also know that Al Qaeda’s number two leader, Abu Khayr Al Masri, died in what appeared to be an air strike on his car involving a special low-collateral damage munition in Syria’s western Idlib governorate in February 2017. More recently, The Washington Post reported, citing anonymous sources, that President Donald Trump had pushed the CIA to begin arming unspecified drones under its control flying over Syria after taking office the month before. Trump also reportedly received a briefing from the Agency about unique air-dropped munitions designed to avoid civilian casualties. This strike on Al Masri’s car is exactly the kind of mission profile – a high value target in a moving vehicle traveling in a denied area where American manned platforms don't generally go – that seemed to explain why the Air Force or the CIA might have turned to the mothballed F-117s at all. It’s also an operation that an Avenger could have performed and fits almost perfectly with the details and timeline regarding CIA drone operations in The Post’s subsequent reporting. With all this in mind, the small but critical gap that needed filling over Syria, and possibly over other countries in the Middle East, both friendly and not so friendly, could very well have been filled by the diminutive, but adaptable and relatively low-risk Avenger fleet that currently lives in the darkness. That's not to say that the mothballed F-117 force wasn't possibly evaluated to fulfill this role, but taking the human out of cockpit, as well as leveraging the long-endurance capabilities of the Avenger may have been an all too logical alternative. There's also the possibility that both airframes were put to use to fulfill a similar mission set. The presence of one in the region doesn't necessarily preclude the other. Especially if the F-117s were assigned to the Air Force and the Avengers were CIA assets. But we know for a fact that a handful of Avengers are flying under some classified umbrella for a certain government agency and that they have been active in the Middle East, and Syria, in particular. The claims that the F-117s were returned to service and deployed to the region, on the other hand, come without any hard evidence at all. If the Avenger has quietly stalked and killed high value targets in sensitive airspace, the program is far more successful than anyone has been allowed to let on. Author's note: A special thanks to Tyson Rininger for allowing to use his amazing photo as the banner image in this article. Make sure to check out all his work here.
0 notes
defpost · 6 years ago
Text
Boeing Awarded $805 Million U.S. Navy MQ-25 Unmanned Aerial Refueling Aircraft Contract
Tumblr media
Boeing will build the U.S. Navy’s first operational carrier-based unmanned aircraft, the MQ-25 aerial refueling aircraft, through an $805 million contract awarded on Aug. 30. Boeing was awarded the engineering and manufacturing development contract to provide four aircraft. Boeing plans to perform the MQ-25 work in St. Louis. “As a company, we made an investment in both our team and in an unmanned aircraft system that meets the U.S. Navy’s refueling requirements,” said Leanne Caret, president and CEO, Boeing Defense, Space & Security. “The fact that we’re already preparing for first flight is thanks to an outstanding team who understands the Navy and their need to have this important asset on carrier decks around the world.” MQ-25 is designed to provide the U.S. Navy with a much-needed refueling capability. According to the U.S. Navy, the MQ-25 Stingray will allow for better use of combat strike fighters by extending the range of deployed Boeing F/A-18 Super Hornet, Boeing EA-18G Growler, and Lockheed Martin F-35C aircraft. MQ-25 will also seamlessly integrate with a carrier’s catapult and launch and recovery systems. Boeing has been providing carrier aircraft to the U.S. Navy for more than 90 years. MQ-25 Stingray MQ-25 Stingray unmanned carrier aviation air system (UCAAS), formerly the Carrier-Based Aerial-Refueling System (CBARS), is a planned unmanned combat aerial system (UCAV) that resulted from the Unmanned Carrier-Launched Airborne Surveillance and Strike program (UCLSS). On 1 February 2016, after many delays over whether the UCLASS would specialize in strike or intelligence, surveillance and reconnaissance (ISR) roles, it was reported that a significant portion of the UCLASS effort would be directed to produce a Super Hornet-sized carrier-based aerial refueling tanker as the Carrier-Based Aerial-Refueling System (CBARS), with “a little ISR” and some capabilities for communications relay, and strike capabilities put off to a future version of the aircraft. In July 2016, it was officially named “MQ-25A Stingray”. Three of these UCAVs could fly with an F-35 for refueling and sensor operation. The MQ-25 can extend the Super Hornet’s 450 nmi unrefueled combat radius to beyond 700 nmi. The Navy’s goal for the aircraft is to be able to deliver 15,000 lb (6,800 kg) of fuel to 4-6 planes at 500 nmi. The Navy released the final MQ-25 Stingray RFP in Oct. 2017; the competitors were Lockheed Martin, Boeing, Northrop Grumman, and General Atomics. On 25 Oct.2017, Northrop Grumman announced that it was withdrawing its X-47B from the MQ-25 competition saying they would be unable to meet the terms of service for the programme. Read the full article
0 notes