主なコンテンツ

〜主なコンテンツ〜

1. Unityで製作したゲームと製作Tips
  1. 三月精チャレンジ(東方Project二次創作)
    1. 作り方
  2. 英語学習2D(オリジナルスマホアプリ)
2. UE4
3. ゲームアプリ見学
4. Bitbucket & SourceTreeでの一連の流れ
  1. 前半
  2. 後半
5. Tips
  1. UnityのTips
  5. SQL文のTips
  6. Final IK
  7. GearVR+Unity

2017年4月14日金曜日

UE4プログラミング学習編(その4)

■UMG を使ったユーザー インターフェース

  • UMGはUnreal Motion Graphicsの略らしい
  • ~.Build.cs書き換え後のソースが提示されているが、現在の内容と若干違う模様。この先も度々違いが見られた。言語を英語にしても内容の古いまま。
    • ひとまず完成後のソースに合わせた
    • 最後までやってみたが画面にUIは表示されなかった(原因不明)。この章はやらなくていいかもしれない。夏季講義DAY2では作成したGameModeをブループリントエディタで開き、BeginPlayでAddViewportすることで表示していた(講義動画の45分あたり)。
      • コンパイルしたり、色々試しているうちに何故か表示されるようになった
  • Ueser Widgetを作成しろとあるが、これが何か不明
    • Widget ブループリントのことかと思ったが、どうやら違う模様。合っていた。次のステップで解説されるので今は気にしなくて大丈夫(参考)。
  • 同様に~GameMode.hも見当たらない
    • ~GameModeBase.hならあるので、該当内容を追記

// Fill out your copyright notice in the Description page of Project Settings.
#pragma once

#include "Blueprint/UserWidget.h"
#include "GameFramework/GameModeBase.h"
#include "QuickStartGameModeBase.generated.h"
/**
 * 
 */
UCLASS()
class QUICKSTART_API AQuickStartGameModeBase : public AGameModeBase
{
 GENERATED_BODY()
 
public:
 /** ゲーム開始時に呼び出されます */
 virtual void BeginPlay() override;

 /** 現在のメニューウィジェットを取り除き、指定されたクラスがあればそこから新しいものを作成します */
 UFUNCTION(BlueprintCallable, Category = "UMG Game")
  void ChangeMenuWidget(TSubclassOf NewWidgetClass);

protected:
 /** ゲーム開始時にメニューとして使用するウィジェット クラスです */
 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UMG Game")
  TSubclassOf StartingWidgetClass;

 /** メニューとして使用するウィジェット インスタンスです */
 UPROPERTY()
  UUserWidget* CurrentWidget;
};

  • ~GameModeBase.cppも同様
    • プロジェクト名を独自のものにした場合は、丸写しの際にクラス名に注意

#Menu Widget ブループリントの作成

  • グラフにbuttonとtextを追加しろとあるが、textは使わない。代わりにbuttonを2つ作る。
  • ブループリントデザイナ画面右上の「デザイナー>グラフ」ボタンで、ボタンを配置する画面とイベントの内容を編集する画面を切り替えられる
  • チュートリアルの解説はかなり端折られてるので、説明画像を参考にイベントを作る
  • GameModeは現在GameModeBaseになっていることに注意

#ゲームモードの設定

  • 最初は何故か下図のようにキャンセルしか表示されなかったが、キーボードの上下でメニュー内を移動したところ「選択」が表示された

#セカンド メニューを構築する

  • NewTextEntryだけ右クリックから検索で配置
    • GetとSetがあるのでGetを使う
  • 説明文を読めば察しはつくが、丸い点だけノードはToString

  • 新規ウィジェットをNoneにするとメニュー全体を非アクティブにできる(このときの表示がselect class(クラスを選択))

0 件のコメント:

コメントを投稿