Gaming Life

一日24時間、ゲームは10時間

台風で停電した。

台風25号で約一日停電した。

人生ではじめて経験した命の危険を感じた台風。幸いなことに近所で窓が割れるなどの大きな被害は起きなかったが、電気が止まったことで断水も発生し、シャワーもしばらく浴びられなかった。この記事を書いてる時間でもまだ復旧していない地区もあり、考え過ぎってくらいに事前に備えておくのが本当に大切だなと感じた。

以下に実際停電中に役に経ったものを紹介する。

モバイルバッテリー

考えるまでもなく超役に立つ品。私はAnkerの10000mAhくらいのものを使っていて、停電するかもと思い台風上陸前から充電していた。

まあ、

Switch版イース8徹夜攻略に使ってしまったんですが。

(大学が停電していないっていう情報を入手していたのでもしなくなったら大学行けばいいとこんな無茶をした。決して真似をしてはいけない)

iPad

最近買ったのでスマホよりバッテリー持ちも良く、読書もできるので重宝した。普段使うスマホ以外にサブ機持っておくのは本当に便利だなーとこの時程感じることはなかった。

現金

停電中電子マネーは使えないので。21号の時電子マネーしか持ってなくて何も支払いが出来ない増田が話題になっていたが、やはり万が一のため1万程度は現金で持っておいたほうが良いと思う。

キングブレード(ペンライト)

今回のMVP。一応懐中電灯は持っていたが暗くて使えたもんじゃなく。キングブレードは本を読めるくらいに明るく、そして軽く持ち運びにも便利。停電中買い物に出掛けたときも重宝した。

f:id:ai_gaminglife:20181002221248j:plain

使ってたキンブレ。色も切り替えられて超便利。

こんな使い方もできる。

UE4 ぷちコン制作で役にたった資料リンク集

 お久しぶり更新。ここ一ヶ月はUE4ぷちコン用の作品作りで忙しくブログが更新できていなかった。

 今回のぷちコンで作った作品はこちら。

www.youtube.com

 大学の先輩後輩3人と協力して作った、サードパーソンベースのアクションゲーム。背景アセット、敵のゾンビ等マーケットプレイスの力をガンガン借りて作った。

 今回の開発にあたり、初めてUE4のアニメーション機能を触ってみたり、ソース管理をしてみたり、色々と初な経験をすることが出来た。本来初めての機能を試す時は公式のドキュメントを読むのが筋なのだろうが、UE4の日本語版ドキュメントはどーも最近リンク切れを起こしがちな上、「○○という処理がしたい!」といった逆引き的使い方には向かない為、短期開発ではあまり使えない。(もちろん分からない事があればまず最初にドキュメントを漁ったほうが良い。公式が出す確実な情報なので)

 今回は、特にコミュニティの有志の方々が作成された素晴らしい資料にお世話になった。折角なので、特に参考にした資料を紹介したいと思う。

アニメーションBP関連

  • UE4勉強会 in 大阪 アニメーション基礎

UE4勉強会 in 大阪 - アニメーション基礎

  • UE4勉強会 in 大阪 もっとアニメーションBP

UE4勉強会 in 大阪 - もっとアニメーションBP

com04さん作の今回ダントツで参考にした2つの資料。特に剣士のアニメーションBPは殆どパクったといっても差し支えないくらい参考にしている。初心者が最初にアニメーションを実装するならまずこれを見るべき、ってくらいの神資料。

  • 猫でもわかるUE4のAnimation Blueprintの運用について

猫でも分かる UE4のAnimation Blueprintの運用について

Epic岡田さんの猫でもわかるシリーズアニメーション編。アニメーションBPの基本的な考え方がわかる。最初に読むというよりは、先述の2つの資料を読んでから、もう少し深いところを学びたい。上手な運用を知りたいって時に使える。

実はこの資料が発表されたMeetupに参加してたのだが、当時は全く分からなかった。アニメーションBPを極め本でほんの少し触ったことある程度だったし仕方ない。

  • UE4 Saitama 初心者向けハンズオン #5 『アニメーションモンタージュ(Slotアニメーション)でコンボを作る』

UE4 Saitama 初心者向けハンズオン #5 『アニメーションモンタージュ(Slotアニメーション)でコンボを作る』

コンボアニメーションを組むのに参考にした。最新のアニメーションモンタージュの解説資料だと一番初心者向きで分かりやすい。

  • [CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック

[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック

今年のCEDECで公開された公式の神資料。今回4.19を使った開発であったことと、同時にキャラを出すのがせいぜい40体程度で、処理落ちに特に気を払わなければならない、ってわけではなかったので結果的にはこちらの資料で紹介されているテクニックは使わなかった。が、ここまでアニメーションの処理負荷について詳しく書かれている資料は無いので紹介だけ。

チーム開発手法(ソース管理など)

  • 第4回UE4勉強会 in 大阪 UE4でのチーム製作

第4回UE4勉強会 in 大阪 UE4でのチーム製作

またcom04さんの資料。UE4が標準で備えているコメント機能や、作業の分割のやり方の一例について紹介している。関数の説明欄に @param を使ってカーソルをあわせた時に引数に説明をつけることができることはここで知った。

  • UE4】BPをキレイにしよう:コメント編

dfkfuturelab.hatenablog.com

  • UE4】BPをキレイにしよう:折りたたみ編

dfkfuturelab.hatenablog.com

大福さんのブログ。チームで開発するなら特にBPの可読性を上げる事は重要で、こちらの記事はその助けになること間違いなし。

  • SVN はじめてのバージョン管理

papersloth.hatenablog.com

まめおさんのバージョン管理に関しての資料。SVNの基本の使い方を学べる。

ai-gaminglife.hatenablog.com

手前味噌だが当ブログで以前書いた記事。自宅にグローバルIPが振られておらず、自宅鯖を構築出来ないが、リモートのリポジトリを立てたいって人の役に立つ(と思う)。

セキュリティの事を殆ど考えていないので、大きなプロジェクトでは役にたたないだろうが、今回の1ヶ月レベル、ぷちコン規模の開発ならこの方法なぞって貰えばいい(と思う)。

UI

  • みつまめ杏仁

limesode.hatenablog.com

メチャクチャいろんな記事を参考にした。UE4のUI周りでここ以上にわかりやすく豊富な情報がのっているサイトはない。

エフェクト

  • moyashiエフェクト館

tktknkyo.hatenadiary.jp

moyashiさんのブログ。実は今回のゲームで一部のエフェクトをmoyashiさんに依頼して作ってもらいました。本当にありがとうございます。

UE4のエフェクトの作り方を実際のサンプルを例に教えてくれる素晴らしいサイト。

  • UE4の学び部屋 パーティクル入門(1) パーティクルの用語

manabibeya.com

UE4公式のチュートリアルの日本語化サイト。パーティクルを作りたければ一度は通してやってみるべき。基本的な事をど忘れした時に参考にした。

その他

  • Action RPG サンプル

https://www.unrealengine.com/marketplace/action-rpg

UE4.20のリリースと同時に公開された公式の無料サンプル。恐ろしいくらい良く出来ていて、中身の実装は、今回の開発でも非常に参考にしている。チュートリアルを終えて、サードパーソンテンプレートを理解できた人なら必見のサンプル。

  • 猫でも分かる UE4の新しいサンプル「Action RPG」について

猫でも分かる UE4の新しいサンプル「Action RPG」について

猫でもわかるシリーズ最新版(2018年9月現在)。Action RPGを読み解くのに一緒に見たい資料。

  • UE4 AnswerHub(日本語)

Japanese - UE4 AnswerHub

UE4公式の質問フォーラム。ネットの情報もあらかた調べ、自分でも試行錯誤したが、分からなかったって時の最終手段。今回私も一度だけ質問した。

注意したいのはこのサイトはあくまでボランティアによる運営であり、Yahoo知恵袋のようなものではない、ということ。質問は自分でやれることをやりきった後。実際する時はスクショをつけるなどして、見る人が理解できる形式で質問するようにしましょう。

まとめ

 他にも色々参考にしたサイトはあるが(alweiさんの Let's Enjoy Unreal Engine とか)、載せきれられないのでここまで。

 UE4はUnityと比べ、資料が少ない、と言われるが、実際それは事実。現状UE4とUnityではユーザー数が圧倒的に違い、個人開発で使用しているユーザーに限れば更に少ない。

 しかし、UE4は公式で超ハイクオリティなサンプル、アセット(Paragonなど)を公開してくれる。情報も最近は充実しつつあり、ある機能の解説が全く見当たらないなんてことは殆どないと思う。

 情報の少なさ故にUE4を使うか悩んでいる方は、そのあたりは心配せず、是非はじめてみてほしい。そしてわかったことがあれば是非このブログのようにバシバシ公開してほしい。Twitterハッシュタグ #UE4Study や #UE4などとつけてくれれば多くの人が監視してるので、記事を公開したらハッシュタグをつけて宣伝してほしい。

UE C++ UActorComponent継承クラスの子Blueprintクラスを作成できるようにする

UE4エディタ上でUActorComponent継承クラスを作ると子Blueprintクラスが作れない問題。

自動生成されたコードはこんな感じ

UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )
class UTestActorComponent : public UActorComponent
{
    GENERATED_BODY()
        //実装
};

子Blueprintクラスを作れるようにするにはUCLASS()マクロを以下の様に変更すればよい。

UCLASS(ClassGroup = (Custom), BlueprintType, Blueprintable, meta = (BlueprintSpawnableComponent))

参考サイト

forums.unrealengine.com

UE4 W155007: ... is not a working copyエラーの解決

ai-gaminglife.hatenablog.com

 上記の記事の方法でソースコントロールしている最中、こんなエラーが表示された。

svn :warning: W155007: "...\Engine\Content" is not a working copy
svn: E195013: "...\BP_test.uasset" is not locked in this working copy

f:id:ai_gaminglife:20180827013545p:plain

解決法

 エクスプローラーでSVNチェックアウトしたプロジェクトフォルダを右クリックし、TortoiseSVN → ロックを取得。ここで一度全てにロックを掛ける。

f:id:ai_gaminglife:20180827013603p:plain

 続けて右クリック → TortoiseSVN → ロックを解除で全てのロックを外す。

 これで解決。正直原因も解決した理由もわかってないが誰かの参考にになれば。

UE4 マテリアルで円グラフを作る

f:id:ai_gaminglife:20180817221921p:plain

pafuhana1213.hatenablog.com

shop-0761.hatenablog.com

こちらのブログを参考に円グラフを作ってみた。

マテリアル全体図

f:id:ai_gaminglife:20180817221953p:plain

見づらいところを拡大。

f:id:ai_gaminglife:20180817222031p:plain

MF_CircleTopStartの中身

f:id:ai_gaminglife:20180817222151p:plain

注意はTexCoordのTilingを2.0に設定すること。

f:id:ai_gaminglife:20180817222207p:plain

UE4 Cascadeでパーティクル放出を1回だけにする

毎回忘れてググるので自分のブログにメモがてら書いておく。

パーティクルを1度だけ放出させたいときはEmitterのRequiredモジュールで、

Emitter Loopを「1.0」に設定する。

もし、無限回ループさせたい(無限に放出させたい)ときは「0.0」に設定する。

f:id:ai_gaminglife:20180815225127p:plain

Cacade、めったに触らないので毎回基本的なことを忘れてしまう……

Qt5 QListViewのダブルクリック編集を無効にする

 最近Qt5を触ってるのでそのメモ。

 QListViewにQStringListModelを突っ込み、リストビューを作るのはそんなに難しくない。

#include "mainwindow.h"
#include <QLayout>
#include <QString>
#include <QStringListModel>

MainWindow::MainWindow(QWidget *parent)
    : QWidget(parent)
{
    QListView *listView;

    //QListViewを生成,ここにlistModelを追加していく
    listView = new QListView();
    Q_CHECK_PTR(listView);

    //listItemTextに文字をセットする
    QStringList listItemText;

    listItemText << "001";
    listItemText << "002";
    listItemText << "003";

    QStringListModel *model;

    model = new QStringListModel();

    //モデルにlistItemTextを追加する
    model->setStringList(listItemText);

    //listViewにmodelをセット
    listView->setModel(model);

    QVBoxLayout *mainLayout = new QVBoxLayout;
    mainLayout->addWidget(listView);

    setLayout(mainLayout);
    setWindowTitle(tr("ListViewTest"));
}

 実行するとこんな感じ。

f:id:ai_gaminglife:20180809154812p:plain

 ただこのままでは一つ問題があって、要素をダブルクリックすると中身を書き換えることができてしまう。

 これを解決するには、下の1行が必要。

    listView->setEditTriggers(QAbstractItemView::NoEditTriggers);

 これでダブルクリック編集が無効になる。

参考サイト

http://doc.qt.io/archives/qt-4.8/qabstractitemview.html#EditTrigger-enum https://stackoverflow.com/questions/6226185/uneditable-qlistview

 しかしQtの公式ドキュメントは本当に充実している。UE4もこれぐらいドキュメント使いやすくしてほしいなあ。