Amazon Prime Music の曲紹介
はじめに
Amazon Prime Music で聴ける曲で、気に入った曲を紹介していく記事。
別々の記事にすると面倒そうなので、計画としてはこの記事に追記していく形。
いつまでも聴けるとは限らないので、その点ご注意。
あと主にOSTです。自分、歌(日本語)は疲れるのであまり聴きません。
OST:オリジナルサウンドトラック
#1.GRAVITY DAZE/重力的眩暈:上層への帰還において、彼女の内宇宙に生じた摂動 OST
タイトル長い。これは、ずっと前から聴ける曲なので、今後も聴ける気がする。
SCE(現SIE)のゲーム。ゲームは癖があるけど、このOSTは本当に最高。Prime Music にはまったきっかけ。万有引力の発見
とGRAVITY DAZE/重力的眩暈
は必聴。
あ、自分はこのゲーム好きです。2 はまだ終わってないけど(2017/03/04 現在)。
Prime で聴けるけどサントラ欲しい。
GRAVITY DAZE/重力的眩暈:上層への帰還において、彼女の内宇宙に生じた摂動 OST
- アーティスト: 田中公平,ゲーム・ミュージック
- 出版社/メーカー: SMD itaku (music)
- 発売日: 2012/03/21
- メディア: CD
- クリック: 12回
- この商品を含むブログ (10件) を見る
#2.仮面の勇者~心の迷宮RPG~ OST
また良曲を見つけてしまった。これだから Prime Music は止められない。
ゲーム自体はやったことないのだけど、Android アプリのゲームらしい。
聴いたらピンと来るかもしれないけど、作曲者は、景山将太(かげやま しょうた)さん。主にポケモンを作曲している人らしい。というのも自分は、スマブラの印象が強かった。
一部しか聴けないし、短いからループが鬱陶しいかもしれないけど、一度は聴いてみて。
- アーティスト: 景山将太
- 出版社/メーカー: SPICA MUSICA
- 発売日: 2016/01/23
- メディア: CD
- この商品を含むブログを見る
C++ のエラー処理
本に書いてあったエラー処理の話がためになりそうだったので、ここにまとめておこうかと思います。
参考にした本は、以下の2冊です。
4.7.4 「エラーの処理方法」を参考にしました。
ゲームエンジン・アーキテクチャは、3.3 「エラーの補足と処理」を参考にしました。
また、自分が持っている本は第1版です。
では、まとめていきます。
エラーが発生した場合に対処する方法は、主に3つです。
- エラーコードを返す
- 例外を投げる
- プログラムを停止する
では、一つずつ見ていきます。
エラーコードを返す
これは、エラー内容を値に置き換えることで対処する方法です。単純でありながら非常に便利です。今回はC++なのでエラーの対処法の一つになりますが、純粋なCの場合だと唯一の方法になります。
また、関数自体が何か値を返したいときにどちらか片方しか返せません。この場合は、エラーコードを返し、引数に値を入れることで対処します。
boost::tuple を使うと複数の結果を返すことが出来るようです。
例外を投げる
これはC++の例外処理を使います。関数が投げてきたオブジェクトを受け取り、対処します。例外を使うとエラー処理と通常の処理を別に切り分けることが出来るので、コードが読みやすくなります。また、シンプルなエラーコードよりも多くの情報を持たせることができます。さらに、大抵のデバッガは例外が発生するとそこで処理が止まってくれる(ブレーク)ので、デバッグが行いやすくなります。しかし、想定外の例外が発生するとプログラムが停止する恐れがあります。また通常は一部でも例外を使用する場合、そのアプリ全体で例外処理を正しく行うようにする必要があります。
エラーが発生した場合は、すぐに関数の処理を停止し、直前に割り当てられていたリソースを解放することが最善です。ただし、NULLなどの例外の値は返さないようにしましょう。関数を呼び出した側がさらにその例外の値をチェックする必要があるからです。この場合は、空のリストを返すようにするといいかもしれません。
エラー時に情報はなるべく多く、エラーの原因を早く突き止められるような情報を載せましょう。
エラーには、大きく分けて二つあります。ユーザエラーとプログラマエラーです。
ユーザエラーは、ソフトウェアを使うユーザが引き起こすエラーで、プログラマエラーはコード自体のバグです。ただし、ユーザにはさらに2種類に分けることができます。
一つは、ゲームをプレイしているユーザで、もう一つは、ゲームを制作しているユーザが引き起こすエラーです。
まとめると
ユーザエラー
- プレイヤーエラー(ソフトウェア使用者)
-
開発者エラー
プログラマエラー
大きく分けて2つ。細かく分けて3つのエラーの種類があります。
このユーザエラーとプログラマエラー、2つのタイプによってエラーの対処法は変わります。
ユーザエラーの場合、ゲームをプレイしていたりゲーム制作の作業をしているのでゲームや作業を止めるようなことはあってはいけません。処理を継続しながらも、ユーザの役に立つ情報を提供することが大事です。
逆にプログラマエラーの場合は、処理を止める必要があります。そして、デバッグを行うために必要な情報を提供します。
では、さらに細かく見ていきます。
プレイヤーエラー
ゲームをプレイしているときのエラーです。当然ゲームが止まるようなことはあってはいけません。そのような重度なエラーでなくとも、例えば、アイテムが0のときにアイテムを使用すると、そのアイテムは使用されずにプレイヤーに今は使うことが出来ないということを知らせる。これもプレイヤーエラーになるでしょう。
開発者エラー
これは、アーティストやアニメーターなどに起こるエラーです。例えばアセット(や画像)のようなデータを読みこませるときに、そのアセット自身が原因で起こるエラーです。このような問題のあるデータをエラーに気づかずまたは無視されていると、そのデータが入ったまま製品として出されることになります。かといって、問題があるから停止をさせると開発者の手が止まり、作業が進まなくなってしまいます。
なのでこの場合は、エラーであることを開発者に分かりやすく伝えながらも処理を継続させます。
プログラマーエラー
プログラマーエラーの場合は、本来あってはならないのですぐに処理を止めます。こうすることで、プログラマーは嫌でもバグを取り除くことになります。
では、エラーの検出、実装方法は何があるのでしょうか。
これはC++のためのAPIデザインにもあったエラーコードと例外。そして、アサートです。アサートは、式をチェックする命令行のことで、これを正しく使用することでプログラマはこれに引っかかると、引っかかった原因を取り除く必要があります。なので、上記の3つのエラーの中では、プログラマーエラーに使われるでしょう。またアサートは通常マクロで定義されるので、製品として出すときは取り除くことが出来ます。
以上、雑なまとめになりますが終わります。
今回のことで分かったのは、エラーの種類には複数あり、その種類によって対処の仕方は全然変わってくるということです。プログラマーのエラーには主にアサートを使い、開発者エラーの場合は、例外処理で処理を継続しつつエラーの情報を提供し、プレイヤーエラーのときは、エラーコードを使用して対処するという感じでしょうか。
そうすると統一性がなくぐちゃぐちゃになりそうですが……。アサートの使い道は分かりやすいですが、エラーコードと例外をどう使い分ければいいかがまだ分かりませんので、エラー処理の対処は、とにかく試行錯誤していくしかなさそうです……。
UE4 の Blueprint インタフェースについて
概要
出来ること
- 関数の作成
- 関数の入出力の追加
- 純粋(const)化*1
出来ないこと
- 変数の追加
- グラフの編集
- コンポーネントの追加
詳細
- 出力される値(アウトプット)がある
- 純粋関数である(Const にチェックをしている)
作成、実装
アクターを移動させる Blueprint
- SetActorLocation
- SetActorRelativeLocation
- AddActorWorldOffset
- AddActorLocalOffset
Location 系
・SetActorLocation
Target(Actor Reference)
|
移動させたいアクター(以下ターゲット)を指定
|
New Location(Vector)
|
世界座標の位置を指定。
|
Sweep(Boolean)
|
True のとき有効。ターゲットが物体にぶつかるとターゲットは停止する。
|
Teleport(Boolean)
|
指定した位置に瞬間移動するようになる |
Sweep Hit Result(Hit Result Structure)
|
Sweep を有効にしているときに何かにぶつかると Hit Result Structureとして返す
|
Return Value
|
移動に成功したとき True を返す。Sweep が無効のときは必ず True になる(はず)
|
詳細
- Sweep の機能は、ターゲットとぶつかる対象の両方が、Collison のオブジェクト応答でブロックしているとき機能する。
- ターゲットは、ルートコンポーネントにコリジョンの設定(オブジェクト応答)をしないと機能しない。
- 注意ではないが、「オーバーラップイベントを発行させる」は有効にしなくてよい。
・SetActorRelativeLocation
Target(Actor Reference)
|
移動させたいアクター(以下ターゲット)を指定
|
New Relative Location(Vector)
|
アウトライナ上で親子関係のある、親を中心(0, 0, 0)とした座標位置を指定。
|
Sweep(Boolean)
|
True のとき有効。ターゲットが物体にぶつかるとターゲットは停止する。
|
Sweep Hit Result(Hit Result Structure)
|
Sweep を有効にしているときに何かにぶつかると Hit Result Structure として返す
|
詳細
Offset 系
・AddActorWorldOffset
Target(Actor Reference)
|
移動させたいアクター(以下ターゲット)を指定
|
Delta Location(Vector)
|
ターゲットの現在位置から Delta Location だけ世界座標を軸に移動する。
|
Sweep(Boolean)
|
True のとき有効。ターゲットが物体にぶつかるとターゲットは停止する。
|
Teleport(Boolean)
|
指定した位置に瞬間移動するようになる。
|
Output
Sweep Hit Result(Hit Result Structure)
|
Sweep を有効にしているときに何かにぶつかると Hit Result Structure として返す
|
・AddActorLocalOffset
Target(Actor Reference)
|
移動させたいアクター(以下ターゲット)を指定
|
Delta Location(Vector)
|
ターゲットの現在位置から Delta Location だけ相対座標を軸に移動する。
|
Sweep(Boolean)
|
True のとき有効。ターゲットが物体にぶつかるとターゲットは停止する。
|
Teleport(Boolean)
|
指定した位置に瞬間移動するようになる。
|
Output
Sweep Hit Result(Hit Result Structure)
|
Sweep を有効にしているときに何かにぶつかるとHit Result Structure として返す
|
詳細
プログラミングするときに使うショートカットキー集
- Windows10
- Visual Studio 2017 RC
- Google Search
- Microsoft Edge
Widnows10
仮想デスクトップ間の移動
|
Windowsキー + Ctrl + (← or →)
|
アプリケーションの切り替え
|
Alt + Tab
|
|
|
|
|
|
|
|
|
Visual Studio 2017 RC
タブ切り替え
|
Ctrl + Tab
|
Ctrl + K && Ctrl + C
|
|
コメントアウト解除
|
Ctrl + K && Ctrl + U
|
矩形選択
|
Shift + Alt
|
文字検索 |
Ctrl + F
|
文字置換
|
Ctrl + H
|
入力補間
|
Ctrl + Space
|
ビルド |
Ctrl + Shift + B
|
デバッグなしで開始
|
Ctrl + F5
|
デバッグの開始
|
F5
|
|
|
Google Search
検索バーに移動
|
/(全角でも可。ただし検索バーに「・」が表示される)
|
検索結果に移動
|
Tab
|
検索結果の移動
|
(↑キー, ↓キー) or ( j, k )
|
|
|
Microsoft Edge
タブを開く
|
Ctrl + T
|
タブを閉じる
|
Ctrl + W
|
戻る
|
Ctrl + ← or Backspace
|
進む
|
Ctrl + →
|
アドレスバーに移動
|
Ctrl + L
|