漫画家は何人居るか?
英語ができる!というための3つのポイント
何を持って英語ができる!!と言うかは難しい。
でも、みんな勉強してて思う「いつかは英語が出来るようになりたい」の状況はある程度は共通認識があるように思う。
そこで、その共通認識を数値化して見ようと思う。
1.単語を十分に知っている:語彙力 2万語
例えば、英語が出来ると言うときには、少なくとも高校生向けの3万語程度の見出し語の辞書の6割~8割は知ってるような状況を想定してると思われる。
これは、大雑把に言うと、1万8000~2万4000ぐらいの語彙力で、新聞記事や英語の雑誌をストレス無く読む事ができるLevelの語彙力だ。
ここで、若干のトリックがあるのは、このぐらいの語彙力でも辞書が無いと意味が分からない語が新聞にも雑誌にもまだまだあるし、ネイティブの半分か1/3ぐらいの語彙力しかない。と言う点。けして、これだけあれば辞書が要らない分けじゃ無い。ただ、辞書が無くても文章の意味を滅多に間違わずに読める。程度の語彙力。
2.読むのは遅くは無い:分速250語
こちらも例を出すなら、小説なんかを一分に一ページぐらい読んでいく状況だろう。
大凡大人向けの本で、専門書みたいなデカイサイズで無ければ、基本的には1ページが250語ぐらいで書かれている。ちょっと大学で英語論文を読まされた人なら、そのアブストを3分一駅で7本読めるペースと考えてもらうといいかも。
また、このくらいのスピードで活字が読めると、話されながら色々と考える時間が出来る。ネイティブの話すスピードはだいたい分速180~220語の範疇なので、それと同等ぐらいだと、聞くのにいっぱいいっぱいで、考える時間が大きく足りなくなって来る。
もちろん、実際に読む速度が分速180語ぐらいでも220語の喋りが聞き取れないわけではない。ただそれは、6分ぐらい(40語×5.5分=220 )喋られると、自覚レベルでいっぱいいっぱいを感じ、20~30分ぐらいの講演やTVドラマなんかだと、結局何を言って単だっけ??と言う現象に陥ってしまう。
3.暗記している文章がある:50文
この数字は、今までの数字と比べると少なすぎ!!と思われるかも知れない。ただ、現実にはこの50文というのは割と多い分量。
イメージとしては、感心のある事や自分の好きな事に対して、ここが
良い・お勧め・有名・裏情報・流行/最新情報・ダメ・失敗談・楽しみ などを
3個ぐらいづつ3分喋れる能力だ。
具体的には、大凡550語程度の文章を50個空で言えるかどうかと言った所。実際には、ちょっとした英語小説の1/3から1/2ぐらいの文量。
そして、それを覚えるとなると、人にもよるがそれぞれを60回~90回は読む事になるだろう。
!! どうしてこれだけで良いのか?
結論から言ってしまえば、上記の3つ全てを超えているなら、他の要因も自動的に満たされるからだ。
文法や構文・語法などに関しても、話す事に関しても、書く事に関しても、上のレベルをこえていれば、人によって得手・不得手はあっても、英語でのコミュニケーションには問題無く出来るし、その不得手もネイティブと比べるから・・・というレベル。つまり比較対象が学習者ではなくて、ネイティブとなり、そのレベル内だと下の方だよね。と言った所。
また、多読がどうたらかんたらと言うのも、あまり関係ない。理由は簡単で、それをやるのは、『本当に英語を使いこなす』時になってからで良いからだ。そして、そのためにも堅実な基礎が必要で、その基礎こそが上の3つだからだ。
いくら多読が良いと言っても、そもそもが最低ラインの単語は分かっていて、苦痛じゃない程度にはスピードがあって、ちゃんと意味が分かる上での話。そうなってくると、前述の通り上の3つが満たされてからの話だと分かる。
sfml_pragma.hの解説
前回の記事より、sfml_pragma.hの解説。
基本的には#pragmaでcompilerやlinkerに指示を渡しているだけのものなのだが、
これをしないとlinkの段階で自分で対象となるlibをしないといけなくなる。
これを毎回やるのは面倒なので、Visual Studioを使う人は前回のsfml_pragma.hみたいな
便利ファイルを書いてしまうのが良い。
さらに、
#pragma comment( lib, "hoge.lib")
のpragmaはVisual StudioのC++compiler向けの物なので、gccなどでは意味の無い命令として解釈される。
具体的には、sfmlではdebug/Releaseとstatic/dynamicとでlibの指定が変わる。
そこで、sfml_pragma.hでは、まず_MSC_VERが定義されているか?
でVisual Studioのcompilerかどうかを区別し、さらにその後_DEBUGで
debug用かrelease用かで分岐、最後にSFML_STATICでstaticかdynamicかで
最終的にどのlibとlinkさせればいいのか?を命令する。
ここで重要なのは、前回の様にコードの始めに
#define SFML_STATIC
などが無い場合には、
出来上がった.exeには必要なライブラリーが足りていないので、
.exeと同じフォルダかWindows システム フォルダまたはWindows フォルダに
SFMLのbinフォルダ以下にある.dllがないと動かせない点だろう。
割とopen source系のものでも、この手のメンドイ作業が多いので、
その手のライブラリーを導入するときはVisual Studio向けにだけでも
sfml_pragma.hみたいな物を導入しておくと色々と楽ができるので、割とお勧め。
(有名所のDXlibさんみたいにWindowsのみ対象で、DXlib.hの中に
この手のセッティングを書いてある事もあるけどね。)
SFML2.0を使ってみよう。2nd:はじめてのコード
前々回、前回から続くSFML2.0の導入編。
いよいよコードを書いて、実行まで。
メンドイ事を一任してくれるheader fileを書く
とりあえず、WindowsでVisual Studioを使ってる人に便利なheader file
ファイル名を sfml_pragma.hとして、下記を
#pragma once // This file is for windows MSVS linker and compiler command set. #ifdef _MSC_VER #ifdef _DEBUG #ifdef SFML_STATIC #pragma comment( lib, "sfml-system-s-d.lib") #pragma comment( lib, "sfml-window-s-d.lib") #pragma comment( lib, "sfml-graphics-s-d.lib") #pragma comment( lib, "sfml-audio-s-d.lib") #pragma comment( lib, "sfml-network-s-d.lib") #else #pragma comment( lib, "sfml-system-d.lib") #pragma comment( lib, "sfml-window-d.lib") #pragma comment( lib, "sfml-graphics-d.lib") #pragma comment( lib, "sfml-audio-d.lib") #pragma comment( lib, "sfml-network-d.lib") #endif #else #ifdef SFML_STATIC #pragma comment( lib, "sfml-system-s.lib") #pragma comment( lib, "sfml-window-s.lib") #pragma comment( lib, "sfml-graphics-s.lib") #pragma comment( lib, "sfml-audio-s.lib") #pragma comment( lib, "sfml-network-s.lib") #else #pragma comment( lib, "sfml-system.lib") #pragma comment( lib, "sfml-window.lib") #pragma comment( lib, "sfml-graphics.lib") #pragma comment( lib, "sfml-audio.lib") #pragma comment( lib, "sfml-network.lib") #endif #endif #endif
c++11向け Hello SFMLwrold
こっちは、C++11向けなので、c++11未対応の2010とかを利用してる人は、
適時for( auto item: list)を for(auto item=list.begin();item != list.end();item++)などに読み替えて下さい。
#define SFML_STATIC #include "sfml_pragma.h" #include <SFML/Graphics.hpp> #include <vector> typedef std::vector<sf::Shape* > ShapeList; void redraw_window(sf::RenderWindow& window, ShapeList& list) { window.clear(); for(auto item: list) { window.draw( *item); } window.display(); }// void redraw_window(... void check_window_closed(sf::RenderWindow& window) { sf::Event event; while(window.pollEvent(event) ) { if( event.type == sf::Event::Closed) window.close(); }//while(window.pollEvent(... }// bool is_window_closed(... int main() { sf::RenderWindow window(sf::VideoMode(200,200), L"SFML 始動!!"); sf::CircleShape circle(100.f); circle.setFillColor(sf::Color::Green); ShapeList sList; sList.push_back( &circle); while( window.isOpen() ) { check_window_closed( window); redraw_window(window, sList); }//while( window.isOpen() ) }//int main()
上記二つのコードをprojectに入れてコンパイルで
緑の丸が出てくるだけのHello SFML Worldが完成!!
いろいろとWarningが吐かれる場合は、落として来たSFMLの
libがデバック用の情報を十分に含んでいない事が理由なので、気にせずに。
細かいコードの説明や、SFMLの本格的なチュートリアルは後ほど、別の記事で。
SFML2.0を使ってみよう in Windows 1st:環境導入
環境導入に当たって
基本的には、SFMLのtutorials=>SFML 2.0=> getting startedの所を読んで、
そのままやる事を理解すれば、特に難しい事は無くWindowsでもUbuntuでも
導入が楽に進むのだが・・・
いかんせん微妙に紛らわしい書き方なのと、日本語じゃないので
日本のGame制作者にはあまり馴染みの無いGame Engineなので、
ある程度詳しく説明する。
出来ているライブラリを利用する
Windows版の場合には、わざわざ自前でSFMLそのものをBuildする事は無いので、普通に公式ページのDownloadの所から、自分のcompiler/開発環境にあったファイルを落とそう。
(※UbuntuではCMakeを使ってSFMLそのものからBuildが良いと思われる。)
ここでは、説明のため下記の環境を想定するが、基本は変わらず、
compilerと対象とするアプリの32/64bit版を選択すればよい。
- Windows7 64bit版
- Visual Studio 2012 professional
- 対象アプリは32bit
http://www.sfml-dev.org/download.phpより
SFML 2.0の方を選び
自分のcompilerと対象アプリの組合せから
落とすfileを決める。
落としたfileは、普通のzipなので、
そのまま適切なフォルダーに展開する。
- ここでは、仮にD:\sfml\32bitに展開したとする。
projectの設定
ここからは、Visual Studioを使っての設定。
- まずは、Visual Studioを起動させ
[新しいプロジェクト] ->[Console Application]
名前を[first_step]で[次へ]。 - 追加のオプションの [空のプロジェクト]にチェックを入れて[完了]
- メニューバーの[プロジェクト]->[プロパティ]で、
ヘッダーとlibのPATHの設定を行う。
具体的には、構成(C):[すべての構成]でDebug/Releaseともに設定を行い。 - 構成プロパティ -> C/C++ で
[追加のインクルードディレクトリ]に <SFML_PATH/include>のPATHを入れる。 - 例では、[D:\sfml\32bit\SFML-2.0\include]
- 同じく、構成プロパティ -> リンカーで
[追加のライブラリ ディレクトリ]に
<SFML_PATH/lib>のPATHを入れる。 - 例では、[D:\sfml\32bit\SFML-2.0\lib]
- !! DLLを使いたくない場合は、
構成プロパティ -> C/C++ ->プリプロセッサ
の中のプリプロセッサの定義に
[SFML_STATIC]を追加する。 !!
pre SFML2.0を使ってみよう in Windows
ゲームを作るには、Programming多くのメンドクサイ事をやらなければならい。
でも、その本当にメンドクサイ事は大体が決まり事なので、共通化されてしばしば
GameEngineと枠組みで提供される事がある。
今回紹介するSFML(http://www.sfml-dev.org/)もそんなGameEngineの一つ。
詳しい説明は大幅に省くが、昔ながらのSDL(http://www.libsdl.org/)
や日本で大活躍のWindows向けDXlib(http://homepage2.nifty.com/natupaji/DxLib/)の
C++版(オブジェクト指向版)でさらにMac OSやLinux系でも使える物と言った所。
正確には、実装がC++なだけでCやC#、Visual Basic.netやPython,Ruby,JavaにOcamlからも利用が可能との事。
ちゃんとした証拠があるわけではないが、Userの人達の実験では、
SDLよりも高速に動くように整備されているらしい。
さて、このSFMLだが、既に随分と前からあってその時の安定版が1.6だった。
そして、2013年の4月29日をもって、めでたくVersion2.0の安定版Releaseとなった。
しかしながら、日本語での情報は乏しい・・・
ので、このBlogでひとまず情報提供を行えればとおもう。
Iconをいろいろと探す。:ゲーム向けIcon Preview
Game制作で一番メンドイのが、素材。
Programは勉強と割り切ったり、適切なツールやツクールに移行すれば
簡単にもできるけど、素材は色々と面倒。
やっぱり、近頃は著作権的な事とかもあるし、
何よりも画面が栄えてるとやる気も違うしね。
Game系に使えそうな素材を配布されている方で
個人的にセンスが合うなぁ。と思った物をPickup!!
== 今回はIconに絞ってご紹介 ==
基本的に、二次配布は不可でも、ゲームに梱包ならOKで
無料使用可能、改変可、配布元を明記ぐらいなライセンスの所のを。
(勿論、使用時は各作者様のラインセスを確認の上ご利用を)
Whitecatさん:
http://whitecafe.sakura.ne.jp/
のMaterialから素材が。
RPGツクール規格な絵だけど、汎用性の高い絵柄でスッキリしてながら
気品あるのでお勧め!!
( 自分のHatenaのアイコンもこちらからお借りしております。)
Game-icons.netさん:
http://game-icons.net/
Download them all でSVGかPNGを選べば、
その時までの全て!!が一括ダウンロード。
白黒だけど、正にiconと言った感じ。種類が1000異常もあるのポイント高いが、
何よりも、観てるだけでゲーム制作意欲が高められるそのクオリティーは、
使用しなくても見る価値あり!!
臼井の会さん:
http://usui.moo.jp/rpg_tukuru.html
ゲーム系素材で、RPG系の高品質チップセットを配布されているので有名な所。
Icon関係も豊富。グラフィック系の素材が一通り揃うので、非常に重宝しますね!!
沙夢さん:
http://sunayume.jp/
やわらかいカンジのIcon。
ミニゲームなどのものなら、案外このカンジのやわらかさのあるIconの方が
障壁が少なくゲームに入って貰えるかも。
化け猫缶詰 素材屋さん:
http://neko.moo.jp/BS/
クオリティが高くて、色々な種類のIconが揃う。
弱点は、どこから入れば良いのか分からない所・・・。素材への辿り口は、
利用規約・素材->enter->黒板枠右下のアイコン->左側の■
で素材が見られる。