[UE4] Unreal Engine4のインストール要件

仕事上、色んな Game Engine を試しておりまして
先日、クリーンで、比較的低スペックな Windows10 PC に
Epic さんの Unreal Engine 4 をインストールしたときに、はふん?と思った件のメモです


Enreal Engine 4 のダウンロード はダッシュボードから出来ます (ログインが必要)

迷わず、Windows のプラットフォームを選択!

落としてきた EpicGamesLauncherInstaller-2.12.14-3176191.msi (2016/11/16現在) を実行します

あれ?

コンピューターにXINPUT1_3.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。

はて。。。何やら懐かしい香りのDLL名がエラーに上がっています( ̄▽ ̄)

UE4 のインストール要件って、なんだったっけ?と思ったのですが、ダウンロードの画面には、何も書かれてないんですよね~

よく判らないから、ドキュメントを見てみよう!ということで
「ハードウェア&ソフトウェア仕様」のドキュメントサイトを見ていくと
ソフトウェアのインストール要件が書かれていました

おぉぉ、DXのランタイム!お前さんだったのかぁ~

というわけで、DirectX End-User Runtimes (June 2010) を入れたら、すんなり UE4 のインストールは出来ました(^o^)

ランチャーのランタイムエラーが判りにくいよ…と思ったけど
これくらいのことはゲーム開発する人にとったら、許容範囲ですかね(^^;)

あと実は、UE4 は Win10 を
今日現在で、オフィシャルにはサポートしてないのかぁと思いました

単にドキュメントの更新の問題かしら???

まぁ今のところ、わたしの Windows10 の環境では
問題なく UE4 の開発環境は動いてるので、特に問題ないです(^^)


[Maya] Maya2015設定ウィンドウの開き方

Mayaはいろんな機能がありますね…
設定の開き方すら判らないという恥ずかしい思いをよくしているので、いざというときの自分のメモです

記載環境は、Maya2015 on Windows10 です

レンダリングエンジンの変更

Mayaのデフォルトレンダリングは OpenGL になっています
DirectX11 に変更する方法

  1. プリファレンスウィンドウを開きます
    Windows
     > Settings/Prederences
      > Preferences

  2. Display カテゴリの Viewport 2.0
    Rendering engine を変更できるドロップダウンリストがあるので、そこで変更できる

レンダー設定

上記はレンダリングエンジンについてでしたが、レンダリングの設定を触るところはまた別の箇所になっています

  1. レンダー設定のウィンドウを開きます
    Windows
     > Rendering Editors
      > Render Settings

  2. レンダー設定ウィンドウ

  3. 使うレンダリングの設定を、ここで選ぶことが出来ます
    わたしの場合は Maya Hardware 2.0 を選択したりしてます

ハードウェアレンダラ2.0設定

浮動小数レンダーターゲットを有効化したいとき

この画面は、Maya2015固有みたいです

  1. Mayaの作業画面(ビューポート)の RendererViewport2.0 の横にある、四角いチェックを押してみます

  2. Hardware Renderer 2.0 Settings のウィンドウが表示されます

  3. 精度を上げた浮動小数レンダリングをするには
    Floating Point Render Target の Enable にチェックを入れます
    フォーマットは、16bit と 32bit が選択できました

カメラの設定

  1. カメラアトリビュートを出すには
    Mayaの作業画面(ビューポート)の ViewSelect Camera を選択します

  2. Attribute Editor がぽこっと現れます
    違うものが現れたときには、
    横のタブに persp, perspShape
    縦のタブに Channel Box/Layer Editor, Attribute Editor があるので
    開きたいものを選択します

インストールされているプラグイン

  1. プラグインマネージャを開きます
    Windows
     > Settings/Prederences
      > Plug-in Manager

  2. プラグイン一覧がここで見れます

自分の必要なメモ書きでした
Mayaは奥が深いですね~


[Unity] Unity用YEBISプラグインのお話してきました

たまには、仕事のお話を…
現在、Unityのプラグインを絶賛開発中で、わたしも少し関わらせて頂いてます

なんのプラグインかというと、ポストエフェクト処理がかけられる「YEBIS」というプロダクトのプラグイン化になります

今、ベータ版として期間限定のトライアルを出し中。。

あぁ、なんでUnityのアセットストアじゃないのかって…?

実は、「特濃!ゲーム開発塾5」というイベントでこのプラグインの話をしてきたのですが、ストアの申請が間に合わず…><
とりあえず、GitHub Pagesに置いてます
(なので、アセットストアに公開するまでの、期間限定サイトです)

ちなみに、イベントURLはこれ

岩手県盛岡市はIT支援がとても盛んらしく、こんなゲーム開発者向けのお祭りイベントがあるんですね~

わたしが参加した日程は 8月9日(火)
対象となる人はプログラマー、もしくはプログラムを将来仕事にしたい人向け
現在、DMM.comラボにてプロデューサをされている松本卓也さんがメイン講師をされました

わたしは30分ほどセッション時間を頂き、このUnityプラグインのお話をさせて頂きました
発表に利用した資料はこれです

ベータ版なので動作不安定な点がいくつもあるのですが、人柱的に試しても良いかなーという心優しい方は、トライしてみてくださいm(__)m

ちなみにドキュメントはこちら

トップは英語で書かれてますが、実は日本語のドキュメントしか今は無いです


[Windows10] PCのGPUを確認する

PCのGPU、つまりグラフィックボードってなんだろな?と思った時の操作メモです

対象は Windows10

(1) まず Windows10 のディスプレイ画面を表示させます

デスクトップ画面を右クリック
 >ディスプレイ設定

もしくは

Windowsのスタートボタン
 >設定
  >システム

(2) 「ディスプレイの詳細設定」を選択!

(3) ディスプレイのカスタマイズの項目の中の、「アダプターのプロパティの表示」を選択!

(4) グラフィックボードの情報が出てきます

このPCはインテルボードでした


別の調べ方としては、DirectX 診断ツール(dxdiag)を使う方法もあり

dxdiag で検索すると、一致するコマンドが出てきます

実行すると、こんな感じで、表示を出してくれます


GPU…気になりますよね…
CPUは多少型が古くても、それほど差が出ないけど
GPUだけは新しい型のものにしとかないと…とかとか
私的にはこだわりたいのです!!!
(実行出来てるかどうかは…涙)


[GitHub] GitHubリポジトリを別アカウントに移動させる

旧 Github Micro Plan では、プライベートリポジトリは5つまでしか持てませんでしたが
最近は Presonal Plan に変更されて、リポジトリ制限数が無制限になりましたね

それを受けて、手元で持っている複数の Micro Plan アカウントを、一つのアカウントにまとめる作業を行いました

あるGithubのリポジトリを別アカウントに移管する、という意味になります

移動元個人アカウント(XXX)のリポジトリ(X-REPO)
   ↓
移動先個人アカウント(YYY)

ドキドキしたけど、結構すんなり出来たので、別にドキドキする必要なかった(^^;)

とはいえ、わたしの様な小心者が、他にもいらっしゃるかもしれないので
(あと、忘れた頃の未来の自分のため^^;)
手順を詳細に載せときます


GiuHub上での操作(移動元)

  1. 移動元(XXX)のアカウントで GitHub にログインします

  2. 移動元(XXX)のGitHubのリポジトリ(X-REPO)の Settings> Options に行きます

  3. 一番下に Denger Zone があるので、そこの Transfer をクリックして、移動させます
    (まだ、いきなりは移動しないよ)

  4. 移動元(XXX)のリポジトリ名(X-REPO)移動先のアカウント名(YYY) を入力します

    これで、リポジトリを移動させる準備が出来ました

  5. 移動元リポジトリ(X-REPO)は、移動先アカウント(YYY)の許可待ち状態になります

    この状態であれば、Abort transferを押して、まだ移管を取り消すことが出来ますね!

その後、移動先アカウント(YYY)にメールが届く

  1. こんなメールが移動先アカウント(YYY)に届きます
<タイトル>
[GitHub] Repository transfer from @XXX (XXX/X-REPO)

<内容> 
Hello YYY,

@XXX wants to transfer the XXX/X-REPO repository to YYY/X-REPO. To accept the transfer, visit this link:

    (★ここにリンクが記載されている)

If you don’t accept the transfer, it’ll expire in about a day.

Questions? Problems? Email support@github.com any time.

Thanks,
Your friends at GitHub

ここで★のリンクをクリックすると、突然の移動完了です
お気を付けください(^_^;)

というわけで、ドキドキしながら★をクリックします

すぐに、移動元アカウント(XXX)にメールが届く

  1. 移動元アカウント(XXX)の方に、通知メールが届きます

YYY added you to X-REPO

You can now push to this repository.

---
View it on GitHub:
https://github.com/YYY/X-REPO

これで、完全に移動が完了しました


結構すんなりすぎて、あっけない感じです

issue、Collaborators など、リポジトリに必要な情報がまるっと移動できるので、とても便利でした


[English] Study Hacker English Companyに通ったら英語苦手じゃなくなったよ

なんか、ポストが長くなったので、最初にまとめを書いておきます
英語がめっちゃ嫌いだったんだけど、英語学習を自主的に継続して出来るようになったよ!というメモ書きです
TOEICの得点が上がったとか、ペラペラ話せるようになったという内容じゃないです

日本だけで過ごしている根っからの日本人にとって、英語がコンプレックスになっている人も多いと思います

わたしは英語がぜんぜん出来ないです…
受験でも嫌々ながら勉強したし><

なぜこんなに英語が嫌いなのか判りませんが、まぁとにかく嫌いでした

ところが、IT業界に携わっていると、嫌でも英語に接する機会があるわけですね…
そもそも情報源は英語しかないとか、普通だし…

そしてなんと、ここ1年のわたしの同僚は、全員が海外メンバーという驚異の環境なので、意思疎通を図るのも English only なわけです

意思疎通どころか、会議も全て英語なので、はっきりいって、
ミーティングの詳細はまったくもって不明ですwww

Programming の下地があるので、なんとか概要は判る程度ではありますが、詳細は…(涙)

それでも、

が、さらにわたしの英語学習の意欲を遠ざけてしまいました…

別に勉強しなくても、まぁ会議の内容はそこそこ聞こえてきたし、
変な英語でも、会話しようと思ったら何とかなるものね…(ま、いっか)

みたいな感じで、1年間が過ぎてしまいました

で、これ↑↑↑ではさすがに、あかんやろ…\(^o^)/

ということで、一念発起しまして、有償の英語トレーニングに申し込みました(もちろん自費)

そこでの英語の先生との出会いで、
今では、わたしの英語学習が、なんと自主的に続くようになったのです!!!

そのへんの経緯を、ちょっと書き出してみたいと思います

英語が必要な環境でも、勉強はしない

アメリカ/カナダネイティブは、もうそれはそれは素晴らしい発音とナチュラルな言い回しをお持ちで、あぁ、あなたたちのその生まれ持った言語能力…天からのたまものですね…
何をどうあがいても、英語のネイティブに、わたしはなれないわけでございます

余談ですが、わたしの周りにはシリコンバレーや大手海外メーカーで働いた経験の人も結構いてて、
彼ら曰く、プロジェクトリーダーの募集条件に「英語ネイティブであること」が、書かれているものもあるらしいです

もうこの時点で、英語利用者の20%くらいしか対象が居ないらしく…ボスが言ってました…厳しい~><。
もちろん、そんなプロジェクトばかりじゃないみたいですけど、
トップオブトップになるには努力だけでは越えられない壁があるようでした

ヨーロッパ系の人は、文法や文字の成り立ちが英語に近いこともあり、日本人ほど苦労せずとも身に着けられるらしいです

「TOEICなんてちゃらいよー990点取れるにきまってるよー」

とか、同僚は言ってますが(ええ、そうですか、それはすごいですね、うらやましいですよ。でももちろん、あんたのその日本語の使い方ははちょっとおかしいんですけど、それはさておき)

ぺらぺらとみなさん第2外国語である英語をしゃべってるわけです

くそ、、バカにしおって。。。(たぶん誰もバカにしてない)
いまに見とけよ( ̄д ̄) (完全に遠吠え)

しかし、思いに反して、わたしの英語学習は一向に進まないのでした…

単語本、文法本が、完全な積ん読本になる毎日…(つまりまったく読んでない)

英語が必要な環境でも、英語を学習しなくても、何とかなってしまうのです!!!

英語が必要な環境だったらなぁ~勉強するのになぁ~なんて言ってるそこのあなた!!!
たぶん、必要な環境になっても、勉強しないです
日本の教育レベルは、なんのかんのといって高いみたいで
中学レベルの英語が判れば、あとは気合で何とかなってしまうのです…

中国に行ったとき、タクシーのおっちゃんが全く英語が話せなくて
(わたしのつたない英語)⇔(おっちゃんの中国語)
とかで、まじで焦りました…
しかし!?会話というのは、判らなくても何とかなってしまうものなのです…!ちゃんと行きたい場所まで行けました

現に、何年も日本に暮らしている海外の方でも、日本語が話せない人も、うちの会社には居てます
日本語判らないのに、どうやって日々生活してるんだろ…と思いますが、それでも何年も過ごせているのです

そもそも日本人向けの外部ツールが充実している

1年経ったら、英語がもうちょっと上手くなってるかなー?ふんふんふーん♪
と思っていた頃もありました……が、そんな奇跡は起きませんでした

会議の英語内容が良く聞こえるようになったのは英語環境で半年くらい経ってから
しかし、その後、一向に英語力は向上しません

最初に書いたように、英語力が向上しなくても、周りがサポートしてくれたり、自分も伝わる単語だけを覚えたりして、何とかなるのでした

しかも、共通言語であるプログラム言語(C#)が、いい感じに意思疎通の橋渡しをしてくれるので、そこまで困らないという…

いやぁ、、困りました…( ̄д ̄)

また、意思疎通は出来るけどぺらぺらと話せないので、めんどくさくなってきて、
なるだけ会話を避けてチャットを使ったりするようになりました
履歴も残って、確実ですしね~

しかも、すっかり英語力を外部ツールに頼るようになりまして…
おススメは、文法チェックをしてくれる Grammarly というサービス
これ、ほんまに最高です(^^)/

これだけ外部ツールが揃っていると、大して英語力が無くても、何とかなってしまうのです…

しかし、これではダメだ…><

英語トレーニングとの出会い

というわけで、英語やだやだ~Grammarlyがあるから、なんとでもなるし~
の日々を一転させたのは、英語の集中トレーニング「Study Hacker English Company」というトレーニングシステムとの出会いです

人づてに存在を聞いた Study Hacker English Company、こちら、スクールではなくトレーニングと掲げているだけあって、英語をトレーナーがびしびしと指導してくれるのです
まるで筋トレ(実際に、英語を話すのは、口周りの筋肉が必要…)

また、日本人の目線で、どうやって発音するのか?どうしてこういう文法なのか?言葉の語源は何か?などを、わたしのレベルに合わせて、判るまで根気よく説明してくれます
ちゃんと日本人が理解できる英語のルール、音声変化の理由を教えてくれます

いやはや。。ネイティブの人に教えてもらっても

「どうしてそう言うのかわからない、とにかくこうやって使うよ~」

という説明はよく聞きますが、それじゃよく判らんのよね…
日本人のための英語の説明は、わたしにはとても合っていました

受講者はTOEICの得点アップを目標にされる方が多いようですが、わたしは仕事での会話が普通に出来るようになりたい、という希望でトレーニングを開始しました

実際には、英単語を覚える学習、シャドウイング(英語の発音を聞いてまねる)などのカリキュラムが、どどーんと待っていました

1回90分、週に2回、3か月間トレーニングは、相当キツカッタデス…

結果的にわたしは、3か月経っても、

(なんかイマイチ英語に対して燃え切れていない&計画的にその後を考えれていない)

という自分が居たので、お願いしてプラス1か月追加しました

1か月分で \120,000.-(税抜き)ですぉ…(2016/7/19現在)
これが4か月分です…自分の一財産が崩れました.。o○

でもやる気だけは…今度こそ…!

最初の1か月目

まず、英語トレーニングに高いお金を払って申し込んだものの、英語を毎日学習するクセがついていないので
宿題を出されても辛かったです

また、わたしは英語が全然できず、なんなら嫌いだったので
(こんなに高いお金を払って恵まれた環境なのに!)どうしてもやる気になれず
週2回のトレーニングがすごく苦痛でした

どうしても嫌で嫌で仕方なかったんですけど、トレーナーの方が、まずは出来る範囲で来てくださいと言って下さって、少し気持ちが楽になりました
(もちろん、その言葉の後には、自己学習しないと上達はしませんけどね… が添えられてましたが(≧◇≦))

トレーナーの方が、うまく発音出来たとか、単語が覚えられたなど、出来たことについて非常にほめてくれるので、
次はもう少しうまくやれるように頑張ろうと、まぁやれる範囲でぼちぼちと自分なりに自己学習をするようになりました

すると、1か月が終わるころくらいに、英語オンリーのチームミーティングの内容が、ほぼ完ぺきに聞こえてくるようになりました
意味が判らない、という場合は、知らない単語が出てきたときだけ
何を話しているのかが、はっきりと聞き取れるようになりました

内輪の定例会議で出てくる単語や言い回しには、それほどバリエーションが無いんだなーを実感した感じです

2か月目

最初よりは慣れてきて、英語学習の際には

が、なんとなく判るようになってきました

とはいえ、英語学習が楽しい~というわけではなく、「あぁまた今日はトレーニングの日か…」などなど、ちょっとゆううつな気分になりながら、(でも比較的まじめに)通っていました

だんだん、覚える単語や熟語が難しくなってきて、見たこともない熟語の羅列にへきえきしながら、まぁ頑張って覚えるんですけど

知らない単語は、一度覚えてもすぐに忘れる!ということがよく判るようになりました

せっかく覚えても、忘れちゃうので、
忘れたらもったいないので、もう一度思い返すために、覚える…を繰り返すのです

何度も何度も何度も繰り返すと、忘れる単語もあるけれども、徐々に覚えが定着する単語もある、ということが体感できるようになりました

最後の3か月目

シャドウイングは、英語を聞いて、発音をまねる訓練なんですけど
これは非常に口の筋肉をたくさん使うので、
練習をしなくなると、途端に元に戻るというか、できなくなるんです

せっかく覚えた単語を忘れてしまう!と同様で
せっかく発音できるようになったシャドウイングの文章が、出来なくなってしまう!

これは非常に悲しみです…この間出来るようになってたのに…(涙目

ということも判るようになったので、毎日シャドウイングはしないといけない!継続しないとまた発音できなくなる!もったいない!!
こんな気持ちになってきたので、出来るときは毎日とにかく英語を発音するようになりました

継続しないと鈍ってしまうっていうのは、スポーツ選手みたいなもんなんでしょうか…

もともと、日本語の発音は、口先でぼそぼそ言っても、普通に伝わる言語らしいので
そもそも発音で使う筋肉が全然違うんでしょうね~

とはいえ、日々追われるがままトレーニングに通っていたので、3か月目で終わった後のことを全く何も考えておらず、 このまま終了したら、

自分だけで引き続き英語学習を継続できるか?

を考えた時に、もうちょっと時間が欲しいなと思いました

相変わらず、英語のことは、それほど好きにはなれず…

そんな思いもあって、1か月だけ延長させていただきました

オプションの4か月目

単語は難しいし、トレーニングに利用する教材もだんだん早口なものになってきていて、いやはや、、大変でしたよ…

ただ、さすがに3か月も続けていくと、こちらにも余裕が出来るというか、

「こういう学習を繰り返していくと、英語が上達するのかー」

という実感が持てるようになってきました
これはわたしにとっては、とても大きな進化です!

あとな~もうちょっと英語そのものに対してポジティブになれればなぁ~と思っていたので、ある時トレーナーの方に思い切って聞いてみました

わたし「あのー基本的なこと聞きますけど」

先生「はい、なんですか」(にっこり)

わたし「先生はやっぱり英語が好きなんですよねぇ…?」

先生「まぁそうですねぇ」

わたし「英語のどこが好きなんですか?」

先生「うーん…わたしの場合は、知らないことが判るようになったら、点と点だったものが、線みたいに繋がるっていうのが楽しいと思いますね」 (的な内容だったと思う)

…とまぁ、これを話している先生はとても楽しそうでした

同じ日本人で、英語がこんなに好きと思える人が、目の前にいるんだなぁと思うと、
嫌い嫌いと思っていた自分がすごく幼いというか恥ずかしく思えてきました

なんとなく、それをきっかけに、英語それほど嫌じゃないかも…と思えるようになりました
※おい…トレーニング1か月目に気づけよわたし…( ̄д ̄)

あとは、最初の頃は出来なかった発音が、結構さらっと言えるようになったりしてて、

「あ、もしかして、今の、昔よりも成長してるのでは!?」

と思えるタイミングが、なんとなく出てきたのも良かったのかもしれません

トレーニングを終えて

驚くべきことに、トレーニングを終えた今、自分で毎日やろうと決めた英語学習のタスクを、
自分で決めて、実践するということが、それほど苦じゃなくなりました

チェックしてくれるトレーナーの方はいませんが、なんか、これなら自分で学習を続けていけそうかも…という気持ちになっています、これ、すごい(≧◇≦)

あと、日本人は英語が苦手だよね~というのは、どうやら表面上だけの話っぽく、周りの人に、英語のトレーニングに通ってるんですよ~というと

とかいう人が続出していて…あれ…日本人、英語苦手じゃなかったっけ???
そう思ってたのはわたしだけ???

という驚愕の事実も判明しました(^^;)

実はみんな、言わないだけで、こっそり英語の勉強してるんですよ!!!

わたしは、今、たぶんトータルで1日1~2時間くらいやってると思います
以前の自分からは、本当に考えられないことです><

TOEICの点が上がってるのかとか、しゃべれるようになったのかとか、外的成果物はそこまで試していないので、まだよくわかりませんが
とにかくこのトレーニングの経験を通して、英語の勉強を続けるのが、とても楽になりました

おまけ

よく、外国語の学習には、その国の彼氏彼女を作るのが手っ取り早いと言いますが…

わたしはそうではないなぁと、この1年思ってます

学習のモチベーションにはなるんでしょうけどねー

例えば外国人男性が、日本人女性と付き合って日本語を覚えると、おねぇ言葉になるんですよ…
しかも、敬語を知らないので、妙に馴れ馴れしいのです

周りに数名いてるので、得てしてそいういう事は、起きるんだろうなぁと思います

ちゃんとした学習教材(これはドラマの会話とかでも良いんですけど)、を使って意識的に言語を学習しないと、特に会話は中途半端に通じるだけに危険!?と思った次第です
仕事で使うならね…

その後

英語のトレーニングも終わったので、最近はSkype英会話を始めました

これ、安価だし、自宅で出来るので結構良いですね

まだ始めたばかりですが、またどこかで感想書くと思います

まとめ

もともと英語が好きとか
帰国子女ですとか
留学してましたとか
うらやましいですね…

そうじゃなくて、英語が大っ嫌い、でも、しゃべれるようになりたい…

そんなわたしでも、Study Hacker English Company でトレーニングを受けたら
まず自分のマインドチェンジが出来ました
(もちろん簡単じゃなかったけど^^;)

いろんな英会話スクール/塾/教室とかあるけど、
どれもこれも、結局は自分で勉強しないといけないので、
勉強の仕方を教えてくれる Study Hacker English Company は良いところだなと思いました

…ほんとは、自分でその学習サイクルのきっかけを見つけれたら、一番いいんですけどね^^

高額なのでおススメとは言いませんが(わたし、別にここの回し者じゃないしw)
わたしは行って良かったです

担当して下さったトレーナーの先生、ありがとうございました~(^^)/


[Windows10] シャットダウンができない対策

Windows10 でシャットダウンが出来ない現象にあった方はいらっしゃいますか~?

わたしもそんな一人でした……(^_^;)

シャットダウンを選択しても、勝手に再起動するんです…  やめてぇ~(つд⊂)エーン

実はこれ、「高速スタートアップ」の設定が効いているときになるPCがあるようです
※会社のインフラ詳しい方に教えて頂きました!

コントロールパネル
 > システムとセキュリティ
  > 電源オプション
   > 電源ボタンの動作の選択
    > 現在利用可の出ない設定を変更します
     > 高速スタートアップを有効にする

今すぐ、「高速スタートアップを有効にする」のチェックボックスを外しましょう!

わたしの場合は、これで、無限再起動が無くなりました(●´ω`●)

よかった。。。いつもバイオス画面になったのを見計らって、ブチギリしてたんですよ…( ;∀;)

シャットダウンが出来ない人の助けになればと思います!


[C++] VisualStusio2015でClangを使う設定

今日は Clang with Microsoft CodeGen の設定などについて、メモしておきます

先人たちが既に色々と試している内容と対して変わりませんが、そもそも日本語の情報も少ないので、何かの足しになればと思います

“Clang with Microsoft CodeGen” is here!

最近はすっかり、クロスプラットフォームやオープンソースに力を入れているマイクロソフト社のツールセットの中に、Clang対応ってのがあります

2015年の年末にですが、Clang が正式に Visual Studio 2015 Update1 で利用できるよ~
とVC++チームブログで発表されていました

良いですねー(^^)
現在のVS2015には Clang with Microsoft CodeGen というツールセットが提供されており、目玉はなんといっても、Clang のデバックを Visual Studioのエディターで確認できるところでしょうか!

他にも、Clang でコンパイルしたobjと VC でコンパイルしたobjがリンクできるところもすごいです
既存資産をフル活用出来そうですね

(2016/5/15現在、Visual Studio 2015 Update2 が最新です)
https://www.visualstudio.com/ja-jp/news/vs2015-update2-vs.aspx


LLVM側にも記事が上がっています


日本でも既に先人が試されているので、読んでみると良いと思います


ちなみに、この Clang with Microsoft CodeGen は VC++チームブログにも “a.k.a. Clang/C2” と記載されており、別名を Clang/C2 というようです

また、今回対応している Clang 側のバージョンは 3.7 です

clang.exe の場所

Clang

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\Clang 3.7\bin\x86\clang.exe

ちなみにVC++

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\cl.exe

どちらでも、コマンドプロンプトでコンパイル可能です

VSでのコンパイラの切り替え設定

Visual Stidon 2015 上で “Alt + F7” を押すか

プロジェクト > [プロジェクト名]のプロパティ

で設定UIを表示させます

構成プロパティ > 全般 > プラットフォームツールセット

この項目を “Clang 3.7 with Microsoft CodeGen (v140_clang_3_7)” に変更するだけです

結構簡単\(^o^)/

ソリューション作成は何でもOK

上記の様に、コンパイラが簡単に切り替えられるので、空のプロジェクトでも、Win32コンソールアプリケーションでもOKです

一応、Clangっぽいプロジェクトはあるんですけど、いきなり dll というのもなんだか敷居が高いので、

exe を作りたいだけなら、Win32コンソールアプリケーションで良いと思います

[余談]文字コードはUTF8の方が良い(様な気がする)

最初に書いておくと、Sift-JIS でも Clang/C2 でコンパイルは通ります

…なのですが、一応、なんとなく

個々の環境によって異なるのかもしれませんが
わたしがVS2015で作成した cpp ファイルは、デフォルトで Sift-JIS になります

既に、VC++チームブログ にはこんな感じで↓↓↓

If source files in the project you are trying to convert are UTF-16 encoded, you will need to resave them as UTF-8 when Clang gives you an error about UTF-16 encoded source with BOM.

UTF-16はだめらしいです
Sift-JIS は無関係かもしれませんが、一応…

サンプルコード

cpprefjp を参照して、サンプルコードを書いてみました

VC2015 Update2 では未対応だけど、Clang 3.7 は対応しているというコードです

#include "stdafx.h"
#include <iostream>

constexpr int f()
{
	int result = 0;
	return result;
}

int main()
{
	std::cout << "Hello: " << f() << std::endl;

	return 0;
}

Visual Studio 2015 (v140) でコンパイルすると、エラー

VS2015 ではまだ、constexpr関数内の変数宣言がエラーになる様です

Clang 3.7 with Microsoft CodeGen (v140_clang_3_7) でのコンパイル

Clang はOKです
いい感じに動作しました!


VC++も Clang も、VS上でデバック出来るのは良いですね
噂には聞いていましたが、自分で動作させてみると、感激するもんがあります

今はまだプレビューらしいので、早く安定化して欲しいですね~


[SSH] 複数キー接続のconfig記載について

前回、
[Git] Gitで利用するsshキーペアの作成、ssh接続、複数ID接続
で Gitサーバにアクセスするための ssh 接続について記載しました

その追記メモです

.\.ssh\config ファイルに記載する内容

Git アクセス に ssh を利用する際に、複数アカウントを利用したい
つまり、複数 ssh キーを利用したい
という場合についてです

もし、利用するキーの名前が id_rsa であれば
これはデフォルトで認識される名前なので、わざわざ .\.ssh\config ファイルに記載しなくても接続OK
でした

つまり例えば、

  1. 元々 社内用 Git サーバのアクセスに id_rsa を利用していた
  2. 追加で、GitHub にアクセスするキー(github_rsa など別名称)を作成した

こんな場合があったとします

.\.ssh\config ファイルに記載する内容は 2. の github_rsa のものだけでOKです

もちろん、 1. の id_rsa を書いても問題ないですし、コンフィグにちゃんと記載されている方が、後々判りやすいと思いますが
無理に config に追記しなくてもわたしの環境では問題なく接続できました

参考までに~(^^)/


[Unity] PC実行時のWindowsサイズの設定の仕方&起動時フック

Unityのバグなのか、わたしの使い方が悪いのか?
PC実行時のウィンドウサイズの設定が、思うようにできなかったので
その解決メモです

PCで実行したら全画面…

Unityのプロジェクトファイルを新規作成して

“File” → “Build & Run”

を選択すると、ビルドが走り、実際に exe が実行されます

へぇ、画面解像度( Screen resolution )とか、ここで変えることが出来るんだ~
と思って解像度設定を変更し、”Play!” で起動させると、いちおう思ったサイズで起動することが出来ます

Unityプロジェクトに Plyaer Settings がある

ユーザに毎回ウィンドウサイズを選択させるのも、なんだかねぇ…ということで、ちゃんと設定したいと思います

Unityのメニューの

“File” → “Build Settings”

Build Settings を選択すると、ビルドに関する設定が変更できるようです
下にある、”Player Settings” を選択すると、 インスペクタウィンドウが出ます

ここで、起動時の Player Settings が出来るようですが…

「Resolution」 の 「Default Is Full Screen」 のチェックボックスを外しましょう
ついでに、「Standalone Player Options」 の 「Display Resolution Dialog」 を 「Disable」 にしておきます

これで exe を実行するたびに 「FixSizeWindows Configuration」 は開かなくなります

「Resolution」 には、「Default Screen Width/Height」 がありますが、、、
ここで設定を変えても、ウィンドウサイズは変わりません
(なんでやねん…><)

どうやら、「前回起動したときのウィンドウサイズ」で起動するみたいです…
Development Build にしても、しなくても、結果は一緒でした
初期起動のサイズは、ここじゃないのかな…(´・ω・`)

余談ですが、ここで変えた設定は、

の中に、テキストファイルで保存されます

ウィンドウサイズはプログラムで変更

仕方がないので、スクリプトで記載します

Unityのメニュー Assets > Create > C# Script で新規スクリプトを作ります

わたしは適当に GameInitial と名付けました(Unity の Project 内に、GameInitial の C#ファイルが追加されます)

いーっちばん最初のゲーム起動時をフックしたい?

もちろん、ウィンドウサイズを変更したいためです
解像度が小さい/大きいなど
起動したときに、クライアント端末によってウィンドウサイズを変えたいとかあると思います

たぶん、現状の Unity 5.3系の最速フック方法は、RuntimeInitializeOnLoadMethod ではないかと…

ユーザがアクションを起こす前に動くらしいですが
実際やってみると、ロゴ起動画面の方が先に動くので
ほんとの意味の一番最初のウィンドウサイズは、ここでは遅いみたいです

一応サンプルコード
MonoBehaviour は無くても動くみたいです
あと、オブジェクトなどにスクリプトをアタッチしなくてもOKです

using UnityEngine;

public class GameInitial //: MonoBehaviour
{
    [RuntimeInitializeOnLoadMethod]
    static void OnRuntimeMethodLoad()
    {
        Screen.SetResolution( 640, 960, false, 60);

    }

    //// Use this for initialization
    //void Start()
    //{

    //}

    //// Update is called once per frame
    //void Update()
    //{

    //}
}

自分が知らないだけかもしれませんが、 RuntimeInitializeOnLoadMethodAttribute より早い時点で自分の処理を差し込むことは出来ないみたい…

ウィンドウサイズを指定できるコマンドライン引数がある!

結局、起動時のウィンドウサイズは結局どこで更新するんでしょうか…?

実は、飛び道具的ですが、exe の引数に渡せるみたいです…!(そこか…><

自分で作った exe の引数に

を渡してあげればOKでした

> xxx.exe -screen-width 300 -screen-height 300

小さいスクリーンサイズで起動したのちに…

自分の指定した Screen.SetResolution サイズで起動

つまり、引数に自分で好きな数値を渡せるようになってるので
それと、Screen.SetResolution の指定を同じ大きさにしておけば
最初から自分自身でサイズを調整できますね

なんだろなー
なんで起動時のサイズくらい、すんなり設定できないんでしょうか…謎や~

もしかしたら、無料版では起動時のロゴを外せないようにするために、プログラマは触れないようになってるのかなー?

ともあれ、意図したことは出来るようになっているので、まぁ良しとします!