2017/02/27

Re:星景写真

キットレンズでも星景写真が撮れるんだって!と聞きつけてチャレンジしてみてから少し経過し,ちょうど月が暗い日に晴れていたので再チャレンジしてみることに.

今回は前回の反省を色々活かしつつ,前回の疑問を解消していくというトライである.

まず,前回はキットレンズを使ったのだが,撮った写真を見てみると周辺光量落ちが思った以上にひどいことが判明した.
絞れば多少はマシになるようなのだが,星景写真を撮るという性格上,できれば開放で撮りたい.でもそれだと周辺光量落ちがひどい……
ということで,今回はキットレンズから信頼と安心のSIGMA 30mm f2.8にスイッチ.

前回はシャッタースピード優先モードにしたが,今回はマニュアルモードにしてみた.
ちょっといじるところ多すぎておじいちゃんついていけないゾ……

まず1枚目,早速前回の失敗理由のひとつが判明する.

↑は前回の撮影写真.
なんかしっくりこないのは何でだろうと思っていたが,今回も再現できた.

↑が今回の写真.
何の事はない,ピントが合っていないだけだった.
「星……?ほとんど無限遠みたいなもんやろ!」という適当な考えからピントリングを目一杯回すとこういう写真が撮れるらしい.
ということで,画面中央に明るい星を配置して,DMFでしっかりとピントを合わせる必要があるということがわかった.
まあ,冷静になってみれば当たり前極まりないことなのではあるが.

次にこれ.
撮影データを見ると,f2.8,シャッター時間は30秒でISOは320.
まず全体的に明るすぎる.そしてよく見ると星が流れている,ということでシャッター時間30秒は長過ぎるということ.

色々設定をいじりつつ,今回のベストショット.
まず,ホワイトバランス設定を蛍光灯モードにすることでいかにも夜空っぽいいい色になってくれた.
シャッター時間は思い切って8秒まで短くし,ISOは640.F値は開放2.8のまま.

シャッターの時間はもう少し長めにしてもいいかもしれないし,そうするとISOは少し下げてもいいかもしれない.
この辺は周囲の明るさにもよるところだと思うので,その都度色々試してみるしかないと思う.

とりあえず今回の教訓は,「ピントはDMFでしっかり合わせる」「ホワイトバランスは蛍光灯」という2点かなあ.
寒いと外で試行錯誤する気がなかなか起きないので,もう少し暖かくなってから再チャレンジしたい.
横浜は星を撮るには明るすぎるようだし,秋に帰省したときにでもまた試してみようか.

2017/02/19

自称「日本一FIFA17選手キャリアモードをやりこんだ男」によるFIFA17キャリアモードレビューとFIFA18への願い

タイトル長すぎ.

自称「選手キャリアモードやりこみ日本一」

まあ,上には上がいるのは間違いないわけで,日本一というのは完全に盛っているが,それでもどちらかと言えばFIFA17の選手キャリアモードをやりこんだほうだと思う.
というか,今の時点では選手キャリアしかやっていない.

何ヶ月かしつこく選手キャリアを,しかも一つのセーブデータでやり続けたので,ゲーム内では結構なシーズンが経過した.
別にファンでもないのだが,横浜民なので横浜F・マリノスでキャリアをスタート.サクサクと能力値を伸ばしていき,最初の移籍ではブンデスリーガの王,バイエルン・ミュンヘンへと移籍.
インサイドハーフというポジションを任されたもののできればもっと前線寄りでプレイしたいなあと思っていたところで,プレミアリーグのネタクラブことマンチェスター・ユナイテッドからのオファーが来て移籍.
ユナイテッドではトップ下を任され重要試合でのハットトリック連発などで大爆発.
このままマンUに定着するかと思われたが,ずうううううううっとこのままというのもゲームとして面白く無いなあということで移籍希望を出してみたところ,金満PSGからのオファーがあり移籍.
……したのだが,ポジションがまたしてもインサイドハーフとなり憤死し,再度移籍希望中,というのが現状になる.
マリノスで1シーズン,バイエルンで1.5シーズン,マンUで3シーズン,PSGで2シーズン目,というのがこれまでのキャリアである.

FIFA17にみる「操作システムとしての完成」

FIFA17をやり始めて最初に思ったのは,「操作システムとしてはこれで完成したのではないか」ということだ.
というのも,FIFA16まではシュートパワーと蹴りだす角度が比例しており,地を這うような弾丸ミドルを蹴ることはほとんどできなかった.
今作FIFA17では,シュートボタン長押しからの再度ボタンタップでそのようなシュートを蹴ることができるようになった.
これで「現実でよく見るアレ,FIFAじゃできないなあ」というのは大体なくなったように思う.逆に言うと,次回作以降で操作関連での革新はあまりないのではないかとも思う.
別にそれは悪いことではなく,ようやくゲームのシステムが飽和してきたということだ.

今後の方向性はAIにあり!

反面,相変わらず話にならないのはAI.
EAのスタンスとしては全面に押し出しているのはUltimateTeamのオンライン対戦またはシーズンのオンライン対戦ということなのかは分からないが,オフ専の自分としてはAIの優秀/無能というのは死活問題である.
今作の敵AIは,ディフェンス面ではまあまあだと思うが,オフェンスはFIFA14以降のAIで最悪であると個人的には思う.
中央での意味不明かつ執拗なキープをするばかりで攻撃のスイッチを入れてくるような動きがない.
現実においても攻撃のスイッチが入るのはある種のリスクを負ったプレイであるが,FIFA17のAIはボールを奪われないことに重きを置きすぎてそのようなプレイがない.
なので,こちらが露骨なミスをしないかぎり攻めに出てこないのである.そのくせキープ力だけは非常に高いため,敵AIが延々とつまらないキープを続ける展開がどうしても長くなる.

というわけでAIにはかなりの改善すべき点があると思うし,オンラインにおいても全ての選手をプレイヤーが操作するということはありえないわけで,AIの改善はオフ専民のみならず,オンラインプレイヤーにもメリットがあるはずであるから,この辺はぜひ改善していただきたいと思っている.

一般論としてAIは最近めざましい発展を遂げているので,そのうちそれがCS機の演算レベルにまで降りてくれば,ゲームのAIもまた賢くなってくるのではないだろうか.あくまで希望的観測だが.

FIFA18キャリアモードに向けて

というわけで,キャリアモードにかぎらず一般的な操作体系及びAIに関して言えば,操作体系の改善は飽和し,残すはAIなのではないだろうかという感想を持っている.
しかし,自称キャリモやりこみ人間としてキャリアモードにツッコミを入れるならば,重箱の隅をつつくような細かい願望が幾つかある.

移籍システムの見直し

選手キャリアモードというのは弱小クラブでキャリアをスタートし,ビッグクラブで活躍するスター選手になる,というところまでを想定しているのかもしれない,と思うほどに,能力値が高止まりして以降のシナリオが描かれていないように思う.
これは以前の記事でも書いたことだが,能力値が90を超えてくると移籍金が高騰し,移籍希望を出してもめったにオファーが来なくなる.
仮に来たとしても,それだけの移籍金を支払える金満ビッグクラブからのオファーに限られてしまう.
現実にはどういうことが起こっているかといえば,その部分は契約年数というところで解決されているわけで,キャリアモードにもぜひそういう仕組みがほしいなあと思うわけである.
現実的にはある程度の長期契約が結ばれるのだろうが,ゲーム的流動性の高さのために2年スパンくらいの契約がいいのではないかと思う.

可変ポジション

長期プレイをするという意味では,ポジションを変更できる,というようにしたほうが楽しめると思う.
また,短期的に見ても,移籍後のチームのフォーメーションの中では別のポジションをやりたいと思うようになることもある(例えば,CAM登録で移籍前はトップ下をやっていたが,移籍後は4-3-3なのでインサイドハーフにされた.インサイドハーフをやるくらいならウィングをやりたい……とか).
ランダムでコンバートのお誘いがくるとか,自分から申し出るとか,細かいメカニズムはともかくとしても,ポジションを変更できる仕組みがあればいいなあと思うのである.

日本代表待望論

ついに,ついに!FIFA17からようやくJリーグが収録された.
この勢いでぜひ日本代表が収録されてほしい,と切に思う.
というか,FIFAシリーズは世界中で遊ばれているわけで,日本サッカーのファンの裾野を広げるために,日本側からEAに収録してくださいお願いしますと言ったほうがいいレベルだと思っている.


まあ,なんやかんやでFIFA18はまた買うことになると思うので,その進化を楽しみにしたい.

2017/02/13

FlightSimulator X 使用アドオン覚え書き

とりあえずこの記事は私用メモくらいのつもりで.
導入方法や感想etcは気が向いたら別の記事で個別に.

ビジュアル系

アドオン

2017/02/08

【Python/FSX】YAGETで取得したFSXのフライトログファイルを統合する

YAGETなるソフトを裏で起動することで,FSXのフライトログ(場所・高度)を取得できる.
これで得られるkmlファイルをGoogleのマイマップに取り込んでニヤニヤしていたわけだが,複数のkmlファイルを取り込む時,そのスタイルを統一するのが面倒だった.

そこで,YAGETで得られた複数のkmlファイルを統合し,1つのkmlファイルにするプログラムを書いた.

# -*- coding:utf-8 -*-
from xml.etree import ElementTree
import os
import simplekml

def getPoints(path):
    tree = ElementTree.parse(path)
    elem = tree.getroot()
    
    ElementTree.register_namespace('', 'http://earth.google.com/kml/2.0')
    
    for node in tree.findall(".//{http://earth.google.com/kml/2.0}LineString/{http://earth.google.com/kml/2.0}coordinates"):
        point = node.text
    
    #最初の改行を削除
    point = point[1:]
    
    #空白で分けてリストに
    point = point.split("      ")
    
    #各項目末尾の改行を削除
    points_list = []
    for p in point:
        points_list.append(p.rstrip("\n"))
    points_list.pop(0)
    points_list.pop(-1)
    
    #,でわけてポイントのリストにする
    points_list2 = []
    for p in points_list:
        points_list2.append(p.split(","))
    return points_list2

def getPath(folderpath):
    filename_list = os.listdir(folderpath)
    filepath_list = []
    for n in filename_list:
        path = folderpath + u'\\' + n
        filepath_list.append(path)
    return filepath_list

def writeKml(points, path):
    kml = simplekml.Kml()
    cnt = 0
    points_tuple = tuple(points)
    kml.newlinestring(name="flightlog", description="flightlog",
    coords=points_tuple)
    print kml.kml()
    kml.save(path+'//flightlog.kml')

def main(folderpath):
    filepath_list = getPath(folderpath)
    #全ポイント収録用リスト
    integrated_list = []
    #各ファイルからポイントを取得,収録用リストに移し替え.
    for path in filepath_list:
        l = getPoints(path)
        for p in l:
            integrated_list.append(p)
    writeKml(integrated_list, folderpath)
    
path = raw_inputu(u"pathを入力")
main(path)

Elementtreeによるkmlファイルの読み込みに関しては「Pythonで名前空間付きのXMLを操作する(ElementTree)」を参考にした.
kmlファイルの書き込みに関してはsimplekmlのドキュメントを読んだ.

入力したフォルダ内にあるkmlファイルを1つのkmlファイルにまとめるコードになっている.

kmlの読み込みもそれ用のパッケージを使えばよかったのかなあ,と今さらながら.
一般的なXMLの読み込み方法でゴリ押しして緯度,経度,高度を文字列として取得し,それを無理やりリストに押し込む方法をとった.
ゴリ押しなので,YAGET以外で作成したkmlファイルには使えない可能性が高い.

生成されるkmlファイルは高度データが無視されている(多分newlinestringの仕様)が,Googleマップに取り込む分には高度ファイルは不必要なので,そこはまあいいかなと思っている.

久しぶりにPythonで書いたから割といつも以上に無茶苦茶なコードになってしまった感は強い.

2017/02/02

Flight Simulator Xというゲームの楽しみかた

何がきっかけだったかはもう覚えていないのだが,YoutubeでFlight Simulator X(FSX)の動画を見て,「おっこれやりたい」と思った.
確か去年の10月頃だったと思う.

調べてみるとそんなに要求環境が高いわけでもない.
ただ問題はグラボがないということ.と言ってもそんなにたっかいグラボが必要というわけでもないらしい.

ということで,Twitterで大騒ぎした挙句,GTX1050Tiを購入.
ついでにフライトシミュレーター用のコントローラーもポチってFSXに手を出してみた.

飛行機の知識は全くなかったので探り探り,調べつつプレイをしているとなんとなく飛ばせるようにはなった.
というか,やることは「フライトプランを作って,ロードして指示に従って滑走路へ行って,速度出して飛ばしたらオートパイロットのボタンをいくつか押す.到着地が近づいたら管制の指示に従って旋回して,地面が近づいたらオートパイロットを解除して手動で着陸する」ということだけだ.

この「いくつか」というのが最初は難関で,どれを押せばいいのかよくわかっていなかったが,何度かやってみてようやく理解した.

逆に言うと,それに慣れてさえしまえば,基本的には離陸してから着陸準備に入るまではオートパイロットで決められたコースを勝手に飛ぶことができる.

それをいいことに,飛んでいる飛行機を眺めながらコーヒーを飲んだり,本を読んだり,レポートを書いたりと,このゲームをすることが,意外と有意義な時間の使い方に貢献したりしている.

元々旅行が好きな人間なので,擬似旅行っぽくも楽しめる.
行ったことのない場所に(シミュレーターだが)飛行機を飛ばして行ってみる,空から地形を眺める,そういう楽しみ方もできる.

飛行機を飛ばすゲームとして購入したのだが,意外な楽しみ方ができるいいゲームだと思う.