Gaming Life

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

Python 連番テキストファイルを結合する

test_0.txt, test_1.txt, test_2.txt, test_3.txt...と連番で用意したテキストファイルを順番通りに結合して、test.txtという一つのファイルとして書き出すプログラム。 import glob import os.path # ファイルの結合 def join_file(filePath): fileList = c…

Ubuntu + VSCodeでAsciiDocを書く環境を整える

以前の記事ではWindows上でAsciidocを書く環境を整えたが、Ubuntuでも同じことがしたくなったので導入してみた。今回はその作業メモ。 検証環境 日時: 2018/12/06 Ubuntu 18.04 LTS VSCode version 1.29 Rubyの導入 このサイトを参考にRubyを導入 qiita.com …

Unity製ゲーム制作で採用しているツールまとめ(随時更新)

開発環境 Windows 10 PC 将来的にiOS版も開発するならMacを買わなければならなくなるかも。 モニター2枚 Unity開発ならモニター二枚は必須といっても良い。効率が段違いに上がる。 iPad 2018 メモ書きに使用。使っているソフトは後述 エディタ Visual Studio…

AsciiDoc + VSCodeでかっこいい文書作る

某方に布教されてAsciiDocにめっちゃハマった。 AsciiDocって markdownのような軽量マークアップ言語の一種。 markdownより優れている点 markdownより高機能。 困ったらHTMLタグ直書きとかしなくていい。 表セルを結合出来る。 ソースコード、PlantUMLなどを…

OpenSiv3D C++ 反射ベクトルを計算して玉の反射を実現する1

OpenSiv3Dのリファレンスにはブロック崩しのサンプルがある。 https://scrapbox.io/Siv3D/%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8F%E3%81%9A%E3%81%97 このサンプルでは玉が壁 or ブロックに衝突した時、玉の速度ベクトルのX成分もしくはY成分を反転…

C++で浮動小数点の誤差を考慮して等価比較する

C++

<cfloat>ヘッダ中にあるDBL_EPSILONを使えば誤差も考慮して2つのdouble値の等価比較ができる。 float型ならFLT_EPSILONを使えばよい。 #include <cmath> #include <cfloat> //double型のaとbを誤差考慮して比較する bool NearlyEqual(double a, double b) { return abs(a - b) < DB</cfloat></cmath></cfloat>…

Unity2018でTestRunnerを使うための参考リンク

現在Unityでゲームを作ってる。 PlantUMLで設計書から作り始めてるんだし、折角ならテストコードも書いてみたいよなー、とTest Runnerを試してみたのだが、Unity2018でTestRunnerの導入方法が大幅に変わっていて、困ったので参考になったサイトをメモ。 (pla…

ほんの少しだけラクに、C++でAtCoderに参加するバッチファイル作った

先々週のABCからAtCoderを始めた。 前回参加時はたまたまTwitterを見ていた時にコンテスト開催中だということに気づき、折角だしやるか、と衝動的に参加したため、VS2017で書いて、動くかどうかは実際提出してみて試す、なんて非効率な事をしていた。 折角や…

C# if文なしにプロパティで数値に上限/下限を設定する

C#

月とか時間とか、数値に上限下限を設定したいとき、素直に実装するならif文使ってこんな感じにやる。 int month; void setMonth(int value) { if(value <= 1){ month = 1; }else if(value >= 12){ month = 12; }else{ month = value; } } これじゃあやってる…

VSCode+PlantUMLでクラス設計図が簡単に作れる

ブログ執筆を始め、ずっとエディタはAtomを使っていたのだが、Gitの設定をいじっていたらパッケージインストールで認証エラーが出るようになった。解決の仕方も分からなかったので、この機会だしVSCodeに移行してみた。 こんな感じで記事を書いてる。 動作も…

台風で停電した。

台風25号で約一日停電した。 電気落ちました— ai (@ai_9684_dct) September 30, 2018 人生ではじめて経験した命の危険を感じた台風。幸いなことに近所で窓が割れるなどの大きな被害は起きなかったが、電気が止まったことで断水も発生し、シャワーもしばらく…

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

UE4

お久しぶり更新。ここ一ヶ月はUE4ぷちコン用の作品作りで忙しくブログが更新できていなかった。 今回のぷちコンで作った作品はこちら。 www.youtube.com 大学の先輩後輩3人と協力して作った、サードパーソンベースのアクションゲーム。背景アセット、敵のゾ…

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

UE4エディタ上でUActorComponent継承クラスを作ると子Blueprintクラスが作れない問題。 自動生成されたコードはこんな感じ UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) class UTestActorComponent : public UActorComponent { GENER…

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 co…

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

pafuhana1213.hatenablog.com shop-0761.hatenablog.com こちらのブログを参考に円グラフを作ってみた。 円グラフ #UE4 #UE4Study pic.twitter.com/zHzk9S04vw— ai (@ai_9684_dct) August 17, 2018 マテリアル全体図 見づらいところを拡大。 MF_CircleTopSta…

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

毎回忘れてググるので自分のブログにメモがてら書いておく。 パーティクルを1度だけ放出させたいときはEmitterのRequiredモジュールで、 Emitter Loopを「1.0」に設定する。 もし、無限回ループさせたい(無限に放出させたい)ときは「0.0」に設定する。 Caca…

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

最近Qt5を触ってるのでそのメモ。 QListViewにQStringListModelを突っ込み、リストビューを作るのはそんなに難しくない。 #include "mainwindow.h" #include <QLayout> #include <QString> #include <QStringListModel> MainWindow::MainWindow(QWidget *parent) : QWidget(parent) { QListView *</qstringlistmodel></qstring></qlayout>…

UE4 SD ベルトコンベアを作る

最近UE4を触っていなかったのでリハビリを兼ねてベルトコンベアを作った。 適当にベルトコンベア pic.twitter.com/T157sbBfQ9— ai (@ai_9684_dct) 2018年8月6日 Substance Desingerでテクスチャを作る Substance Designerを使ってベルトコンベア用のテクスチ…

UE4 VPS上にSVNサーバを立ててUE4でソースコントロールしたい(コミット編)

続き。 ai-gaminglife.hatenablog.com 前回でレポジトリの作成と公開ができた。今度はこのリポジトリにUE4プロジェクトを追加して、ソースコントロールに繋ぐ。 TortoiseSVNをDLする TortoiseSVNの最新バージョンを以下のリンクからDLし、インストールする。…

Python Q学習で迷路を解くプログラム作った(コード公開)

大学の講義の最終レポートとして作った。 github.com 参考サイトは以下の辺り。 qiita.com qiita.com 1つめの参考サイトでQ学習についてざっくりと理解した上で、2つめの参考サイトで公開されてるコードを個人的に分かりやすいように改変した。参考サイトと…

UE4 VPS上にSVNサーバを立ててUE4でソースコントロールしたい(構築編)

チーム開発ではバージョン管理が必須。UE4ではGitではなくSVNを使うのが一般的。そしてチーム開発していくならリポジトリをサーバーに公開し、アクセスできるようにしておかねばならない。一般的には個人でポート開放し、サーバを立てるのだろうが、私は今ポ…

GitHubアカウント取った/VS2017でリポジトリ作成時エラー

といっても昔大学の講義の時に取ってたのだが。当面はSiv3D/OpenSiv3Dでの開発に利用すると思う。 github.com VS2017でリポジトリ作成時、以下のエラーメッセージが表示された。 リモート リポジトリの複製を作成中にエラーが発生しました: Git failed with …

UE4 GameModeとGameStateの罠

便利なGameModeとGameStateだが、少し引っかかったことがあったのでメモ。 GameModeBase継承クラスを作ってそれにGameState継承クラスを登録したら以下のようなエラーを吐いた。 LogGameState: Error: Mixing AGameState with AGameModeBase is not compatib…

UE4 Niagaraを触ってみる(4) StaticMeshの形にパーティクルをスポーンさせる②

続き。以下の記事を一通り進めた前提で話を進めるのでまだ見ていない方はそちらからどうぞ。 ai-gaminglife.hatenablog.com Lerpノードについて Niagara Module Scriptを追加。ここではある0.0-1.0の入力を元にパーティクルの位置と色を線形に補間するモジュ…

UE4 Niagaraを触ってみる(4) StaticMeshの形にパーティクルをスポーンさせる①

YouTubeで見つけて以来ずっと作りたかったNiagaraエフェクトが出来た。 ブログ用① pic.twitter.com/BIK3aHSJK4— ai (@ai_9684_dct) July 22, 2018 というわけで今回はこれの解説を。長くなるので記事を2回に分けて投稿。 ai-gaminglife.hatenablog.com 環境 …

UE4.20がやってきた

待望のUE4.20正式版公開。今回はFortnite由来の機能が沢山追加されたらしく。シーケンサー周りは相当改善されたらしい。しかし私はシーケンサーナニモワカラナイのでこの辺はあまり関係が無く、一番はNiagaraが漸くアーリーアクセスとなったことが大きい。こ…

FGO二部2章 無間氷焔世紀ゲッテルデメルング感想走り書き

FGO二部感想走り書き。後で直すかも。当然ネタバレ有りに付き注意。 壮大なブリュンヒルデの幕間。初登場の蒼銀でもイマイチいい役を貰えず、ゲームでも比較的古参の鯖ながら最近まで冷遇され続けてきたブリュンヒルデがようやっと救済された。第二の生でシ…

UE4 Niagaraを触ってみる(3) 引き寄せ(Repeller)モジュールを自作

シリーズNiagara第三弾。前回記事はこちら。 ai-gaminglife.hatenablog.com 前回、パーティクルを引き寄せるアトラクタを作った。今回はその逆。パーティクルを払いのけるような動きをする「リペラー(Repeller)」モジュールを作成した。 完成品 ヤバイ。超か…

UE4 Niagaraを触ってみる(2) アトラクタ Module Script自作

シリーズNiagara第二弾。前回記事はこちら。 ai-gaminglife.hatenablog.com パーティクルをある点に集めるアトラクタModuleを作った。 完成品 アトラクタモジュール自作した #UE4 #ai_game_study pic.twitter.com/M50BLu9bjc— ai (@ai_9684_dct) 2018年7月12…

UE4 Niagaraを触ってみる(1)

そろそろ正式実装されると一部で噂のUE4の新パーティクルシステムNiagara。現時点では英語情報すらほぼ無く、手探りでやっていくしかない。が、UE4.20のPreview版時点では前バージョンと比較してもかなり使いやすくなっているのでチョットずつ触り始めている…