mieki256's diary



2014/01/01(¿å) [nǯÁ°¤ÎÆüµ­]

#1 [nitijyou] ¤¢¤±¤ª¤á¤³¤È¤è¤í

¤¢¤±¤Þ¤·¤Æ¤ª¤á¤Ç¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£ËÜǯ¤â¤É¤¦¤¾¤è¤í¤·¤¯¤ª´ê¤¤¿½¤·¾å¤²¤Þ¤¹¡£

#2 [cg_tools] Mitsuba 0.4.5¤ò»îÍÑ

Mitsuba ¤È¤¤¤¦¥ì¥ó¥À¥é¡¼¤Î¿·ÈÇ 0.4.5 ¤¬¸ø³«¤µ¤ì¤Æ¤¿¤è¤¦¤Ê¤Î¤Ç»î¤·¤Ë»È¤Ã¤Æ¤ß¤è¤¦¤«¤È¡£

_2013/11/03¤ÎÆüµ­ ¤òÍê¤ê¤Ëºî¶È¤ò¤·¤Æ¤¤¤Ã¤¿¤Î¤À¤±¤É¡¢mtsgui.exe ¤ò¼Â¹Ô¤·¤Æ¤â¡¢¡ÖMSVCR120.dll ¤¬¤Í¤¨¤è¡×¤Èʸ¶ç¤ò¸À¤ï¤ì¤Æµ¯Æ°¤Ç¤­¤º¡£¡Ä Mitsuba ¤Î²òÅà¥Õ¥©¥ë¥À¤ÎÃæ¤Ë¡¢vcredist_2013_x64.exe ¤È¤¤¤¦¡¢¤½¤ì¤é¤·¤¤¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤³¤È¤Ëµ¤¤¬¤Ä¤¤¤¿¡£¼Â¹Ô¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ß¤¿¤é¡¢mtsgui.exe ¤¬µ¯Æ°¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£

_¥Þ¥¤¥¯¥í¥½¥Õ¥È¸ø¼°¥À¥¦¥ó¥í¡¼¥É ¥»¥ó¥¿¡¼ - Visual Studio 2013 ¤Î Visual C++ ºÆÈÒÉÛ²Äǽ¥Ñ¥Ã¥±¡¼¥¸ ¤«¤é¤âÆþ¼ê¤Ç¤­¤ëÌÏÍÍ¡£¤³¤Ã¤Á¤Ï¥¤¥ó¥¹¥È¡¼¥é¤¬ÆüËܸìɽ¼¨¤À¤Ã¤¿¡£

Mitsuba¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤Î blender ¤Î¥¢¥É¥ª¥ó¤Ï¡¢Á°²ó¤«¤é¹¹¿·¤µ¤ì¤Æ¤Ê¤¤¤Ã¤Ý¤¤¡£

Mitsuba ¤Ç¥¬¥é¥¹¤Ã¤Ý¤¤¥Þ¥Æ¥ê¥¢¥ë¤ò³ä¤êÅö¤Æ¤ëÊýË¡¤¬Ê¬¤«¤é¤º¡Ä¡£

#3 [nitijyou][cg_tools] ǯ²ì¾õ¤òºîÀ®

Ê¡Åç¤Î»°½Õ¶ð¤ò²èÁü¸¡º÷¤·¤Æ»²¹Í¤Ë¤·¤Ê¤¬¤é¡¢blender ¤Ç¥â¥Ç¥ê¥ó¥°¡£Cycles ¤È LuxRender ¤Ç¥ì¥ó¥À¥ê¥ó¥°¤·¤Æ¤ß¤Æ¡¢¥è¥µ¥²¤Ê¤Û¤¦¤ò GIMP ¤Ç¿§Ä´ÊäÀµ¡¦¥³¥ó¥È¥é¥¹¥ÈÊѹ¹¡¦¥Õ¥©¥ó¥ÈÉÁ²è¡£É®¤Þ¤á¤ËÆɤ߹þ¤ó¤Ç¥ì¥¤¥¢¥¦¥È¡£

¡ý 3DCG¥Ä¡¼¥ë¤Ë¤Ä¤¤¤Æ¡£ :

Îãǯ¡¢Shade ¤Çǯ²ì¾õÍѲèÁü¤òºî¤Ã¤Æ¤¤¤¿¤Î¤À¤±¤É¡£º£Ç¯¤ÏÄÁ¤·¤¯ blender ¤ò»ÈÍѤ·¤Æ¤ß¤¿¤ê¡£»°½Õ¶ð¤¬¡¢¤É¤¦¸«¤Æ¤â¡¢¡Ö¥Ü¥¯¤ò¥Ý¥ê¥´¥ó¤Ç¥â¥Ç¥ê¥ó¥°¤·¤Æ¤è¡ª¡×¤Æ¤Ê·Á¾õ¤À¤Ã¤¿¤Î¤Ç¡Ä¡£ºÇ¶á¤Î Shade ¤â¡¢¥Ý¥ê¥´¥ó¤Ç¥â¥Ç¥ê¥ó¥°¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ï¤Ê¤Ã¤Æ¤ë¤Ï¤º¤À¤±¤É¡¢Ì¤¤À¤ËÁàºîÊýË¡¤¬Á´Á³Ê¬¤«¤é¤Ê¤¯¤Æ¡£

¡ý ǯ²ì¾õ¥½¥Õ¥È¤Ë¤Ä¤¤¤Æ¡£ :

É®¤Þ¤á¤ò¿¨¤Ã¤Æ¤Æµ¤¤Ë¤Ê¤Ã¤¿¤±¤É¡¢¤³¤ì¤Ã¤Æ¥Õ¥©¥ó¥È¤Î±ï¼è¤êµ¡Ç½¤È¤«¤É¤³¤«¤Ë¤¢¤ë¤Î¤«¤Ê¡£¤è¤¯Ê¬¤«¤é¤Ê¤¤¤«¤é¡¢GIMP ¤Çºî¶È¤·¤Æ¤·¤Þ¤Ã¤¿¤±¤É¡£¡Ä¤à¡£¡Öʸ»ú¾þ¤ê¡×¤Ã¤Æ¤Î¤¬¥½¥ì¤Ê¤Î¤«¤Ê¡£¤·¤«¤·»î¤·¤Æ¤ß¤¿¤é¡¢¤Ê¤ó¤À¤«ÎسԤ¬¥¬¥¯¥¬¥¯¤·¤Æ¤ë¤è¤¦¤Ê¡£¿Þ·ÁÉÁ²è¤â¤½¤¦¤À¤±¤É¡¢É®¤Þ¤á¤ÏÁ´ÈÌŪ¤Ë¥¢¥ó¥Á¥¨¥¤¥ê¥¢¥¹¤ò¤«¤±¤Ê¤¤¤Þ¤ÞÉÁ²è¤·¤Æ¤ë¤é¤·¤¤¡£¤â¤Ã¤È¤â¡¢¥×¥ê¥ó¥È¥¢¥¦¥È»þ¤Ï¤½¤Î¤Û¤¦¤¬ÅԹ礬Îɤ¤¡¢Åù¤Î²ÄǽÀ­¤â¤¢¤ê¤½¤¦¤Êµ¤¤â¤¹¤ë¡£

¿Þ·ÁÉÁ²è»þ¤Ë¡¢±Æ¤Î¥ª¥Õ¥»¥Ã¥È°ÌÃÖ¤òÊѹ¹¤Ç¤­¤Ê¤¤¤È¤«¡¢±Æ¤òȾƩÌÀ¤Ë¤Ç¤­¤Ê¤¤¤È¤«¡¢¤½¤Î¤¢¤¿¤ê¤â¾¯¤·µ¤¤Ë¤Ê¤ë¡£È¾Æ©ÌÀ¤Î±Æ¤òºî¤ë»þ¤Ï¡¢Æ±¤¸·Á¾õ¤Ç¿§¤À¤±ÊѤ¨¤¿¿Þ·Á¤òºî¤Ã¤Æ¡¢±¦¥¯¥ê¥Ã¥¯¤Ç¿Þ·ÁÁ´ÂΤÎÆ©ÌÀÅÙ¤òÊѹ¹¡¢¤È¤«¤Ë¤Ê¤ë¤Î¤À¤í¤¦¤«¡£ÌÌÅݽ­¤¤¤Ê¡Ä¡£¤Ç¤â¡¢¤³¤¦¤¤¤¦»ÅÍͤΤۤ¦¤¬¡¢°ìÈ̤ÎÊý¤Ë¤Ï¤Þ¤Àʬ¤«¤ê¤ä¤¹¤¤¤Î¤À¤í¤¦¤«¡£

¤Ç¤â¤Þ¤¢¡¢¤³¤¦¤¤¤¦µ¡²ñ¤Ç¤â¤Ê¤¤¤È°·¤ï¤Ê¤¤¥½¥Õ¥È¤Ê¤Î¤Ç¡¢º£²ó¿¾¯¤ÏÊÙ¶¯¤Ç¤­¤¿¤«¤Ê¤È¡£

#4 [nitijyou][pc] Ä郎µ¢¾Ê

ͼÊý4:30º¢¤ËÅþÃå¡£

¡ý BD¤òºÆÀ¸¤·¤è¤¦¤È¤·¤Æ»Í¶ìȬ¶ì¡£ :

¡Ö¥Ñ¥·¥Õ¥£¥Ã¥¯¡¦¥ê¥à¡×¤Î3DÈÇBD¤ò»ý¤Ã¤Æ¤­¤¿¤½¤¦¤Ç¡¢¼«Ê¬¤Î3DÂбþ¥Ç¥£¥¹¥×¥ì¥¤¡¢MITSUBISHI RDT233WX-3D(BK) ¤Ç¸«¤ë¤È¤É¤ó¤Ê´¶¤¸¤Ë¸«¤¨¤ë¤Î¤«¡¢¤Æ¤Ê¼Â¸³¤ò¡£

¤È¤³¤í¤¬¤½¤â¤½¤â¡¢Cyberlink PowerDVD 11 Ultra ¤Ç¡¢·ï¤ÎBD¤¬ºÆÀ¸¤Ç¤­¤º¡£²¿Åٻ¤Æ¤â¡¢¡Ö¥¹¥È¥ì¡¼¥¸¥Ç¥Ð¥¤¥¹¤¬¸«¤Ä¤«¤é¤Ê¤¤¡×¤À¤Î¡¢¥ê¡¼¥¸¥ç¥ó¥³¡¼¥ÉÁªÂò¥À¥¤¥¢¥í¥°¤Î¼¡¤Î²èÌ̤ǡÖdll¤¬¥¨¥é¡¼¡×¤Èʸ¶ç¤ò¸À¤Ã¤Æ¤¯¤ë¡£

¤É¤¦¤ä¤é¡¢°Ê²¼¤Î¾É¾õ¤ÈƱ¤¸¤é¤·¤¤¡£

_¥«¥¹¥¿¥Þ¡¼¥µ¥Ý¡¼¥È - PowerDVD 11 Ultra/Pro¤Ç¥Ö¥ë¡¼¥ì¥¤ºÆÀ¸¤¬¤Ç¤­¤Ê¤¤ (¥¹¥È¥ì¡¼¥¸¥Ç¥Ð¥¤¥¹¡¢¥¨¥é¡¼¥³¡¼¥É 101¡¢¥¨¥é¡¼ 800401F9) | CyberLink

_PowerDVD ¤ò¥¢¥Ã¥×¥Ç¡¼¥È | CyberLink ¤«¤é¡¢PowerDVD 11 Ultra ÍѤΥӥë¥É4423¥Ñ¥Ã¥Á¤òDL¡¢¥¤¥ó¥¹¥È¡¼¥ë¤·¤ÆOSºÆµ¯Æ°¤ò¤·¤¿¤È¤³¤í¡¢¸«¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£

¤Á¤Ê¤ß¤Ë¡¢·ï¤Î¥Ú¡¼¥¸¤«¤éDL¤Ç¤­¤ë¤Î¤Ï¡¢CyberLink_PowerDVD_Downloader.exe ¤È¤¤¤¦¡¢¥À¥¦¥ó¥í¡¼¥À¥×¥í¥°¥é¥à¤À¤±¤Ç¡¢¼ÂºÝ¤Î¥Ñ¥Ã¥Á¡¢PowerDVD_v4423_r85663_Ultra_DVD130410-05.exe ¤Ï¡¢¥À¥¦¥ó¥í¡¼¥À¥×¥í¥°¥é¥à¤¬¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤¯¤ì¤ë¡£¤¿¤À¡¢140MByteÄø¤ÎµðÂç¤Ê¥µ¥¤¥º¤Ê¤Î¤Ç¡¢¥Ñ¥Ã¥Á¤È¸À¤¦¤è¤ê¤â¡¢À½ÉÊËÜÂΤò´Ý¡¹¥¢¥Ã¥×¥Ç¡¼¥È¤·¤Æ¤ë¤Ã¤Ý¤¤¡£¹¹¿·»þ¤ËÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤òºï½ü¡¢¤Æ¤Ê¥á¥Ã¥»¡¼¥¸¤âɽ¼¨¤µ¤ì¤Æ¤¿¤·¡£

¤µ¤Æ¤ª¤­¡¢¡Ö¥Ñ¥·¥Õ¥£¥Ã¥¯¡¦¥ê¥à¡×3DÈǤ諤¿ÌܤÀ¤±¤É¡£RDT233WX-3D(BK)¤ÏÊи÷Êý¼°¤Ê¤Î¤Ç¡¢½Ä¤Î²òÁüÅÙ¤ÏȾʬ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Ï¤º¤À¤±¤É¡¢¤½¤Î¤¢¤¿¤ê¤Ï°Õ³°¤Èµ¤¤Ë¤Ê¤é¤Ê¤«¤Ã¤¿¡£¤â¤Á¤í¤ó¡¢¥Õ¥ì¡¼¥àÀÚÂØ(?)¼°¤ä¡¢SONY HMZ-T1 Åù¤Î3DÂбþHMD¤Ê¤é¡¢¤â¤Ã¤ÈÇ÷ÎϤ¬¤¢¤ë¤Î¤À¤í¤¦¤Ê¤È¡£

2014/01/02(ÌÚ) [nǯÁ°¤ÎÆüµ­]

#1 [movie] ¡Ö¥Ñ¥·¥Õ¥£¥Ã¥¯¡¦¥ê¥à¡×¤ò»ëÄ°

Äï¤ËÁ¦¤á¤é¤ì¤Æ(?)¡¢»ëÄ°¤·¤Æ¤ß¤¿¤ê¡£

ÁÇÀ²¤é¤·¤¤¡£¤Þ¤ë¤ÇÌ´¤Ç¤â¸«¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ê±ÇÁü¡¦Å¸³«¤À¤Ê¤È¡£¹«¤ÎɾȽ¤Ë¤âǼÆÀ¡£¤³¤ì¤ÏÁÇÀ²¤é¤·¤¤¡Ä¡£ÂçÀ仿¤µ¤ì¤ë¤ï¤±¤À¤Ê¤È¡£

狼¤¬¡¢¡Ö¤³¤ì¤Ï¥Ý¥ë¥Î¥à¡¼¥Ó¡¼¤À¡×¤È¾Î¤·¤Æ¤¿¤±¤É¡¢¤¿¤·¤«¤Ë¤½¤ì¤â°ìÍý¤¢¤ë¤Ê¤È¡£ÃˤλҤÎÌ´¤ò¸ʬ¤ËÆͤùþ¤ó¤Ç¤·¤Þ¤Ã¤¿±Ç²è¤Î¤è¤¦¤Ë»×¤¨¤¿¤ê¡£µðÂç¥í¥Ü¥Ã¥È¤È²ø½Ã¤Î¥×¥í¥ì¥¹¥Ð¥È¥ëÁ´³«¡¢¤À¤â¤Î¡Ä¡£

2014/01/03(¶â) [nǯÁ°¤ÎÆüµ­]

#1 [ruby] Ruby¤Ç²èÁü¤ò¥À¥¦¥ó¥í¡¼¥É

¿ôÆüÁ°¤«¤é¡¢¡ÖRuby¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤¹¤ë¤À¤±¤Ç¥É¥Ã¥È³¨¤¬É½¼¨¤µ¤ì¤¿¤é³Ú¤À¤í¤¦¤Ê¡¼¡×¤È»×¤Ã¤Æ¡¢¥¢¥ì¥³¥ì¹Í¤¨¤Æ¤¿¤Î¤À¤±¤É¡£¤Õ¤È¡¢¡Ö¼ê¸µ¤Ë²èÁü¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¤é¡¢¤½¤Î»þ¤À¤±¡¢Web¥µ¡¼¥Ð¤«¤é»ý¤Ã¤Æ¤¯¤ì¤Ð¤¤¤¤¤ó¤¸¤ã¤Ê¤¤¤«¡©¡×¤ÈÁ®¤¤¤Æ¡£

¸¡º÷¤·¤Æ¤ß¤¿¤é¡¢ _¥Í¥Ã¥È¾å¤Î²èÁü¤òRuby¤Ç¥À¥¦¥ó¥í¡¼¥É¤¹¤ëÊýË¡ - ¥À¡¼¥¯¤Ê»å ¤Ç²òÀ⤵¤ì¤Æ¤ëÆâÍƤ¬¤½¤Î¤â¤Î¥º¥Ð¥ê¤Ê´¶¤¸¤Ç¡£»²¹Í¤Ë¤·¤Ä¤Ä¡¢¼«Ê¬¤â¼Â¸³¡£

_http_access_test1.rb
# ²èÁü¤ò¥Í¥Ã¥È¤«¤éÆɤ߹þ¤à¥Æ¥¹¥È¤½¤Î1

require 'open-uri'
require 'dxruby'

uri = "http://www.geocities.jp/mieki256jp/resource/_dxruby_image_ufo.png"
fn = File.basename(uri)
unless File.exist?(fn)
  # ¥«¥ì¥ó¥È¥Õ¥©¥ë¥ÀÆâ¤Ë²èÁü¤¬Ìµ¤¤¤Î¤Ç¥À¥¦¥ó¥í¡¼¥É
  puts "not found #{fn}"
  puts "download #{uri}"
  src = open(uri)
  dst = open(fn, "wb")
  dst.write(src.read())
  dst.close()
  src.close()
else
  puts "found #{fn}"
end

img = Image.load(fn)

Window.loop do
  break if Input.keyPush?(K_ESCAPE)
  Window.draw(0, 0, img)
end

_http_access_test2.rb
# ²èÁü¤ò¥Í¥Ã¥È¤«¤éÆɤ߹þ¤à¥Æ¥¹¥È¤½¤Î2

require 'net/http'
require 'uri'
require 'dxruby'

uri = URI("http://www.geocities.jp/mieki256jp/resource/_dxruby_image_sprite1.png")
fn = File.basename(uri.path)
unless File.exist?(fn)
  # ¥«¥ì¥ó¥È¥Õ¥©¥ë¥ÀÆâ¤Ë²èÁü¤¬Ìµ¤±¤ì¤Ð¥À¥¦¥ó¥í¡¼¥É
  puts "not found #{fn}"
  puts "download #{uri.host} #{uri.path}"
  http = Net::HTTP.new(uri.host)
  response = http.get(uri.path)
  image = response.body
  file = open(fn, "wb")
  file.write(image)
  file.close()
else
  puts "found #{fn}"
end

img = Image.load(fn)

Window.loop do
  break if Input.keyPush?(K_ESCAPE)
  Window.draw(0, 0, img)
end

°ì±þ¡¢Geocities Æâ¤Î¼«Ê¬¤Î¥¢¥«¥¦¥ó¥È¤Ë¥¢¥Ã¥×¥í¡¼¥É¤·¤¿²èÁü¤ò¡¢DL¤«¤Äɽ¼¨¤¹¤ë¤³¤È¤Ï¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£

¤¿¤À¡¢¼«Ê¬¤¬ºÇ½é¤Ë¤ä¤Ã¤Æ¤ß¤¿¤¤¤È»×¤Ã¤¿½èÍý¤Ï¡¢Dropbox ¤ËÃÖ¤¤¤Æ¤¢¤ë²èÁü¤ò¼èÆÀ¤¹¤ë½èÍý¡¢¤À¤Ã¤¿¤ï¤±¤Ç¡Ä¡£Geocities ¤Ë°ì¡¹¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë¤Î¤Ï¡¢¤Á¤ÈÌÌÅݽ­¤¤¤±¤É¡£Dropbox ¤Ê¤é¥í¡¼¥«¥ë¤Ç³ºÅö¥Õ¥©¥ë¥À¤Ë¥³¥Ô¡¼¤¹¤ë¤À¤±¤À¤·¡£

Dropbox ¤È¸À¤Ã¤Æ¤â¡¢¶¦Í­¥ê¥ó¥¯¤ò¼èÆÀ¤¹¤ë·Á¡¢¤Ä¤Þ¤ê¤Ï¡¢°ìÈ̤˸ø³«¤µ¤ì¤Æ¤ëURL¤«¤é¼èÆÀ¤¹¤ë¥½¥ì¤Ê¤Î¤À¤±¤É¡£»î¤·¤Æ¤ß¤¿¤é¡¢¤Ê¤ó¤À¤«¥¨¥é¡¼¤¬¡£Dropbox ¤Î¶¦Í­¥ê¥ó¥¯¤Ã¤Æ¡¢http ¤Ç¤Ï¤Ê¤¯¤Æ https ¤«¤é»Ï¤Þ¤ëURL¤Ê¤Î¤Ç¡¢¤ª¤½¤é¤¯¥½¥ì¤¬¸¶°ø¤Ê¤Î¤«¤Ê¤È¡£¤·¤«¤·¡¢Ruby ¤Ç https ¥¢¥¯¥»¥¹¤ò¤·¤è¤¦¤È¤¹¤ë¤È¡¢¾ÚÌÀ½ñ¤¬¤É¤¦¤Î¤³¤¦¤Î¤È¤¤¤¦ÏäˤʤäƤ¯¤ë¤è¤¦¤Ç¡£

_library net/https
_HTTPS¤Ç¥µ¡¼¥Ð¡¼¤ËÀܳ - ¤¦¤Ê¤ÎÆüµ­
_Ruby¤Ë¤ª¤±¤ëHTTPSÄÌ¿® - ϵ¥Ë¥³À¸¤¦¤é¤ä¤Þ¤±¤·¤«¤é¤óÆüµ­

¤É¤¦¹Í¤¨¤Æ¤â¡¢¡ÖRuby¥¹¥¯¥ê¥×¥È¤òÆ°¤«¤¹¤À¤±¤Ç²èÁü¤¬¥µ¥¯¥Ã¤Èɽ¼¨¤µ¤ì¤ë¡×¤È¤¤¤¦¾õ¶·¤«¤é¡¢¤«¤±Î¥¤ì¤Æ¤·¤Þ¤¦¤è¤Ê¤È¡Ä¡£

¤â¤·¤«¤¹¤ë¤È¡¢ _OpenGameArt.org ¤¢¤¿¤ê¤Ë²èÁü¤òÅÐÏ¿¤·¤Æ¡¢¤½¤³¤Ë http¥¢¥¯¥»¥¹¤·¤¿¤Û¤¦¤¬¤¤¤¤¤Î¤«¤Ê¡¢¤È¤¤¤¦µ¤¤â¤·¤Æ¤­¤¿¤ê¡£

¡ý 2014/01/15Äɵ­¡£ :

¿§¡¹¼Â¸³¤·¤Æ¤ë¤¦¤Á¤Ë¡¢¾åµ­URL¤Î²èÁü¤òºï½ü¤·¤Æ¤·¤Þ¤Ã¤¿¤é¤·¤¤¡Ä¡£¤É¤Î²èÁü¤ò»È¤ª¤¦¤È¤·¤Æ¤¿¤Î¤«Ëº¤ì¤¿¡Ä¡£

²¿¤Ë¤»¤è¡¢¤³¤¦¤¤¤¦¼ê¤â¤¢¤ê¤½¤¦¤À¤Èʬ¤«¤Ã¤¿¡¢¤È¤¤¤¦¤³¤È¤Ç¡£

2014/01/04(ÅÚ) [nǯÁ°¤ÎÆüµ­]

#1 [cg_tools] ¥É¥Ã¥È³¨±¾¡¹

´Êñ¤Ê¥·¥å¡¼¥Æ¥£¥ó¥°¥²¡¼¥à¥µ¥ó¥×¥ë¤Ç¤âºî¤í¤¦¤«¤Ê¤È»×¤¤Î©¤Á¡¢»¨µûŨ¤Î¥É¥Ã¥È³¨¤òÉÁ¤­»Ï¤á¤¿¤â¤Î¤Î¡¢¥¢¥Ë¥á¤ò¤µ¤»¤ë¤Î¤¬ÌÌÅݤǡ£»¨µûŨ¤Î3DCG¥â¥Ç¥ë¤òºî¤Ã¤Æ¥ì¥ó¥À¥ê¥ó¥°¡£

¤·¤«¤·¡¢»¨µûŨ¤Ï¤È¤â¤«¤¯¡¢¼«µ¡¤Î¥É¥Ã¥È³¨¤òÉÁ¤³¤¦¤È¤·¤¿¤È¤³¤í¤ÇǺ¤ó¤Ç¤·¤Þ¤Ã¤¿¤ê¡£2¡Á3²óÉÁ¤­Ä¾¤·¤Æ¤ß¤¿¤±¤É¡¢¤É¤¦¤â²¿¤«¤¬°ã¤¦¡Ä¡£

´û¸¥¿¥¤¥È¥ë¤Î¥½¥ì¤ò»²¹Í¤Ë¤·¤è¤¦¤È¡¢TF4¤¢¤¿¤ê¤ò¥¨¥ß¥å¤Çµ¯Æ°¤·¤Æ²èÌ̤ò¥­¥ã¥×¥Á¥ã¡£MDËÜÂΤâROM¥«¥»¥Ã¥È¤â»ý¤Ã¤Æ¤ë¤«¤é¡¢»È¤Ã¤Æ¤â¤¤¤¤¤è¤Í¡Ä¡£¤µ¤Æ¤ª¤­¡¢²èÌ̤òį¤á¤Æ¤¤¤ë¤¦¤Á¤Ë¡¢¤Þ¤¹¤Þ¤¹Çº¤ó¤Ç¤·¤Þ¤Ã¤¿¤ê¡£¥Ç¥¶¥¤¥ó¤ÎÊý¸þÀ­¤â¡¢¥É¥Ã¥È¤ÎÂǤÁÊý¤â¡¢¤è¤¯Ê¬¤«¤é¤ó¡Ä¡£3DCG¥Ä¡¼¥ë¤Ç¥â¥Ç¥ëºî¤Ã¤Æ¥ì¥ó¥À¥ê¥ó¥°¤·¤¿¤Û¤¦¤¬¤¤¤¤¤Î¤«¤Ê¡£¾å²¼°ÜÆ°»þ¤Ë¾¯¤·¼Ð¤á¤Ë¤Ê¤Ã¤¿¤ê¤â¤¹¤ë¤À¤í¤¦¤·¡£

¤½¤ì¤Ï¤È¤â¤«¤¯TF4¤Ã¤Æ¥¹¥Æ¡¼¥¸¥»¥ì¥¯¥È¤Î±£¤·¥³¥Þ¥ó¥É̵¤¤¤ó¤«¡Ä¡£¹éÌä¤À¡Ä¡£

#2 [pc] USB¥Õ¥Ã¥È¥¹¥¤¥Ã¥Á¤òȯ·¡

²èÌÌ¥­¥ã¥×¥Á¥ã¤¹¤ëºÝ¡¢°ì¡¹¥­¡¼¥Ü¡¼¥É¤ò²¡¤¹¤Î¤¬¥Ä¥é¤«¤Ã¤¿¤Î¤Ç¡¢USBÀܳ¤Î¥Õ¥Ã¥È¥¹¥¤¥Ã¥Á¤òȯ·¡¤·¤Æ»È¤Ã¤Æ¤ß¤¿¤ê¡£ _¥µ¥¤¥º USB¥À¥Ö¥ë¥Õ¥Ã¥È¥¹¥¤¥Ã¥Á USB 2FOOT SWITCH ¤À¤È»×¤¦¤±¤É¡£¥¹¥¤¥Ã¥Á¤Ë¡¢¥­¥ã¥×¥Á¥ã¤Î¥Û¥Ã¥È¥­¡¼¤ò³ä¤êÅö¤Æ¤Æ¡¢Î¾¼ê¤Ï¥²¡¼¥à¥³¥ó¥È¥í¡¼¥é¤òÁàºî¤·¤Ê¤¬¤é¡¢¤³¤³¤¾¤È¤¤¤¦»þ¤Ë­¤Ç¡Ö¥«¥Á¥Ã¡×¡Ö¥«¥Á¥Ã¡×¤È¡£

¡Ö¥«¥Á¥«¥Á¡×¤¬¤¦¤ë¤µ¤¯¤ÆÌëÃæ¤Ë¤Ï»È¤¨¤Ê¤¤¤·¡¢¥Á¥ã¥¿¥ê¥ó¥°¤¬¥Ò¥É¥¤¤Î¤â¥¢¥ì¤À¤±¤É¡¢°µÅÝŪ¤Ëºî¶È¤¬³Ú¤Ë¤Ê¤Ã¤¿¡£Î¾¼ê¤¬¤Õ¤µ¤¬¤Ã¤Æ¤ë¾õÂ֤ǡ¢²¿¤«¤·¤é¤Î¥¿¥¤¥ß¥ó¥°¤ò¼è¤ê¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ºÇ¹â¤Ë¥Ê¥¤¥¹¤ÊÆþÎϵ¡´ï¡£¤³¤³¤Þ¤Ç²÷Ŭ¤Ë¤Ê¤ë¤È¤Ï»×¤ï¤Ê¤«¤Ã¤¿¡£Çã¤Ã¤È¤¤¤ÆÎɤ«¤Ã¤¿¡Ä¡£

¼«Ê¬¤ÎÇã¤Ã¤¿¥½¥ì¤Ï½é´ü¤ÎÀ½ÉʤʤΤǡ֥«¥Á¥«¥Á¡×¤¬¤¦¤ë¤µ¤«¤Ã¤¿¤±¤É¡£ _ºÇ¸å¤Îº¢¤Ë½Ð¤¿À½ÉʤÏÀŲ»»ÅÍͤ餷¤¤ ¤Ç¤¹¤Ê¡£¤¿¤À¡¢¤³¤Î¼ê¤Î¾¦ÉʤÏÈÎÇ佪λ¤·¤Á¤ã¤Ã¤Æ¤ë¤è¤¦¤À¤±¤É¡¢Amazon ¤Ç¡¢¤Þ¤À¿¾¯¤ÏÇä¤Ã¤Æ¤ëÌÏÍÍ¡£ºß¸Ë¤¬Ìµ¤¯¤Ê¤Ã¤¿¤éº¤¤ë¿Í¤¬½Ð¤Æ¤­¤¿¤ê¤·¤½¤¦¤À¤±¤É¡¢ *1 ¤½¤Î»þ¤Ï¡¢ÀΤΤ褦¤Ë¡¢¹©ºî¡¦¼«ºî¤¹¤ë»þÂå¤ËµÕÌá¤ê¡¢¤Ê¤Î¤«¤Ê¡Ä¡£

¤Æ¤¤¤¦¤«º£²ó¤Ï¡¢¥¸¥ç¥¤¥Ñ¥Ã¥É¤Î¶õ¤¤¤Æ¤ë¥Ü¥¿¥ó¤Ë¡¢¥­¥ã¥×¥Á¥ã¤Î¥½¥ì¤ò³ä¤êÅö¤Æ¤é¤ì¤¿¤éÎɤ«¤Ã¤¿¤Î¤À¤±¤É¡£
*1: ¥Æ¡¼¥×µ¯¤³¤·¤ò¤¹¤ë¿Í¤Ë¤Ï¡¢ÊØÍø¤é¤·¤¤¤Ç¤¹¤Ê¡£Â­¤ÇºÆÀ¸¡¦°ì»þÄä»ß¤ò¤·¤Æ¡¢Î¾¼ê¤Ï¥­¡¼¥Ü¡¼¥É¤òÂǤġ¢¤ß¤¿¤¤¤Ê¡£

2014/01/05(Æü) [nǯÁ°¤ÎÆüµ­]

#1 [anime] ¥í¥°¥Û¥é¥¤¥º¥ó¡¢º²ò°¤È¤ä¤é¤Î²òÀâ²ó¤ò»ëÄ°

¤ª¤½¤é¤¯¤ÏÀ¤³¦ÀßÄê¤ÎÀâÌÀ²ó¤À¤È»×¤¦¤Î¤À¤±¤É¡£Ã±¸ì¤¬ ¡½¡½ ¡Ö»³¿á¿§¤ÎÇÈÌæ¼ÀÁö¡×¤È½ñ¤¤¤Æ¡Ö¥µ¥ó¥é¥¤¥È¥¤¥¨¥í¡¼¥ª¡¼¥Ð¡¼¥É¥é¥¤¥Ö¡×¤È¸Æ¤Ö¡¢¤ß¤¿¤¤¤ÊÆȼ«ÍѸ줬¼¡¡¹¤Ë¥á¥Ã¥»¡¼¥¸¥¦¥¤¥ó¥É¥¦¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤¯¡¢¤½¤ó¤Ê´¶¤¸¤ÎÀâÌÀ¥·¡¼¥ó¤Ë¡¢¡Ö¤Ê¤ë¤Û¤É¡¢¤³¤ì¤Ïʬ¤«¤ê¤ä¤¹¤¤¡×¤È´¶¿´¤·¤¿¤ê¡£¥²¡¼¥àÀ¤³¦¤À¤«¤é¡¢¥¦¥¤¥ó¥É¥¦É½¼¨¤âÉÔ¼«Á³¤Ç¤Ï¤Ê¤¤¡¢¤È¤¤¤¦¤³¤È¤«¤Ê¤È¡£

ÀΡ¢NHK¤Ç¡¢¡Ö½½Æó¹ñµ­¡×¤¬ÊüÁ÷¤µ¤ì¤Æ¤¿º¢¡¢¤³¤Î¼ê¤ÎÆȼ«ÍѸì¤ÎÀâÌÀ¤¬¡¢¿§¡¹¹©ÉפòÀ¹¤ê¹þ¤ß¤Ê¤¬¤é¤â¤Á¤ç¤Ã¤È¾å¼ê¤¯¤Ç¤­¤Æ¤Ê¤¤´¶¤¸¤Ç¥¢¥ì¤À¤Ã¤¿¤Î¤À¤±¤É¡£¤³¤Î¡¢¡Ö¥í¥°¥Û¥é¥¤¥º¥ó¡×¤Ë´Ø¤·¤Æ¤Ï¡¢¾å¼ê¤ÊÀâÌÀ¥·¡¼¥ó¤¬ºî¤ì¤Æ¤ë¡¢¤½¤ó¤Êµ¤¤¬¤·¤¿¤ê¡£¾®Àâ¤äÌ¡²è¤Ê¤é¥Æ¥­¥¹¥È¾ðÊó¤ò¤¤¤¯¤é¤Ç¤âÄ󼨤Ǥ­¤ë¤±¤É¡¢¥¢¥Ë¥á¤Ç¤Ï¡¢¤½¤¦¤¤¤¦¤ï¤±¤Ë¤â¤¤¤«¤Ê¤¤¤·¡Ä¡£¸Ä¿ÍŪ¤Ë¡¢¤½¤Î¤¢¤¿¤ê¤ò¤É¤¦½èÍý¤¹¤ë¤Î¤«¡¢µ¤¤Ë¤·¤Ä¤Ä´Ñ¾Þ¤µ¤»¤Æ¤¤¤¿¤À¤¤¤Æ¤ª¤ê¤Þ¤¹¡£

#2 [anime] Á󤭹ݤΥ¢¥ë¥Ú¥¸¥ªºÇ½ª²ó¤ò»ëÄ°

ÌÌÇò¤«¤Ã¤¿¡Ä¡£Àø¿å´Ï¥â¥Î¤Ã¤Æ¸Ä¿ÍŪ¤Ë¤ÏÁ´¤¯¶½Ì£¤¬¤Ê¤¤¤Î¤À¤±¤É¡£Çö¤¤¼«Ê¬¤Ç¤â³Ú¤·¤á¤Þ¤·¤¿¡£ÁÇÀ²¤é¤·¤¤¡£

¡ý 3DCG±¾¡¹¡£ :

¥­¥ã¥é¥¯¥¿¡¼¤Þ¤ÇÁ´¤Æ3DCG¤ÇÉÁ¤¤¤Æ¤ë¤Î¤Ë¡¢¸«¤Æ¤¤¤Æ²Ä°¦¤é¤·¤¤¤È»×¤¨¤ë¤¢¤¿¤ê¡¢¤ä¤Ã¤Ñ¤êÀ¨¤¤¤Ê¤È¡£¤µ¤¹¤¬¡¢¥µ¥ó¥¸¥²¥ó¡Ä¡£ºîÉÊÃæ¤Ç¡¢¡ÖÉ÷·ê¤ò³«¤±¤é¤ì¤¿¤«¡×±¾¡¹¤È¤¤¤¦Âæ»ì¤¬¤¢¤Ã¤¿¤±¤É¡£¤â¤·¤«¤¹¤ë¤È¤³¤ÎºîÉʼ«ÂΤ¬¡¢¶È³¦¤ËÂФ·¤ÆÉ÷·ê¤ò³«¤±¤¿±¾¡¹¤Î°ÌÃ֤Ť±¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¤Ê¤È¡£¤ª¤½¤é¤¯¾­ÍèŪ¤Ë¤Ï¡¢¤³¤¦¤¤¤¦¸«¤¿ÌܤÎTV¥¢¥Ë¥á¤¬Áý¤¨¤ë¤ó¤¸¤ã¤Ê¤¤¤«¤È»×¤¨¤ë¤·¡¢Àø¿å´Ï¥â¥Î¤Ç¤âTV¥¢¥Ë¥áºî¤ì¤ë¤ó¤ä¤Ç¡¢¤ß¤¿¤¤¤Ê°ÕÌ£¤Ç¤â¡Ä¡£¤¤¤ä¡¢ÀΤ⡢¥Ö¥ë¡¼¥Î¥¢¤È¤«¥Ê¥Ç¥£¥¢¤È¤«¤¢¤Ã¤¿¤«¤é¡¢¥½¥ì¤Ï¤Á¤ç¤Ã¤È¥¢¥ì¤«¤·¤é¡£²¿¤Ë¤»¤è¡¢3DCG»È¤Ã¤Æ¥­¥ã¥é¥¯¥¿¡¼¤òÉÁ¤¤¤Æ¤â¡¢¥·¥ê¥¢¥¹¡¢¤«¤Ä¡¢Ë¨¤¨Ë¨¤¨¤ÊTV¥¢¥Ë¥á¤ò¥¬¥Ã¥Á¥êºî¤ì¤ë¤ó¤ä¤Ç¡¢¤Æ¤Ê¸«»ö¤ÊÁ°Îã¤Ë¤Ê¤Ã¤Æ¤¤¤¿µ¤¤¬¤·¤¿¤ê¡£ *1

¡ý ´Ï¤ÈÈþ¾¯½÷¡£ :

ÀΡ¢´ö¸¶Ë®É§´ÆÆĤ¬½ñ¤¤¤¿¾®Àâ¤ÎÃæ¤Ç¡¢µðÂ籧ÃèÁ¥¤¬¾¯½÷¡¢¤È¤¤¤¦ÀßÄ꤬¤¢¤Ã¤Æ¡£ÀßÄê¤Î´ñÈ´¤µ¤Ë´¶¿´¤·¤Ê¤¬¤é¤â¡¢±ÇÁü²½¤ÏÆñ¤·¤¤¤À¤í¤¦¤Ê¤È»×¤Ã¤¿µ­²±¤¬¤¢¤ë¤Î¤Ç¤¹¤±¤É¡£

¤Ç¤â¡¢¡ÖÁ󤭹ݤΡÁ¡×¤Î¤è¤¦¤Ê¸«¤»Êý¤ò¤¹¤ì¤Ð¡¢±ÇÁü²½¤âÁ´Á³OK¤Ê¤ó¤À¤Ê¤Èº£º¢µ¤ÉÕ¤«¤µ¤ì¤¿¤ê¡£¥á¥ó¥¿¥ë¥â¥Ç¥ë¤È¤¤¤¦ÀßÄê¤Ï¡¢¿§¡¹ÊØÍø¤À¤Ê¤È¡£

¡Ö¤¦¤Ý¤Ã¤Æ¡ª¡ª¡×¤â»÷¤¿¤è¤¦¤Ê¸«¤»Êý¤ò¤·¤Æ¤¤¤¿¤è¤¦¤Êµ¤¤â¤¹¤ë¤Î¤À¤±¤É¡¢¤¢¤Ã¤Á¤Ï¡¢Ê¼´ï¤Ê¤Î¤Ëʼ´ï¤é¤·¤µ¤ò¤«¤Ê¤ê±£¤·¤Æ¤¿¤¢¤¿¤ê¤¬¡¢¸Ä¿ÍŪ¤Ë¤È¤Æ¤âµ¤»ý¤Á°­¤¯¤Æ¡£¤½¤ÎÅÀ¤³¤Ã¤Á¤Ï¡¢Ç˲õʼ´ï¤È¤·¤Æ¥¬¥Ã¥Á¥êÉÁ¤¤¤Æ¤¿¤Î¤Ç¡¢¸«¤Æ¤¤¤ÆǼÆÀ¡£¹¹¤Ë¡¢Ê¼´ï¤¬ ¿Í´Ö¤Ë¶á¤Å¤¤¤Æ¤¤¤¯ÍͻҤòÉÁ¤¯ÅÀ¤â¡¢¤Ê¤ó¤È¤Ê¤¯SF¤Ã¤Ý¤¤¤Ê¤È¡£

º£µ¤¤¬¤Ä¤¤¤¿¤±¤É¡¢¡Ö̵¸Â¤Î¥ê¥ô¥¡¥¤¥¢¥¹¡×¤â¡¢ÀèÇڤΤ褦¤Êµ¤¤¬¤·¤Æ¤­¤¿¤ê¡£

¡ý ¥ß¥µ¥¤¥ë¤Ï¡û¡û¡û¡£ :

¥ß¥µ¥¤¥ë¤Ï ¾è¤êʪ¤Ç¤¢¤ê ­¾ì¤Ç¤â¤¢¤ê¡£¤¢¤Î¥·¥Á¥å¥¨¡¼¥·¥ç¥ó¤òÌܤˤ·¤¿¤À¤±¤Ç¥Æ¥ó¥·¥ç¥ó¾å¤¬¤ê¤Þ¤·¤¿¡£

¼«Ê¬¤¬½é¤á¤Æ¸«¤¿¤Î¤Ï¡Ö¥×¥í¥¸¥§¥¯¥ÈA»Ò¡×¤À¤Ã¤¿µ¤¤¬¤¹¤ë¤Î¤À¤±¤É¡£ºÇ½é¤Ë¥¢¥ì¤ò¤ä¤Ã¤¿¤Î¤Ï¡¢²¿¤ÎºîÉʤʤó¤À¤í¤¦¡Ä¡£

¥Õ¥¡¥ß¥³¥ó¥²¡¼¥à¤Ç¤â¡¢¤½¤¦¤¤¤¦¥·¥Á¥å¥¨¡¼¥·¥ç¥ó¤¬¤¤¤¯¤Ä¤«¤¢¤Ã¤¿¤ß¤¿¤¤¤À¤±¤É¡£¥Þ¥ê¥ª¤ä¥®¥ß¥Ã¥¯(¤æ¤á¤¿¤í¡¼)¤¬¡¢ ˤÃƤ˾è¤Ã¤Æ¤¿µ¤¤¬¤¹¤ë¡£

*1: ¥À¥ó¥¹¥·¡¼¥ó¤À¤±¤È¤«¡¢ED¤À¤±¤È¤«¡¢¥Õ¥¡¥ß¥ê¡¼¸þ¤±¥¢¥Ë¥á¤È¤«¡¢¤½¤¦¤¤¤¦¥¢¥ì¥³¥ì¤Ê¤é3DCG¤ÇÀ©ºî¤ò¡¢¤Æ¤ÊÁ°Îã¤Ï¤¢¤Ã¤¿¤ï¤±¤À¤±¤É¡£1¥¯¡¼¥ë´Ý¡¹Á´Éô¡¢¤¤¤«¤Ë¤â¤½¤Ã¤Á·Ï¤Î¥¸¥ã¥ó¥ë¤Ê¤Î¤Ë3DCG¤Ç¡¢¤Æ¤Ê»öÎã¤ÏÄÁ¤·¤¤¤ó¤¸¤ã¤Ê¤¤¤«¤È»×¤¦¤Î¤À¤±¤É¡¢¤É¤¦¤Ê¤ó¤À¤í¤¦¡£

2014/01/06(·î) [nǯÁ°¤ÎÆüµ­]

#1 [anime] ¥É¥­¥É¥­¥×¥ê¥­¥å¥¢¡¢¾×·â¤Î¿¿¼Â¤Î²ó

º£²ó¤Î¥×¥ê¥­¥å¥¢¡¢¹Í¤¨¤Æ¤ë¤Ê¤¢¡Ä¡£²¦½÷ÍͤΡ¢ ¡Ö¼«¸ÊÃæ¤È°¦¤Ïɽ΢°ìÂΡפÎÂæ»ì¤òʹ¤¤¤Æ¡¢´¶¿´¤·¤Þ¤·¤¿¡£¤¿¤·¤«¤Ë¡¢¤½¤¦¤¤¤¦Ì̤¬¤¢¤ë¤³¤È¤ÏÈÝÄê¤Ç¤­¤Ê¤¤¡£¤³¤Î¥×¥ê¥­¥å¥¢¡¢¤È¤³¤í¤É¤³¤í¤Ç¡¢¤Ê¤ó¤À¤«¿¼¤¤¡Ä¡£

Á°¤Ë¤â½ñ¤¤¤¿¤±¤É¡¢µðÂç²½²ø¿Í¤¬½Ð¸½¤¹¤ë¤¢¤¿¤ê¤Îή¤ì¤â¡¢¼«Ê¬¤Ï´¶¿´¤·¤Æ¤¤¤Æ¡£Ã¯¤À¤Ã¤Æ¤Á¤ç¤Ã¤Ô¤ê¤¤¤±¤Ê¤¤¤³¤È¤ò¹Í¤¨¤Á¤ã¤¦½Ö´Ö¤¬¤¢¤ë¤Î¤À¤±¤ì¤É¡¢¤¨¤Æ¤·¤Æ¡¢³§¡¢»×¤¤»ß¤Þ¤Ã¤Æ¡¢Ê¿Ï¤ÊÆü¡¹¤òÊ뤷¤Æ¤ë¡£¤À¤±¤É¡¢¤½¤³¤Ç¥Ö¥ì¡¼¥­¤¬Íø¤«¤Ê¤«¤Ã¤¿¤é¡¢Ã¯¤Ç¤â¥â¥ó¥¹¥¿¡¼¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤ó¤À¤è¡Ä¤Æ¤ÊŸ³«¤Ç²ø¿Í¤¬È¯À¸¤¹¤ë¤ï¤±¤Ç¡£¤½¤³¤é¤Ø¤ó¤â¾å¼ê¤¤¤è¤Ê¤¢¡¢¤È»×¤Ã¤Æ¤ë¤ï¤±¤Ç¤¹¤±¤É¡£

¤Þ¤¢¡¢¤½¤¦¤¤¤¦¥¢¥ì¥³¥ì¤Ã¤Æ¡¢ÍĽ÷ã¤Ë¤ÏÍý²ò¤Ç¤­¤Ê¤¤ÀßÄ꤫¤â¤·¤ì¤Ê¤¤¤Î¤À¤±¤É¡£¤â¤·¡¢Âç¿Í¤Ë¤Ê¤Ã¤Æ¤«¤é²þ¤á¤ÆÌܤˤ·¤¿¤é¡¢¤½¤³¤ÇÉÁ¤«¤ì¤Æ¤¿ÆâÍƤο¿Ùõ¤µ¤Ë¡¢¤Á¤ç¤Ã¤È¥Ó¥Ã¥¯¥ê¤·¤Æ¤â¤é¤¨¤½¤¦¤Êͽ´¶¤â¡£

¤µ¤Æ¤ª¤­¡£Å¨¤ÎÈþ¾¯½÷¤¬Á´¤Æ¤òÃÎ¤Ã¤Æ ÀöǾ¤¬ÍϤ±¤¿¤«¤é¤³¤½Å¨¥Ü¥¹Â¦¤Ë¤Ä¤¯¤È¤¤¤¦Å¸³«¤â¾å¼ê¤¤¤Ê¤È¡£ ¤¿¤·¤«¤Ë°¦¤µ¤ì¤Æ¤¤¤¿¤³¤È¤¬Ê¬¤«¤Ã¤¿¤Î¤À¤«¤é¤Þ¤¹¤Þ¤¹Î¢ÀÚ¤ì¤Ê¤¤¤È¤¤¤¦¤Î¤Ï¡¢Ç¼ÆÀ¤¬¹Ô¤¯¤È¤¤¤¦¤«¡Ä¡£

#2 [zatta][neta] ¥Ð¥¹¥±Ì¡ºÍ¤È¤«¥µ¥Ã¥«¡¼Ì¡ºÍ¤È¤«Ìµ¤¤¤Î¤«¤Ê

¥¹¥Ý¡¼¥ÄÁª¼ê¤¬³°¹ñ¤Î¥×¥í¥Á¡¼¥à¤Ë±¾¡¹¤È¤¤¤¦¥Ë¥å¡¼¥¹¤ò¸«¤«¤±¤Æ¡¢¡Ö¥¹¥Ý¡¼¥ÄÁª¼ê¤Ï¥×¥í¤È¤·¤Æ¤Î¿¦¾ì¿ô¤¬¸Â¤é¤ì¤Æ¤ë¤¢¤¿¤êÂçÊѤÀ¤Ê¡Ä¡×¤È»×¤Ã¤¿¤Î¤À¤±¤É¡£

¡Ö¾¤Ë¤½¤ÎǽÎϤò³è¤«¤»¤½¤¦¤Ê»Å»ö¤Ã¤Æ̵¤¤¤Î¤«¤Ê¡© ¡Ä¤½¤¦¤À¡£Ì¡ºÍ¤Ï¤É¤¦¤À¤í¤¦¡×¤È¥Ð¥«¤Ê¤³¤È¤ò»×¤Ã¤¿¤ê¡£¥Ð¥¹¥±Ì¡ºÍ¤È¤«¡¢¥µ¥Ã¥«¡¼Ì¡ºÍ¤È¤«¡Ä¡£¥Î¥³¥®¥ê¤ò¥Ý¥ï¥ó¥Ý¥ï¥ó¤ÈÌĤ餹¤³¤È¤ò·Ý¤Ë¤·¤Æ¤ë¿Í¤À¤Ã¤Æµï¤ë¤ï¤±¤À¤«¤é¡¢¥Ð¥¹¥±¤ä¥µ¥Ã¥«¡¼¤ò»È¤Ã¤Æ¡¢¸«¤¿½Ö´Ö¡Ö¤ª¤ª¡¼¡×¤È»×¤ï¤»¤Æ¡¢¤È¤«¤Ç¤­¤ó¤«¤Ê¤È¡£¤Þ¤¢¡¢¥¤¥á¡¼¥¸¤¬¤µ¤Ã¤Ñ¤êͯ¤«¤Ê¤¤¤Ç¤¹¤±¤É¡£

¥°¥°¤Ã¤Æ¤ß¤¿¤é¡¢¥Ð¥¹¥±Ì¡ºÍ¤Ï¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤±¤É¡¢¥µ¥Ã¥«¡¼Ì¡ºÍ¤Ï¤¢¤Ã¤¿¡£¤¿¤À¡¢¼«Ê¬¤Î¥Ð¥«ÌÑÁۤȡ¢Êý¸þÀ­¤ÏÁ´Á³°ã¤¦¡£¤â¤·¤«¤·¤Æ¡¢¥Ö¥ë¡¼¥ª¡¼¥·¥ã¥ó¤Ê¤Î¤Ç¤Ï¡Ä¡©

¤Ç¤â¡¢¥Õ¥Ä¡¼¡¢¥Ð¥¹¥±¤ä¥µ¥Ã¥«¡¼¤·¤Æ¤ë¿Í¤Ï¡¢»î¹ç¤Ç¾¡¤Ä¤È¤«¡¢¥ì¥®¥å¥é¡¼¤ËÁª¤Ð¤ì¤ë¤È¤«¡¢¤½¤¦¤¤¤¦Êý¸þ¤Ç´èÄ¥¤ë¤Ï¤º¤Ç¡£¤½¤¦¤¤¤¦Êý¸þ¤Ç´èÄ¥¤í¤¦¤È¤·¤Æ¤ë¿Í¤Ë¡¢¡Ö¤³¤ì¤ÇÌ¡ºÍ¤Ç¤­¤Ê¤¤¤«¡×¤Ê¤É¤ÈÅꤲ¤«¤±¤Æ¤ß¤Æ¤â¡¢¤ä¤ë¤ï¤±¤Ê¤¤¤è¤Ê¡Ä¡£¤Æ¤¤¤¦¤«¤¿¤Ö¤ó¤½¤¦¤¤¤¦¤Î¤Ã¤Æ¡¢¤ª¤½¤é¤¯»¨µ»ÃĤǥ«¥Ð¡¼¤·¤Æ¤ëµ¤¤¬¤·¤Æ¤­¤¿¡£

2014/01/07(²Ð) [nǯÁ°¤ÎÆüµ­]

#1 [movie] ¡Ö¤Î¤Ü¤¦¤Î¾ë¡×¤ò»ëÄ°

¤Ê¤ó¤À¤«¤É¤³¤«¤Ç¥¿¥¤¥È¥ë¤òʹ¤¤¤¿¤è¤¦¤Êµ¤¤¬¤·¤¿¤Î¤Ç¡¢HDD¥ì¥³¡¼¥À¤ÇÏ¿²è¤·¤Æ¤ª¤¤¤¿¤Î¤À¤±¤É¡£Èõ¸ý´ÆÆĤ¬»²²Ã¤·¤Æ¤¿¤Î¤À¤Ê¡Ä¡£¤Þ¤¢¡¢¸¤Æ¸°ì¿´´ÆÆĤÈÈõ¸ý´ÆÆĤζ¦Æ±´ÆÆÄ¡¢¤é¤·¤¤¤±¤É¡£

·ë¹½ÌÌÇò¤«¤Ã¤¿¡£¤È¸À¤Ã¤Æ¤â¡¢¤É¤³¤é¤Ø¤ó¤Î¥«¥Ã¥È¤¬Æû£»È¤Ã¤Æ¤ë¤Î¤«ÁÛÁü¤·¤Ê¤¬¤éį¤á¤ë¡¢¤ß¤¿¤¤¤Ê´¶¤¸¤Î¥½¥ì¤Ê¤Î¤Ç¡¢±Ç²è¤È¤·¤ÆÌÌÇò¤¤¤Î¤«¤É¤¦¤«¤Ï¼«Ê¬¤Ï¤è¤¯Ê¬¤«¤é¤ó¤Î¤Ç¤¹¤±¤É¡£

¿å¹¶¤á¥·¡¼¥ó¤¬¥ê¥¢¥ë²á¤®¤Æ¿ÌºÒľ¸å¤Ë¸ø³«¤¹¤ë¤Î¤Ï¤Á¤ç¤Ã¤È¡¢¤Æ¤Êή¤ì¤Ç¸ø³«±ä´ü¤Ë¤Ê¤Ã¤Æ¤¤¤¿¤ÈÃΤꡣ²¿¤«¼áÁ³¤È¤·¤Ê¤¤¤â¤Î¤ò´¶¤¸¤¿¤ê¤â¤·¤Æ¡£¥Ñ¥ó¥À¥³¥Ñ¥ó¥À¤Î±«¹ß¤ê¥µ¡¼¥«¥¹¤ä̤Í辯ǯ¥³¥Ê¥ó¤â¡¢¹¿¿å¥·¡¼¥ó¤äÄÅÇÈ¥·¡¼¥ó¤¬¤¢¤ë¤«¤é¡¢º£¸å¤ÏÊüÁ÷¶Ø»ß¤Ë¤Ê¤ë¤Î¤À¤í¤¦¤«¡£±§ÃèÀï´Ï¥ä¥Þ¥È¤â¥á¥«¥ó¥À¡¼¥í¥Ü¤â¥¸¥ã¥¤¥¢¥ó¥È¥í¥Ü¤â¡¢¸¶»ÒÎϤÀ¤ÎÊü¼Íǽ¤À¤Î½Ð¤Æ¤­¤Æ¥Õ¥­¥ó¥·¥ó¤À¤«¤é¡¢ÊüÁ÷¶Ø»ß¤Ë¤Ê¤ë¤Î¤À¤í¤¦¤«¡£¡Ä¥ï¥·¤Ï¤½¤¦¤¤¤¦¤Î¤Ï¹¥¤«¤ó¡£

2014/01/08(¿å) [nǯÁ°¤ÎÆüµ­]

#1 [pc][windows] Google Chrome ¤Îʸ»ú¤¬¥Ü¥±¥Ü¥±¤Ç¼ó¤òDZ¤Ã¤¿¤ê

¤Ê¤ó¤Ç¤À¤í¤È»×¤Ã¤¿¤é¡¢NVIDIA¥³¥ó¥È¥í¡¼¥ë¥Ñ¥Í¥ë¾å¤Ç¡¢¥¹¥Æ¥ì¥ª¥¹¥³¥Ô¥Ã¥¯3D(ΩÂλëɽ¼¨µ¡Ç½)¤òÍ­¸ú¤Ë¤·¤Æ¤¿¤«¤é¡¢¤À¤Ã¤¿¡£¤³¤ó¤Ê¤È¤³¤í¤Ë¤â±Æ¶Á¤¬½Ð¤Æ¤¯¤ë¤Î¤«¡Ä¡£

¤Þ¤¢¡¢¼«Ê¬¤Î´Ä¶­¤Ï 9800GTGE ¤Ê¤Î¤Ç¡£¤¢¤Þ¤ê¤Ë¸Å¤¤¥Ó¥Ç¥ª¥«¡¼¥É¤À¤«¤é¡¢¤³¤¦¤¤¤¦ÉÔ¶ñ¹ç¤¬µ¯¤­¤ë¤Î¤«¤â¤·¤ì¤º¡£¸½¹ÔÀ½Éʰʳ°¤Ï¡¢¥Ó¥Ç¥ª¥É¥é¥¤¥Ð¤ÎÆ°ºî¥Á¥§¥Ã¥¯¤â¤·¤Æ¤Ê¤¤¤ó¤¸¤ã¤Ê¤¤¤«¤Ê¡Ä¡£

#2 [web] ¥ê¥ª¥ó¥É¡¼¥ë¤Î¥µ¥¤¥È¤ÎÃÏ¿Þ¤¬³«¤±¤Ê¤¤

_¥ê¥ª¥ó¡¦¥É¡¼¥ë ¿Ü²ìÀîÅìŹ ¤Î¡Ö¼þÊÕÃÏ¿Þ¡×¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤â¡¢ÃÏ¿Þ¤¬½Ð¤Æ¤³¤Ê¤¤¡£URL¤«¤é¤·¤Æ¡¢Google¥Þ¥Ã¥×¤ò¸Æ¤Ó½Ð¤·¤Æ¤½¤¦¡£²¿¤«»ÅÍͤ¬ÊѤï¤Ã¤¿¤Î¤«¤Ê¡©

¥½¡¼¥¹¤òį¤á¤¿¤é¡¢¥¿¥¤¥È¥ë¤Ë¡ÖGoogle Maps JavaScript API Example¡×¤È½ñ¤¤¤Æ¤¢¤Ã¤¿¡£³ºÅöʸ»úÎó¤Ç¥°¥°¤Ã¤¿¤é¡¢¤¢¤Á¤³¤Á¤Î¥µ¥¤¥È¤¬Æ±¤¸µ­½Ò¤ò»È¤Ã¤Æ¤ëÌÏÍÍ¡£¤³¤Î¥½¡¼¥¹¤Ï¡¢¤É¤³¤Ç¸ø³«¤µ¤ì¤Æ¤ë¤ó¤À¤í¤¦¡Ä¡£

¤¿¤À¡¢Â¾¤Î¥µ¥¤¥È¤Ï¡¢¤Á¤ã¤ó¤ÈGoogle¥Þ¥Ã¥×¤¬É½¼¨¤µ¤ì¤Æ¤ë¤Î¤Ë¡¢¥ê¥ª¥ó¥É¡¼¥ë¤Î¥µ¥¤¥È¤ÎÃÏ¿Þ¤À¤±¤¬³«¤±¤Ê¤¤¡£²¿¤¬°ã¤¦¤Î¤ä¤é¡£

_Google Maps API v2¤¬2013ǯ11·î19Æü¤ËÇѻߤˤʤëÏà - Pastalablog in ¤Ï¤Æ¤Ê ¤È¤¤¤¦µ­»ö¤òÌܤˤ·¤¿¤±¤É¡¢¤â¤·¤«¤¹¤ë¤È¥ê¥ª¥ó¥É¡¼¥ë¤Î¥µ¥¤¥È¤Î¥½¥ì¤Ï¡¢¤½¤¦¤¤¤¦Íýͳ¤Çɽ¼¨¤µ¤ì¤Ê¤¤¤Î¤À¤í¤¦¤«¡Ä¡©

¤µ¤Æ¤ª¤­¡£¥°¥°¤Ã¤Æ¤¿¤é¡¢ _Google Maps APIÍ­ÎÁ²½¤Î¾ÜºÙȯɽ¡¢³ºÅö¥æ¡¼¥¶¡¼¤Ï2012ǯ½é¤á¤Ë¶¯À©²Ý¶â³«»Ï -INTERNET Watch ¤È¤¤¤¦µ­»ö¤ËÅþã¡£Google¥Þ¥Ã¥×¤ò»È¤¦¾ì¹ç¤Ï¤ª¶â¤¬¤«¤«¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Èº£º¢ÃΤê¤Þ¤·¤¿¡£¥¢¥¯¥»¥¹¿ô¤¬¾¯¤Ê¤¤¾ì¹ç¤Ï̵ÎÁ¤Ç¤â»È¤¨¤ë¤é¤·¤¤¤«¤é¡¢¸Ä¿Í¤Ç»È¤¦Ê¬¤Ë¤ÏÂç¾æÉפ½¤¦¤À¤±¤É¡£

#3 [nitijyou] ¼«Å¾¼Ö¤ÇÇ㤤ʪ¤Ë

¿ÆÉ㤵¤ó¤ÎÅÅÆ°¼«Å¾¼Ö¤ò¼Ú¤ê¤Æ°Ê²¼Î¬¡£¥ê¥ª¥ó¥É¡¼¥ë¡¢¥À¥¤¥½¡¼¡¢¥Û¡¼¥Þ¥Ã¥¯¡¢Seria¡¢¥µ¥ó¥É¥é¥Ã¥°¡¢¥è¡¼¥¯¥Ù¥Ë¥Þ¥ë¤ò²ó¤Ã¤ÆÌë¿©¤½¤Î¾¤ò¹ØÆþ¡£

Seria ¤Ç¥á¥âÍÑ»æ¤ò¹ØÆþ¡£Ãæ¿È¤Ï¾å¼Á»æ¤È½ñ¤¤¤Æ¤¢¤Ã¤¿¤Î¤Ç¡¢¤Á¤ç¤Ã¤È´üÂÔ¡£¤³¤Î¼ê¤Î¥á¥âÍÑ»æ¤Ã¤Æ¡¢¥ê¥µ¥¤¥¯¥ë»æ¤ò»È¤Ã¤¿¥â¥Î¤·¤«¸«¤«¤±¤Ê¤¤¤ï¤±¤Ç¡£¥¹¥­¥ã¥Ê¤Ç¼è¤ê¹þ¤â¤¦¤È¤·¤¿¤È¤­¤Ë»æ¤Ëº®¤¸¤Ã¤Æ¤ë¥´¥ß¤âÆþ¤ë¤«¤é¤Á¤ÈÅԹ礬°­¤«¤Ã¤¿¤ï¤±¤Ç¡£¤Ç¤â¤Þ¤¢¡¢¾å¼Á»æ¤òÇã¤Ã¤Æ¤­¤Æ¡¢¥«¥Ã¥¿¡¼Åù»È¤Ã¤Æ¼«Ê¬¤ÇºÙ¤«¤¯ÀÚ¤ì¤ÐºÑ¤àÏäǤϤ¢¤ë¤Î¤Ç¤¹¤±¤É¡£

#4 [windows] HPB¤ÎÁàºî¤Ë¤Ä¤¤¤Æ¼ÁÌä¥á¡¼¥ë¤¬ÆϤ¤¤¿

HPB(¥Û¡¼¥à¥Ú¡¼¥¸¥Ó¥ë¥À¡¼)¤ÎÁàºî¤Ë´Ø¤·¤Æ¡¢Ë¿»á¤«¤é¼ÁÌä¥á¡¼¥ë¤¬¡£¥¦¥Á¤Î¼«Â𥵡¼¥ÐÍѤΥµ¥¤¥ÈÀßÄê¤òºî¤êľ¤·¤¿¤éžÁ÷¤¬¾å¼ê¤¯¹Ô¤«¤Ê¤¤¤È¤ÎÏäǡ£¥µ¥¤¥ÈžÁ÷¤ò¤·¤è¤¦¤È¤¹¤ë¤È¡¢HPB¤¬¥á¥â¥êÉÔ­¤Èʸ¶ç¤ò¸À¤Ã¤Æ»ß¤Þ¤Ã¤Æ¤·¤Þ¤¦¤Î¤À¤È¤«¡£

¤ª¤½¤é¤¯¡¢ËÄÂç¤Ê¥Õ¥¡¥¤¥ë¿ô¤ò½èÍý¤·¤è¤¦¤È¤·¤Æ¤¤¤Æ¥È¥é¥Ö¥ë¤¬µ¯¤­¤Æ¤ë¤Î¤À¤í¤¦¤ÈÁÛÁü¤·¤¿¤Î¤À¤±¤É¡£Ä´¤Ù¤¿ÈϰϤǤϡ¢¤É¤¦¤â¥·¥¹¥Æ¥à¥ê¥½¡¼¥¹¤¬Â­¤ê¤Ê¤¯¤Ê¤Ã¤¿»þ¤Ë½Ð¤Æ¤¯¤ë¥á¥Ã¥»¡¼¥¸¤é¤·¤¤¡£Ã±½ã¤Ë¥á¥¤¥ó¥á¥â¥êÍÆÎ̤¬¾¯¤Ê¤¯¤Æ¡¢¤È¤¤¤¦¤ï¤±¤Ç¤Ï¥Ê¥µ¥²¡£¤É¤¦¤¤¤¦ºî¤ê¤Ë¤Ê¤Ã¤Æ¤ë¤ó¤À¡ÄHPB¡Ä¡£

HPB¤Ë¤ÏFTP¥Ä¡¼¥ë(¥Õ¥¡¥¤¥ëžÁ÷¥Ä¡¼¥ë)¤¬Æ±º­¤µ¤ì¤Æ¤ë¤Î¤Ç¡¢¥½¥ì¤ò»È¤Ã¤Æ¼êÆ°¤Ç´Ý¡¹¡¢¥µ¥¤¥ÈÆâ¤Î¥Õ¥¡¥¤¥ë¤ò¥¢¥Ã¥×¥í¡¼¥É¤·¤Æ¤Û¤·¤¤¡¢¤ÈÅÁ¤¨¤¿¤Î¤À¤±¤É¡£¡ÖžÁ÷¤·¤Æ¤â¥Ú¡¼¥¸¤¬¸«¤ì¤Ê¤¤¡×¤È¸À¤ï¤ì¤Æ³Îǧ¤·¤Æ¤ß¤¿¤é¡¢public_html¥Ç¥£¥ì¥¯¥È¥ê¤ÈƱ³¬ÁؤËžÁ÷¤µ¤ì¤Æ¤¤¤Æ¡£

°ìÈÌŪ¤ÊFTP¥µ¡¼¥Ð¤Ï¡¢³Æ¥æ¡¼¥¶¤ÎžÁ÷Àè¥Õ¥©¥ë¥À¤ò public_html/ ¤ËÀßÄêºÑ¤ß¤Ç¡¢¸Î¤ËžÁ÷Àè¥Õ¥©¥ë¥À¤ò¶õÍó¤Ë¤·¤ÆÀܳ¤·¤Æ¤âÌäÂê̵¤¤¤Î¤À¤í¤¦¤±¤É¡£¥¦¥Á¤â¤½¤¦¤¤¤¦ÀßÄê¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¡¢¤Ê¤Î¤À¤í¤¦¤«¡£¤·¤«¤·¡¢public_html/ ¤ÈƱ³¬ÁؤËžÁ÷¤·¤¿¤¤¤È¤­¤â¤¢¤ë¤ó¤À¤è¤Ê¤¢¡Ä¡£¥æ¡¼¥¶Ëè¤ËÀßÄêÊѤ¨¤é¤ì¤Ê¤¤¤«¤Ê¡Ä¡£

Ä´¤Ù¤Æ¤ß¤¿¤é¡¢proftpd ¤Î¾ì¹ç¡¢groupñ°Ì¤Ê¤é¥í¥°¥¤¥ó»þ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òÊѤ¨¤é¤ì¤ë¤Èº£º¢ÃΤä¿¡£¼ºÇÔ¤·¤¿¡£³Æ¥¢¥«¥¦¥ó¥È¤ògroup¤Çʬ¤±¤È¤±¤Ð¤è¤«¤Ã¤¿¡Ä¡£

#5 [web][neta] ¼Ì¿¿¸ø³«ÍѤÎWeb¥µ¡¼¥Ó¥¹¤Ã¤Æ̵¤¤¤Î¤«¤Ê

¥¦¥Á¤Î¿ÆÉ㤵¤ó¤Ï¡¢¼Ì¿¿¤ò¸ø³«¤¹¤ëºÝ¤Ë¡¢HPB¤ÇÀÅŪhtml¤òºî¤Ã¤Æ¥µ¥¤¥È¤Ë¥¢¥Ã¥×¥í¡¼¥É¡¢¤ß¤¿¤¤¤Ê¤³¤È¤ò¤·¤Æ¤ë¤ï¤±¤À¤±¤É¡£

º£»þ¤Ê¤é¡¢blog¤ß¤¿¤¤¤Ê´¶¤¸¤Ç¡¢¼Ì¿¿¤ò¥¢¥Ã¥×¥í¡¼¥É¤·¤ÆÂê̾¤Ä¤±¤ì¤Ð¸ø³«¤Ç¤­¤ë¡¢¤ß¤¿¤¤¤Ê¥µ¡¼¥Ó¥¹¤¬¤É¤³¤«¤Ë¤¢¤ë¤ó¤¸¤ã¤Ê¤¤¤Î¤«¤Ê¤È¡£¤ï¤¶¤ï¤¶¼«Ê¬¤Ç¥µ¥¤¥Èºî¤é¤Ê¤¤¤È¤¤¤«¤ó¤Î¤«¤Ê¤¢¡¢¤â¤Ã¤È´Êñ¤Ê²¿¤«¤¬¤¢¤ë¤ó¤¸¤ã¤Ê¤¤¤Î¤«¡¢¤È¡¢¤º¤Ã¤È¤â¤ä¤â¤ä¤·¤Æ¤¤¤Æ¡£

¤È¤ê¤¢¤¨¤º¡¢¿ÆÉ㤵¤ó¤Î¥µ¥¤¥È¤â¡¢¿ÆÉ㤵¤ó¤Îͧ¿Í¤â¡¢2GB¶á¤¤¥Õ¥¡¥¤¥ëÍÆÎ̤ò¸ø³«¤·¤Æ¤ë¾õÂ֤ʤΤǡ¢¤½¤Î¤°¤é¤¤¤Ï¸ø³«¤Ç¤­¤ëWeb¥µ¡¼¥Ó¥¹¤¸¤ã¤Ê¤¤¤ÈÂåÂؤǤ­¤Ê¤¤¤Î¤Ç¤¹¤¬¡£

ÆüËܤΥǥ¸¥«¥á¥á¡¼¥«¤¬¡¢¤Á¤ç¤Ã¤È»÷¤¿¤è¤¦¤Ê¥µ¡¼¥Ó¥¹¤òÄ󶡤·¤Æ¤¿¤ê¤¹¤ë¤±¤ì¤É¡£ Åù¡¹¡¢Í×·ï¤òËþ¤¿¤·¤Æ¤Ê¤¯¤Æ¡£¡Ä¤Þ¤¢¡¢¥Ç¥Õ¥©¥ë¥È¤Ï̤¸ø³«ÀßÄê¤Ë¤·¤È¤¤¤¿¤Û¤¦¤¬¥È¥é¥Ö¥ë¤Ïµ¯¤­¤Ë¤¯¤¤¤Î¤Ç¡¢»ö¤Ê¤«¤ì¼çµÁ¤ÎÆüËÜ´ë¶È¤Ë¤È¤Ã¤Æ¤ÏÂçÊÑÂÅÅö¤Ê»ÅÍͤʤΤǤ·¤ç¤¦¤Ê¤È»×¤Ã¤Æ¤¤¤Þ¤¹¤±¤É¡£½êÁ§¡¢¥Ç¥¸¥«¥á¤È¤¤¤¦¥Ï¡¼¥É¥¦¥§¥¢¤Î¥ª¥Þ¥±´¶³Ð¤Ç¤ä¤Ã¤Æ¤ë¤È¤³¤í¤â¤¢¤ë¤Î¤À¤í¤¦¤·¡£²È²¤äÃç´ÖÆâ¤Ë¸«¤»¤é¤ì¤ì¤Ð¤½¤ì¤ÇOK¤È¤¤¤¦¾ìÌ̤⿤¤¤À¤í¤¦¤«¤é¡¢¤½¤ì¤Ï¤½¤ì¤Ç¥¢¥ê¤È¤â»×¤¦¤·¡£

_Flickr ¤Ï¡Ä¡£±Ñ¸ì¥ª¥ó¥ê¡¼¤À¤«¤é¡¢¤ªÌ줵¤ó¤ªÇ̤µ¤ó¤Ë¤Ï¥ª¥¹¥¹¥á¤Ç¤­¤Ê¤¤¤·¡£ _livedoor PICS ¤Ï¡Ä¥µ¡¼¥Ó¥¹½ªÎ»¤·¤Á¤ã¤Ã¤¿¤·¡£¤½¤â¤½¤â´ðËÜŪ¤Ë¡¢¤½¤ì¤é¥µ¡¼¥Ó¥¹¤Ã¤ÆSNS´ó¤ê¤Ê¤Î¤Ç¡¢¤Ê¤ó¤«°ã¤¦¤Î¤À¤±¤É¡£

_¥Õ¥©¥È¢ ¤Ï¤É¤¦¤Ê¤ó¤À¤í¤¦¡£ÍÆÎÌÌ̤Ǥϥ襵¥²¤À¤±¤É¡£

¤â¤Ã¤È¤â¡¢¤½¤â¤½¤â¿ÆÉ㤵¤ó¤¢¤¿¤ê¤Ï¡¢¡Ö¼«Ê¬¤Î¥µ¥¤¥È¡¦¥¢¥ë¥Ð¥à¤È¤¤¤¦´¶¤¸¤¬¤·¤Ê¤¤¡×¤Èʸ¶ç¤ò¸À¤¤¤½¤¦¤À¤Ê¡Ä¡£¥Ñ¥Ã¤È¸«¤Ç¡Ö²¶¤ÎÉô²°¡×¡Ö²¶¤ÎÄí¡×´¶¤¬¥Ó¥ó¥Ó¥ó¤Ë½Ð¤Ê¤¤¥µ¡¼¥Ó¥¹¤À¤È¡¢Ëþ­¤·¤Æ¤â¤é¤¨¤Ê¤¤Í½´¶¡£

¤³¤ì¤ÏÁÛÁü¤À¤±¤É¡¢¡Ö²¶¤ò¡¢Â¾¤Î¥æ¡¼¥¶¤È¤¤¤Ã¤·¤ç¤¯¤¿¤Ë¤¹¤ë¤Ê¡×¡á¡Ö²¶¤ò¤¾¤ó¤¶¤¤¤Ë°·¤¦¤Ê¡×Ū´¶¾ð¤¬¡¢¤½¤ì¤éWeb¥µ¡¼¥Ó¥¹¤Ë¸þ¤±¤é¤ì¤Æ¤ë¤Î¤Ç¤¢¤í¤¦µ¤¤â¤·¤¿¤ê¡£¡Ö¥æ¡¼¥¶Ã£¡×¤Ç¤Þ¤È¤á¤Æ°·¤¦¤Ê¤È¡£¡Ö¤ªµÒÍÍ°ì¿Í°ì¿Í¡×¤È¤·¤Æ°·¤Ã¤Æ¤ë¤è¤¦¤Ë·úÁ°¤À¤±¤Ç¤â¸«¤»¤«¤±¤í¤È¡£¤½¤¦¤¤¤¦ÏäÀ¤È»×¤¦¤Î¤À¤±¤É¡£¤Þ¤¢¡¢¤³¤Î¤¢¤¿¤ê¡¢¶ñÂÎŪ¤Ë¤Ï¡¢¥Ñ¥Ã¤È¸«¤Ç°ã¤¦¥Ú¡¼¥¸¤Ë¸«¤¨¤ë¤è¤¦¤Ë¥«¥¹¥¿¥Þ¥¤¥ºµ¡Ç½¤òÀߤ±¤ë¡¦½¼¼Â¤µ¤»¤ë¡¢¤Æ¤ÊÏäˤʤë¤ó¤À¤í¤¦¤±¤É¡£¤Ï¤Æ¤Ê¥À¥¤¥¢¥ê¡¼¤äTumblr¤ß¤¿¤¤¤Ê´¶¤¸¡© ¤ï¤«¤é¤ó¤±¤É¡£

¤Ç¤â¡¢¥Ñ¥Ã¤È¸«¤ÇÊÌ¥µ¥¤¥È¤Ë¸«¤¨¤ë¤è¤¦¤Ç¤Ï¡¢»È¤¤¾¡¼ê¤ÎÌ̤Ǥ⡢¹­¹ðɽ¼¨¤½¤Î¾¤ÎÌ̤Ǥ⡢º¤¤Ã¤Á¤ã¤¦¾õÂ֤ˤʤ뤷¡Ä¡£¥Ð¥é¥ó¥¹¤ò¼è¤ë¤Î¤¬Æñ¤·¤½¤¦¡£

2014/01/09(ÌÚ) [nǯÁ°¤ÎÆüµ­]

#1 [cg_tools] DOGA L1¤ò»îÍÑ

STG¤Î¼«µ¡²èÁü¤¬ºî¤ì¤Ê¤¯¤ÆǺ¤ó¤Ç¤¤¤ë¤Î¤À¤±¤É¡£¤Õ¤È¡¢¡ÖDOGA L1¤ò»È¤Ã¤¿¤é¡¢¥Ç¥¶¥¤¥ó¸¡Æ¤¤°¤é¤¤¤Ï¤Ç¤­¤Ê¤¤¤«¤Ê¡×¤È»×¤¤¤Ä¤¤¤Æ¡£

_DOGA L1 ¤Ï¡¢3DCG¥¢¥Ë¥á¡¼¥·¥ç¥ó¤Î·¼ÌØÍѤ˺î¤é¤ì¤¿¡¢ÌµÎÁ¤Ç»È¤¨¤ë3DCGÆþÌ祽¥Õ¥È¡£500¼ïÎà¤Û¤ÉÍÑ°Õ¤µ¤ì¤¿3D¤Î¥Ñ¡¼¥Ä¤ò¡¢ÀѤßÌڤΤ褦¤ËÁȤ߹ç¤ï¤»¤Æ¡¢ÀïÆ®µ¡¤ä±§ÃèÀï´Ï¤òºî¤ê¡¢¤½¤ì¤ò¥Ó¥å¥ó¥Ó¥å¥óÆ°¤«¤·¤Æ¥¢¥Ë¥á¤òºî¤ì¤ë¡£

·¼ÌØÍѤòÌÜŪ¤È¤·¤Æºî¤Ã¤¿¥½¥Õ¥È¤Ê¤Î¤Ç¡¢¾¦ÍÑÍøÍѤϤǤ­¤Ê¤¤¡¦±ÄÍøÌÜŪ¤Ç¤Ï»È¤¨¤Ê¤¤¤Î¤À¤±¤É¡£ *1 ¥é¥Õ¥Ç¥¶¥¤¥ó¤ò¤Ü¤ó¤ä¤ê¹Í¤¨¤ë¡¢¤°¤é¤¤¤Ê¤é»È¤¨¤ë¤ó¤¸¤ã¤Ê¤¤¤Î¤«¤Ê¤È¡Ä¡£

¤Æ¤Ê¤ï¤±¤Ç¾¯¤·¿¨¤Ã¤Æ¤ß¤¿¤Î¤À¤±¤É¡£ÆþÌ祽¥Õ¥È¤È¾Î¤·¤Æ¤ë¤À¤±¤¢¤Ã¤Æ¡¢°µÅÝŪ¤Ë´Êñ¤Ç¡¢´¶¿´¤·¤Æ¤·¤Þ¤Ã¤¿¤ê¡£¥Á¥å¡¼¥È¥ê¥¢¥ë¤ò¸«¤Ê¤¬¤éÁàºî¤·¤Æ¤¤¤±¤Ð¡¢¾®³ØÀ¸¤Ç¤â¥µ¥¯¥µ¥¯»È¤¨¤ë¤ó¤¸¤ã¤Ê¤¤¤Î¤«¤Ê¤È¡£¾¯¤Ê¤¯¤È¤â¡¢MMD(MikuMikuDance)¤è¤ê¤Ï´Êñ¡£¡Ä¤â¤Á¤í¤ó¡¢¤ä¤ì¤ë¤³¤È¤ò¤«¤Ê¤êÀ©¸Â¤·¤Æ¤ë¤«¤é¡¢´Êñ¤Ë¤Ê¤Ã¤Æ¤ë¤ï¤±¤À¤±¤É¡£º£¤Þ¤Ç3DCG¥¢¥Ë¥á¤Ê¤ó¤Æºî¤Ã¤¿¤³¤È¤¬Ìµ¤¤¿Í¤Ç¤â¡¢¡Ö¥Ü¥¯¤À¤Ã¤Æ3DCG¥¢¥Ë¥á¤¬ºî¤ì¤ë¤¾¡ª¡×¤È»×¤ï¤»¤ë¡¢¤È¤¤¤¦ÌÜŪ¤Ç¤¢¤ì¤Ð¥Ð¥Ã¥Á¥êOK¤Ê°õ¾Ý¡£

¤³¤Î¡¢ËÄÂç¤Ê¥Ñ¡¼¥Ä¿ô¤òÍÑ°Õ¤·¤Æ¡¢¤½¤ì¤¾¤ì¤ò¤¯¤Ã¤Ä¤±¤Æ²¿¤«¤òºî¤ë¡¢¤È¤¤¤¦¥¢¥×¥í¡¼¥Á¤Ï¡¢º£¤Ç¤â¤«¤Ê¤êÍ­¸ú¤¸¤ã¤Ê¤¤¤Î¤«¤È»×¤¨¤¿¤ê¡£ ¤¤¤ä¡£¹Í¤¨¤Æ¤ß¤¿¤é¡¢ _¥³¥ßPo! ¤â¤½¤¦¤À¤Ã¤¿¤«¡Ä¡£¤â¤·¤«¤¹¤ë¤È¡¢¥¬¥ó¥À¥à¤Î¥²¡¼¥àÅù¤Ç¤â¡¢¤½¤¦¤¤¤¦¤Î¤¬¤¢¤ê¤½¤¦¤Ê¡Ä¡£blender ¤ä Metasequoia ¤Ç¡¢¤³¤¦¤¤¤¦¤³¤È¤¬¤Ç¤­¤¿¤é°ìµ¤¤Ë¥Ï¡¼¥É¥ë¤¬²¼¤¬¤ê¤½¤¦¤À¤±¤É¡¢UI¤¬ÌäÂ꤫¤·¤é¡£·Á¾õÄɲäΥá¥Ë¥å¡¼¤Ë500¼ïÎà¤â¹àÌܤ¬Ê¤ó¤Ç¤¿¤é¡Ä¤¦¤à¡Ä¤½¤ì¤Ï¥ä¥Ð¥¤¡Ä¡£
*1: ¤É¤¦¤·¤Æ¤â¾¦ÍÑÍøÍѤ·¤¿¤¤¾ì¹ç¤Ï¡¢ _20,000±ß¤Û¤Éʧ¤Ã¤ÆDOGA L3¤Î¾¦ÍÑÍøÍѥ饤¥»¥ó¥¹¤ò¹ØÆþ ¤·¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£

#2 [cg_tools] Effekseer¤ò»îÍÑ

_Effekseer ¤Ï¡¢¥²¡¼¥à¸þ¤±¤Î¥¨¥Õ¥§¥¯¥È¤òGUI¤Çºî¤ì¤ë¥Ä¡¼¥ë¡£MIT License ¤Ç¸ø³«¤µ¤ì¤Æ¤ë¡£¼«ºî¥²¡¼¥à¤ËÁȤ߹þ¤ó¤ÇºÆÀ¸¤·¤¿¤ê¡¢Unity ¤ÈÁȤ߹ç¤ï¤»¤Æ»È¤¨¤ë¤é¤·¤¤¡£¥Ø¥ë¥×¾å¤Ç¤Ï¡¢ _BISHAMON ¤Ë¥¤¥ó¥¹¥Ñ¥¤¥¢¤µ¤ì¤Æºî¤é¤ì¤¿¥½¥Õ¥È¡¢¤È½ñ¤¤¤Æ¤¢¤Ã¤¿¡£

¤Á¤Ê¤ß¤Ë¡¢ _¤¹¤Ù¤Æ¤Î¹Ö±é»ñÎÁ - Á´ÆüËܳØÀ¸¥²¡¼¥à³«È¯¼ÔÏ¢¹ç¡ÊÁ´¥²Ï¢¡Ë»ñÎÁÃÖ¤­¾ì ¤ä _¥¨¥Õ¥§¥¯¥ÈºîÀ®¥Ä¡¼¥ë¤Þ¤È¤á : ¤Ô¤Ý¤ä ·Ðͳ¤Ç¡¢Â¸ºß¤òÃΤê¤Þ¤·¤¿¡£

¾¯¤·¿¨¤Ã¤Æ¤ß¤¿¤±¤ì¤É¡£¥«¥Ã¥³¤è¤¯¤ÆåºÎï¤Ê¥¨¥Õ¥§¥¯¥È¤¬¡¢¥Ñ¥é¥á¡¼¥¿¤òÄ´À°¤¹¤ë¤À¤±¤Ç¤¹¤°¤Ëºî¤ì¤Æ¡¢¤«¤Ê¤ê¥¤¥¤´¶¤¸¡£¿Æ»Ò´Ø·¸¤ò³èÍѤ·¤Ê¤¬¤éÆ°¤«¤¹¤È¡¢Ê£»¨¤ÊÆ°¤­¤âºî¤ì¤ë¤è¤¦¤Ç¡£

¤¿¤À¡¢²èÁü¤È¤·¤Æ¥¨¥¯¥¹¥Ý¡¼¥È¤¹¤ëµ¡Ç½¤¬¤è¤¯Ê¬¤«¤é¤º¡£¥Á¥å¡¼¥È¥ê¥¢¥ë¤Î¥Ç¡¼¥¿¤ò½ÐÎϤ·¤Æ¤ß¤¿¤±¤É¡¢²èÁü¥µ¥¤¥º¤ò¤É¤³¤Ç»ØÄꤹ¤ì¤Ð¤¤¤¤¤Î¤ä¤é¡£¤Þ¤¿¡¢Çطʤ¬°ìÉôÆ©ÌÀ¤Ë¤Ê¤Ã¤Æ¤Ê¤¤¤è¤¦¤Ê¡Ä¡© ¥Î¡¼¥É¤È¤ä¤é¤ÎÀßÄê¤Ç¤½¤Î¤¢¤¿¤ê°ã¤Ã¤Æ¤¯¤ë¤Î¤À¤í¤¦¤«¡£

¤³¤ì¤ò DXRuby ¤Ç»È¤¨¤Ê¤¤¤«¤Ê¡£¤È°ì½Ö»×¤Ã¤¿¤±¤É¡¢¤É¤¦¤ä¤Ã¤Æ»È¤¦¤Î¤«¤Ç¹Í¤¨¹þ¤ó¤Ç¤·¤Þ¤Ã¤¿¤ê¡£3D·×»»¤·¤Æ¤ë¤·¡¢ºÆÀ¸ÍÑ¥é¥ó¥¿¥¤¥à¥é¥¤¥Ö¥é¥ê¤¬¤É¤¦¤Î¤³¤¦¤Î¤ÈÀâÌÀ¤µ¤ì¤Æ¤ë¤«¤é¡¢ÁȤ߹þ¤á¤Ê¤¤¤è¤Ê¡Ä¡£½ÐÎϲèÁü¤òɽ¼¨¤¹¤ë¤Î¤¬ÌµÆñ¤À¤í¤¦¤«¡£¤Ç¤â¡¢¸µ¥Ä¡¼¥ë¤Ï¥ê¥¢¥ë¥¿¥¤¥à¤Ë¥Ñ¡¼¥Æ¥£¥¯¥ë¤òÆ°¤«¤·¤Æ¤ë¤ï¤±¤À¤«¤é¡¢DXRuby¾å¤Ç¤â¥ê¥¢¥ë¥¿¥¤¥à¤ËÆ°¤«¤·¤¿¤Û¤¦¤¬¡Ä¡£¤¤¤ä¡¢Ruby¤Î¾å¤Ç¤½¤ó¤Ê¤ÎÆ°¤«¤·¤¿¤é¡¢½èÍý®ÅÙ¤¬´Ö¤Ë¹ç¤ï¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¤«¡£¿ôÉ´¡Á¿ôÀé¤Î¥Ñ¡¼¥Æ¥£¥¯¥ë¤ò½Ð¤·¤Æ¤ë¤ï¤±¤À¤·¡£

¤â¤·¤«¤¹¤ë¤È¡¢JavaScript + Canvas ¤ä JavaScript + WebGL ¤ÇºÆÀ¸¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤é¡¢¤Þ¤¿°ã¤¦»È¤ï¤ìÊý¤ò¡Ä¡£¤¤¤ä¡¢¤É¤¦¤«¤Ê¡Ä¡£

Êݸ¥Õ¥¡¥¤¥ë .efkproj ¤òį¤á¤¿¤È¤³¤í¡¢xml·Á¼°¤ÇÊݸ¤µ¤ì¤Æ¤¿¡£xml²òÀϤ·¤ÆÊ̴Ķ­¤ÇºÆÀ¸¡¢Åù¤Ï¤ä¤ê¤ä¤¹¤¤¤Û¤¦¤«¤â¤·¤ì¤Ê¤¤¡Ä¡©

#3 [blender] blender¤Ç¥¨¥Ã¥¸¤ò½Ð¤¹¥½¥ì

blender ¤Ç·Á¾õ¤òºî¤Ã¤Æ¥¹¥à¡¼¥¹¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢Á´¤Æ¤ÎÌ̤¬³ê¤é¤«É½¼¨¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤ÆǺ¤ó¤Ç¤¿¤Î¤À¤±¤É¡£Edge Split ¥â¥Ç¥£¥Õ¥£¥¢¡¼¤ò»È¤¨¤Ð²ò·è¤¹¤ë¤é¤·¤¤¤ÈÃΤ俤Τǥá¥â¡£

_Blender¥â¥Ç¥£¥Õ¥¡¥¤¥¢¡ÊEdgeSplit¡Ë
_Doc:JA/2.6/Manual/Modifiers/Generate/Edge Split - BlenderWiki
_Blender.jp - ¥ê¥ê¡¼¥¹¥Î¡¼¥È-Blender¥¹¥à¡¼¥¸¥ó¥°ÌäÂê¤Î²ò·èË¡

¤·¤«¤·¡¢¥³¥ì¡¢ÊÕ¤òʬ³ä¤·¤Æ¼Â¸½¤¹¤ë¤è¤¦¤Ç¡£¤Þ¤¢¡¢¥â¥Ç¥£¥Õ¥£¥¢¡¼¤ÎŬÍѥܥ¿¥ó¤ò²¡¤µ¤Ê¤¤¤Þ¤Þ¤Ë¤·¤Æ¤ª¤±¤Ð¤¤¤¤¤Î¤À¤í¤¦¤±¤É¡Ä¡£

2014/01/10(¶â) [nǯÁ°¤ÎÆüµ­]

#1 [cg_tools] ¼«µ¡²èÁü¤Ã¤Ý¤¤¤â¤Î¤òºîÀ®

STG¤Î¥µ¥ó¥×¥ë¤Ë»È¤¨¤½¤¦¤Ê¼«µ¡²èÁü¤Ã¤Ý¤¤¤â¤Î¤òºîÀ®¡£
  1. blender ¤Ç¥â¥Ç¥ê¥ó¥°¡¦¥ì¥ó¥À¥ê¥ó¥°¤·¤Æ¡£
  2. GIMP¤Ç¥È¥ê¥ß¥ó¥°¡¢¿§Ä´ÊäÀµ¡¢¥³¥ó¥È¥é¥¹¥ÈÊѹ¹¡¢½Ì¾®¤·¤Æ¡£
  3. ImageMagcik ¤Ç¡¢Ê£¿ô¤Î²èÁü¥Õ¥¡¥¤¥ë¤ò°ì¤Ä¤Î²èÁü¥Õ¥¡¥¤¥ë¤Ë¤Þ¤È¤á¤Æ¡£
  4. OPTPiX¡¢¤Þ¤¿¤Ï EDGE2 ¤Ç¸º¿§¡£
  5. EDGE2 ¤Ç¥É¥Ã¥È½¤Àµ¡£

ÉÔÆ©ÌÀÉôʬ¤ÈÆ©ÌÀÉôʬ¤Î¶­³¦¤ò¥É¥Ã¥Èñ°Ì¤Ç¥Ñ¥­¥Ã¤È¤µ¤»¤¿¤«¤Ã¤¿¤Î¤Ç¡¢GIMP¾å¤Ç¥ì¥¤¥ä¡¼¥Þ¥¹¥¯¤òºî¤Ã¤Æ¡¢¤½¤Î¥ì¥¤¥ä¡¼¥Þ¥¹¥¯¤ËÂФ·¤Æ¡¢¿§ ¢ª ¤·¤­¤¤ÃͤÇÆóÃͲ½¤·¤Æ¤ß¤¿¤ê¡£¤¿¤À¡¢¤³¤ì¤À¤È¡¢¶­³¦¤ÎÉôʬ¤ËÊѤʿ§¤¬ºÜ¤Ã¤Æ¤·¤Þ¤¦¡Ä¡£

¤½¤³¤Ç¡¢¤â¤¦¤Á¤ç¤Ã¤È¹©Éפ·¤¿¤ê¡£
  1. ¤¢¤é¤«¤¸¤á¥ì¥¤¥ä¡¼¤Î¥¢¥ë¥Õ¥¡¥Á¥ã¥ó¥Í¥ë¤ò¤É¤³¤«(¥Á¥ã¥ó¥Í¥ë or Ê̥쥤¥ä¡¼)¤Ë²¾Êݸ¡£
  2. ¹õ¥Ù¥¿²èÁü¤òÇطʤˤ·¤Æ¥ì¥¤¥ä¡¼Åý¹ç¡£
  3. ¤½¤Î¥ì¥¤¥ä¡¼¤ËÂФ·¤Æ¥ì¥¤¥ä¡¼¥Þ¥¹¥¯¤òºî¤ë¡£
  4. ²¾Êݸ¤·¤Æ¤¢¤Ã¤¿¥¢¥ë¥Õ¥¡¥Á¥ã¥ó¥Í¥ëʬ¤ò¥ì¥¤¥ä¡¼¥Þ¥¹¥¯¤ËÈ¿±Ç¡£
¤³¤ì¤À¤È¡¢ÎسԤΤȤ³¤í¤Ë¹õ¤¤Àþ¤¬Æþ¤Ã¤Æ¤·¤Þ¤¦¤±¤É¡Ä¤Þ¤¢¡¢ÎسÔÀþ¤¬¤Ä¤¤¤Æ¤ë¥É¥Ã¥È³¨¤Ë¤·¤Æ¤·¤Þ¤¨¤Ð¤¤¤¤¤«¤Ê¤È¡£

¤Á¤Ê¤ß¤Ë¡¢¥á¥Ë¥å¡¼ ¢ª ¥ì¥¤¥ä¡¼¤Ç¡¢¥¢¥ë¥Õ¥¡¥Á¥ã¥ó¥Í¥ë¤ò¤·¤­¤¤ÃͤÇÆóÃͲ½¡¢¤È¤¤¤¦µ¡Ç½¤â¤¢¤ë¤Î¤À¤±¤É¡£¤³¤ì¤À¤È¸«¤¿ÌܤǤɤó¤Ê·ë²Ì¤Ë¤Ê¤ë¤«¥×¥ì¥Ó¥å¡¼¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢»È¤Ã¤Æ¤Ê¤«¤Ã¤¿¤ê¡£¤É¤ÎÄøÅÙ¤ÎÃͤˤ¹¤ì¤Ð¤¤¤¤¤Î¤«¡¢´û¤Ëʬ¤«¤Ã¤Æ¤ë¾ì¹ç¤Ï°ìÈÖ¼ê¤Ã¼è¤êÁᤤ¤Î¤À¤í¤¦¤±¤É¡£

ImageMagick ¤Ç°ì¤Ä¤Î²èÁü¤Ë¤¹¤ë¤Î¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Êµ­½Ò¤Ç¡£
convert +append hoge*.png output.png
montage -tile 4x4 -geometry 64x64 -background none hoge*.png output.png

¤Ç¡¢°ì±þ¡¢64x64 ¤Ç¿ô¥Ñ¥¿¡¼¥ó¤Î²èÁü¤Ï¤Ç¤­¤¿¤Î¤À¤±¤É¡£¤É¤¦¸«¤Æ¤â¡Ä¡Ö¤¢¤¢¡¢¤«¤Ê¤êÀΤÎƱ¿Í¥²¡¼¥à¤Î¥½¥ì¤Ç¤¹¤Í¡×¤Æ¤Ê´¶¤¸¤ÎÈᤷ¤¤²èÁü¤Ë¡£¼«Ê¬¤Îºî¤ë¤½¤Î¼ê¤Î²èÁü¤Ï¡¢º¬ËÜŪ¤Ê¤È¤³¤í¤Ç²¿¤«½ÅÂç¤ÊÍ×ÁǤ¬·çÍ¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£

¤½¤â¤½¤â¡¢64x64¤°¤é¤¤¤Ê¤é¡¢3DCG¥Ä¡¼¥ë¤Ê¤É»È¤ï¤º¤Ë¥É¥Ã¥ÈÂǤäƤ¤¤Ã¤¿¤Û¤¦¤¬Áᤤ¤À¤í¡¢¤È¾Ð¤ï¤ì¤½¤¦¤Êµ¤¤â¤¹¤ë¡£¡Ä¥Ô¥¿¥ê¤È»ß¤Þ¤Ã¤Æ¤ë¥É¥Ã¥È³¨¤Ê¤é¡¢¼«Ê¬¤â¤Ê¤ó¤È¤«¤Ê¤ê¤½¤¦¤À¤±¤É¡¢¥¢¥Ë¥á¤Î¤µ¤»Êý¤¬¤è¤¯¤ï¤«¤é¤Ê¤¤¤ï¤±¤Ç¡£¤¤¤ä¡¢3DCG¤Î¥½¥ì¤Ï²¼³¨¤Ë»È¤Ã¤Æ¡¢¤È¤«¤ä¤ì¤Ð¤¤¤¤¤Î¤«¤â¤·¤ì¤Ê¤¤¤±¤É¡£

¡ý Çúȯ¥Ñ¥¿¡¼¥ó²èÁü¤òºîÀ®¡£ :

Çúȯ¥Ñ¥¿¡¼¥ó²èÁü¤ÎºîÀ®¤Ï¡¢ _Detonation ¤ò»È¤ï¤»¤Æ¤â¤é¤Ã¤¿¤ê¡£¤¢¤ê¤¬¤¿¤ä¡£

¤³¤Î¥Ä¡¼¥ë¤Çºî¤Ã¤¿²èÁü¤Î¥é¥¤¥»¥ó¥¹¤Ï¤É¤¦¤Ê¤ë¤Î¤«¤Ê¡Ä¡© ¤È»×¤Ã¤¿¤±¤É¡¢¥Ø¥ë¥×html¤Ë½ñ¤¤¤Æ¤¢¤Ã¤¿¡£
¡ûÃøºî¸¢¤È¤«

¡¡¤³¤Î¥½¥Õ¥È¤ÎÃøºî¸¢¤Ï£Ò£Ò£Ò£Ñ¤Ë¤¢¤ê¤Þ¤¹¤¬¡¢
¡¡¤³¤Î¥½¥Õ¥È¤Çºî¤Ã¤¿¥Ç¡¼¥¿¤Ï¤½¤ì¤òºîÀ®¤·¤¿ËܿͤËÃøºî¸¢¤¬È¯À¸¤·¤Þ¤¹¡£
¡¡¤è¡Á¤¹¤ë¤Ë¡¢ºî¤Ã¤¿Çúȯ¤Ï¤É¤ó¤É¤ó»È¤Ã¤Æ¤¤¡¼¤è¤ó¤Ã¤Æ¤³¤È¤Ç¤¹¡Ê£÷
¡¡¤¢¡¢¤¢¤È¥µ¥ó¥×¥ë¤ËÉÕ¤±¤¿¥Ç¡¼¥¿¤âÃøºî¸¢¥Õ¥ê¡¼¤È¤¤¤¦¤³¤È¤Ç¡£
¤Ê¤ë¤Û¤É¡£¤Æ¤³¤È¤Ï¡¢ºîÀ®¤·¤¿²èÁü¤ò OpenGameArt ¤¢¤¿¤ê¤Ë CC0¥é¥¤¥»¥ó¥¹¤ÇÅê¹Æ¤·¤Æ¤âOK¡¢¤Ê¤Î¤«¤Ê¡Ä¡©

#2 [dxruby] STG¤Ã¤Ý¤¤¤â¤Î¤òºîÀ®Ãæ

¼«µ¡²èÁü¤â¤Ç¤­¤¿¤Î¤Ç¡¢DXRuby ¤ò»È¤Ã¤Æ¡¢²£¥¹¥¯¥í¡¼¥ëSTG¤Ã¤Ý¤¤¤â¤Î¤òºîÀ®Ãæ¡£

Sprite ¤ò»È¤Ã¤Æ¤¤¤Æ¡¢¤Á¤ç¤Ã¤È¥Ï¥Þ¤Ã¤¿¤ê¡£¥¢¥Ë¥á¥Ñ¥¿¡¼¥ó¤ÎºÇ½é¤Î1¥Õ¥ì¡¼¥à¤À¤±¡¢ÊѤʰÌÃÖ¤Ëɽ¼¨¤µ¤ì¤Æ¤·¤Þ¤Ã¤Æ¡£

initialize() Ãæ¤Ç super ¤·¤«¸Æ¤ó¤Ç¤Ê¤«¤Ã¤¿¤Î¤¬¥Þ¥º¤«¤Ã¤¿¤é¤·¤¤¡£super(x, y, image) ¤Þ¤Ç¤ä¤é¤Ê¤¤¤È¥À¥á¤Ê¤Î¤À¤Ê¡£¡Ä¤È»×¤Ã¤¿¤±¤ì¤É¡¢¤½¤ì¤Ç¤â¤ä¤Ã¤Ñ¤ê²¿¤«¤ÎÇï»Ò¤Ë¤ª¤«¤·¤¯¤Ê¤ë¤è¤¦¤Ê¡£alpha¡¢blend¡¢angle¡¢scale_x¡¢scale_y¡¢Á´Éô»È¤¦¤È¡¢²¿¤«¤ÎÇï»Ò¤ËÊѤʰÌÃÖ¤Ëɽ¼¨¤µ¤ì¤ë¡£¤¿¤À¡¢É¬¤º¤¤¤Ä¤Ç¤âµ¯¤­¤ë¤ï¤±¤Ç¤â¤Ê¤¯¤Æ¡£¤É¤ó¤Ê¾ò·ï¤ÇȯÀ¸¤¹¤ë¤Î¤«¡¢¤è¤¯Ê¬¤«¤é¤Ê¤¤¡£¤½¤Î¤¦¤Á¸¡¾Ú¤·¤Æ¤ß¤è¤¦¡Ä¡£

Shader ¤ò»È¤Ã¤ÆÇطʤò¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë¤µ¤»¤¿¤¤¤Ê¤È»×¤Ã¤¿¤Î¤À¤±¤É¡¢HLSL ¤È¤ä¤é¤¬¡¢¤è¤¯Ê¬¤«¤é¤º¡£Ç¾Æ⥤¥á¡¼¥¸¤È¤·¤Æ¤Ï¡¢¥µ¥ó¥À¡¼¥Õ¥©¡¼¥¹IV¤Î¥¹¥Æ¡¼¥¸5¤Î±§ÃèÌ̤äݤ¤Çطʤ¬¤ä¤ê¤¿¤¤¤ï¤±¤Ç¡£

_Thunder Force IV HD Full Run (Long Play) No Miss (Progressive) - YouTube (14:00º¢)

ÀΤÎ2D¥²¡¼¥àµ¡¤Ã¤Æ¡¢¥é¥¹¥¿¡¼ËÜ¿ôʬ¤Î¥¹¥¯¥í¡¼¥ëÃͤò³ÊǼ¤¹¤ë¥á¥â¥êÎΰ褬¤¢¤Ã¤Æ¡¢¤½¤ÎÎΰè¤ËCPU¤¬¤¢¤é¤«¤¸¤á¥¹¥¯¥í¡¼¥ëÃͤò½ñ¤­¹þ¤ó¤Ç¤ª¤¯¤È¡¢¸å¤Ï¥Ï¡¼¥É¥¦¥§¥¢Â¦¤Ç¤½¤ÎÄ̤ê¤Ë¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë¤·¤Æ¤¯¤ì¤ë¡¢¤Æ¤Ê´¶¤¸¤À¤Ã¤¿¤Î¤À¤±¤É¡£

¤½¤¦¤¤¤¦¤³¤È¤ò¡¢DXRuby ¤Î Shader + HLSL ¤Ç¤ä¤ì¤Ê¤¤¤«¤Ê¤È»×¤¨¤Æ¤­¤¿¤ê¡£¤½¤¦¤¤¤¦»ÅÁȤߤ¬¤Ç¤­¤ì¤Ð¡¢½èÍý¤¬ÊѤï¤ë¤¿¤Ó¤ËHLSL¦¤òÏ®¤Ã¤¿¤ê¤»¤º¡¢Ruby¦¤ÇÇÛÎóÆâ¤ÎÃͤòÀ¸À®¡¦Êѹ¹¤¹¤ì¤Ð»ö­¤ê¤ë¤Ï¤º¤Ç¡£¤Ä¤Þ¤ê¡¢HLSL¤ÎÃμ±¤Þ¤ÇÍ׵᤻¤º¤ËºÑ¤à¤À¤í¤¦¤Ê¤È¡£¤¿¤Ö¤ó¡¢¤½¤¦¤¤¤¦¥¯¥é¥¹¤òºî¤Ã¤Æ¡¢ require ¤¹¤ì¤ÐOK¤Ç¤¢¤í¤¦Í½´¶¡£

¤¿¤À¡¢HLSL¦¤ÇÇÛÎóÁêÅö¤ò°·¤¨¤ë¤Î¤«¤É¤¦¤«¤¬Ê¬¤«¤é¤Ê¤¯¤Æ¡£Shader/HLSL¤Î¥µ¥ó¥×¥ë¤ÎÃæ¤Ë¡¢¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë´Ø·¸¤Î¥µ¥ó¥×¥ë¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¢Ä¯¤á¤Æ¤ß¤Ê¤¤¤È¡Ä¡£

¤Ç¤â¡¢¤â¤·¤«¤¹¤ë¤È¡¢º£»þ¤ÎGPU¤Ê¤é¡¢BGÁêÅö¤Î²èÁü¤ò½½¿ôËç¤Û¤É¤½¤Î¤Þ¤Þ½Å¤Í¤ÆÉÁ²è¤·¤Á¤ã¤Ã¤¿¤Û¤¦¤¬Â®¤«¤Ã¤¿¤ê¤¹¤ë¤Î¤«¤Ê¡¢¤Æ¤Êµ¿Ìä¤â¡£

2014/01/11(ÅÚ) [nǯÁ°¤ÎÆüµ­]

#1 [blender] blender¤È¥Ð¥ó¥°¥Þ¥Ã¥Ô¥ó¥°¤ÈÇò¹õ¤ÈÆ̱ú

¥Ð¥ó¥×¥Þ¥Ã¥Ô¥ó¥°¤Ê¤Î¤«¥Î¡¼¥Þ¥ë¥Þ¥Ã¥×(Ë¡Àþ¥Þ¥Ã¥×)¤Ê¤Î¤«Ê¬¤«¤é¤Ê¤¤¤±¤É¡¢²èÁü¤ò»È¤Ã¤ÆɽÌ̤¬Æ̱ú¤·¤Æ¤ë¤è¤¦¤Ë¸«¤»¤ë¥½¥ì¤òÊÙ¶¯Ãæ¡£

¥Ð¥ó¥×¥Þ¥Ã¥Ô¥ó¥°¤ÏÇò¹õ¤Î²èÁü¤ò»È¤¦¤é¤·¤¤¡£¥Î¡¼¥Þ¥ë¥Þ¥Ã¥×¤Ï¡¢RGB²èÁü¤ò»È¤¦¤è¤¦¤Ç¡£¤È¤ê¤¢¤¨¤º¡¢ÀßÄꤷ¤Æ¤ëÍͻҤò¥­¥ã¥×¥Á¥ã¡£

¥Ð¥ó¥×¥Þ¥Ã¥Ô¥ó¥°

¥Î¡¼¥Þ¥ë¥Þ¥Ã¥×

¥ì¥ó¥À¥ê¥ó¥°·ë²Ì


Çò¤¬±ú¤Ç¡¢¹õ¤¬ÆÌ¡¢¤Æ¤Êµ­»ö¤ò¸«¤«¤±¤¿¤Î¤À¤±¤É¡¢¼ÂºÝ»î¤·¤Æ¤ß¤¿¤éµÕ¤Ë¤Ê¤Ã¤¿¤è¤¦¤Ê¡Ä¡© Çò¤¤¤È¤³¤í¤¬É⤫¤Ó¾å¤¬¤Ã¤Æ¡¢¹õ¤¤¤È¤³¤í¤¬±ú¤ó¤Ç¤ë¤è¤¦¤Ë¸«¤¨¤ë¤Î¤À¤±¤É¡Ä¡£¤Á¤ç¤Ã¤È¼«Ê¬¤ÎÌܤ˼«¿®¤¬Ìµ¤¤¤Ç¤¹¡£»È¤Ã¤Æ¤ë¤Î¤Ï blender 2.69 ¤À¤±¤É¡¢¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤Æ°ã¤¦¤Î¤«¤Ê¡©

µ¤¤Ë¤Ê¤Ã¤Æ¥°¥°¤Ã¤Æ¤ß¤¿¤é¡¢¡ÖÇò¤¬ÆÌ¡¢¹õ¤¬±ú¡×¤È½ñ¤¤¤Æ¤ë¿Í¤âµï¤ë¤·¡¢¡ÖÇò¤¬±ú¡¢¹õ¤¬Æ̡פȽñ¤¤¤Æ¤ë¿Í¤âµï¤ë¤·¡Ä¡£°ìÂΤɤäÁ¤Ê¤ó¤À¤í¤¦¡£

¤â¤Ã¤È¤â¡¢blender¤Î¾ì¹ç¡¢Normal¤ÎÃͤò¥Þ¥¤¥Ê¥¹Ãͤˤ¹¤ì¤ÐÆ̱ú¤¬È¿Å¾¤¹¤ë¤ß¤¿¤¤¤Ê¤Î¤Ç¡¢¤É¤Ã¤Á¤Ç¤â¸«¤¿Ìܥ襵¥²¤Ë¤Ê¤ì¤Ð¤¤¤¤¤è¤¦¤Êµ¤¤â¤¹¤ë¡£¤¿¤À¡¢Â¾¤Î¥ì¥ó¥À¥é¡¼¤ò»È¤ª¤¦¤È¤¹¤ë¾ì¹ç¤Ï¥Ï¥Þ¤ë¤é¤·¤¤¡£ _¤¿¤Þ¤Ë¹¹¿·¤µ¤ì¤ëblender¤È¤«¤Îµ­Ï¿: LuxRender¤Î¥Ç¥£¥¹¥×¥ì¥¤¥á¥ó¥È¥Þ¥Ã¥× ¤Ë¤è¤ë¤È¡¢LuxRender ¤ÏÇò¤¬Æ̤ǸÇÄꤵ¤ì¤Æ¤ë¤é¤·¤¤¤Î¤Ç¡Ä¡£¹õÃϤËÇò¤Ç½Ð¤ÃÄ¥¤êÉôʬ¤ò¡¢¤È°Õ¼±¤·¤ÆÉÁ¤¤¤¿¤Û¤¦¤¬¤¤¤¤¤è¤¦¤Êµ¤¤â¤¹¤ë¡£

¡ý ¥Î¡¼¥Þ¥ë¥Þ¥Ã¥×²èÁü¤ÎºîÀ®ÊýË¡¡£ :

¥Î¡¼¥Þ¥ë¥Þ¥Ã¥×¤ÎºîÀ®¤Ë¤Ï¡¢Photoshop Elements 8 + _NVIDIA Texture Tools for Adobe Photoshop ¤ò»ÈÍÑ¡£NVIDIA Texture Tools ¤Î¥¤¥ó¥¹¥È¡¼¥ëÀè¥Õ¥©¥ë¥À¤Ï¡¢Photoshop Elements ¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Õ¥©¥ë¥À¤ò»ØÄꤹ¤ì¤Ð¤¤¤¤¤é¤·¤¤¡£

°Ê²¼¡¢»²¹Í¥Ú¡¼¥¸¡£

_¡ÚBlender¡Û¥Æ¥¯¥¹¥Á¥ã¥Þ¥Ã¥Ô¥ó¥°¡§¥Î¡¼¥Þ¥ë(Ë¡Àþ)¥Þ¥Ã¥×¤È¥Ð¥ó¥×¥Þ¥Ã¥×¤ÎÈæ³Ó
_¡Ú¤½¤Î¾¡Û¤½¤Î¾/¥Õ¥ê¡¼¥½¥Õ¥È¡§¥Î¡¼¥Þ¥ë(Ë¡Àþ)¥Þ¥Ã¥×ºîÀ®PhotoshopÍѥץ饰¥¤¥ó
_¥¢¥É¥Ó ¥Õ¥©¥È¥·¥ç¥Ã¥×ÍÑDDS¥×¥é¥°¥¤¥ó¤ÎƳÆþÊýË¡ [ ¡Á ³Ð½ñ¤­¥á¥â ¡Á ]
_¥¢¥É¥Ó ¥Õ¥©¥È¥·¥ç¥Ã¥×ÍÑDDS¥×¥é¥°¥¤¥óƳÆþÊýË¡ [ ¡Á ³Ð½ñ¤­¥á¥â ¡Á ]

GIMP ¤Ç¤â¥Î¡¼¥Þ¥ë¥Þ¥Ã¥×¤Ïºî¤ì¤ë¤é¤·¤¤¡£ _gimp-normalmap ¤«¤é¡¢gimp-normalmap-win32-1.2.3.zip ¤òDL¡¢²òÅà¡£*.dll ¤ò¡¢GIMP¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Õ¥©¥ë¥À¤Ë¥³¥Ô¡¼¡£*.exe ¤ò¡¢¥æ¡¼¥¶¥Õ¥©¥ë¥À\plug-ins\ °Ê²¼¤Ë¥³¥Ô¡¼¡£ ¤È¤ê¤¢¤¨¤º¡¢Windows7 x64 + GIMP 2.8 Portable ¤Ç¤ÏÆ°ºî¤·¤¿¡£

°Ê²¼¡¢»²¹Í¥Ú¡¼¥¸¡£

_GIMP normalmap plugin¤ÎƳÆþÊýË¡ | ¶¹¤­Åí
_Ìϵ¼¼Â¸³Ï¿(²¾) Gimp¤ÇË¡Àþ¥Þ¥Ã¥×ºîÀ®
_¡ÚLesson ²ÆµÙ¤ßÊÔ¡ÛGIMP¤Çnormalmap¤òÊÔ½¸¤·¤Æ¤ß¤ë | ¤ª¤¤¤Ç¤è¢öTrenza Cafe "ORION"

#2 [cg_tools] ÇúȯÀ¸À®¥½¥Õ¥ÈDetonation¤Î»ÅÍͤ¬¤è¤¯Ê¬¤«¤é¤º

¼«ºî²èÁü¤òÆɤ߹þ¤ó¤ÇÇúȯ²èÁü¤òºî¤í¤¦¤È¤·¤¿¤é¡¢¡Ö¥ì¥¤¥ä¡¼0¤ÎFire¤Ç¥Ñ¥ì¥Ã¥È¤¬¡Á¡×¤Ê¤ë¥¨¥é¡¼¤¬¡£ÊѤÀ¤Ê¡Ä¡£¥Ñ¥ì¥Ã¥ÈÁêÅö¤Î²èÁü¤È¡¢Çúȯ¤Î¥Á¥Ã¥×¤Ï¡¢Æ±¤¸16¿§²èÁü¤«¤éÀÚ¤ê½Ð¤·¤Æ¤¤¤ë¤Î¤Ë¡Ä¡£¤½¤â¤½¤â¡¢Detonation ¤Ï¥ì¥¤¥ä¡¼1,2,3... ¤È³¤¯¤Î¤Ç¡¢¥ì¥¤¥ä¡¼0¤Ê¤ó¤Æ̵¤¤¤è¤¦¤Êµ¤¤â¤¹¤ë¤Î¤À¤±¤É¡£

Detonation ¤Î¥µ¥ó¥×¥ë¥Õ¥¡¥¤¥ë¤«¤é¥¨¥¯¥¹¥Ý¡¼¥È¤·¤¿²èÁü¤òEDGE2¤Ç½¤Àµ¤·¤Æ¤½¤Î¤Þ¤ÞÊݸ¤·¤¿¤é¡¢¥¨¥é¡¼¤¬½Ð¤Ê¤«¤Ã¤¿¡£¤¦¡¼¤ó¡£¤è¤¯¤ï¤«¤é¤ó¡£

2014/01/12(Æü) [nǯÁ°¤ÎÆüµ­]

#1 [dxruby][game] DXRuby¤ÇHLSLÊÙ¶¯Ãæ

DXRuby¤Ç¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë¤ò¤ä¤Ã¤Æ¤ß¤¿¤¤¤ï¤±¤Ç¤¹¤è¡£ÇÛÎó¤ÎÃæ¤ËÆþ¤Ã¤Æ¤ë¥¹¥¯¥í¡¼¥ëÃͤò»È¤Ã¤Æ¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë¤µ¤»¤ë¡¢¤ß¤¿¤¤¤Ê¤³¤È¤ò¤ä¤Ã¤Æ¤ß¤¿¤¤¡£¤Æ¤Ê¤ï¤±¤Ç¡¢Shader ¤À¤« HLSL ¤À¤«¤òÊÙ¶¯Ãæ¡£

¥°¥°¤Ã¤Æ¤ë¤¦¤Á¤Ë¡¢ HLSL ¤Ç¤âÇÛÎó¤ò ¡½¡½ int param[50]; ¤ß¤¿¤¤¤Ê½ñ¤­Êý¤ò¤¹¤ì¤Ð³ÎÊݤϤǤ­¤ë¤é¤·¤¤¡¢¤ÈÃΤ俤â¤Î¤Î¡£DXRuby ¤«¤é¡Ö¤³¤Î¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤ÏÇÛÎó¤À¤è¡×¤ÈÅÁ¤¨¤ëµ­½Ò¤¬ÉÔÌÀ¤Ç¡£

¤Þ¤¿¡¢HLSL¤ÇÇÛÎó¤òÍÑ°Õ¤¹¤ë¤È¡¢¥ì¥¸¥¹¥¿¡¼¥µ¥¤¥º±¾¡¹¤È¤¤¤¦ÌäÂê¤â½Ð¤Æ¤¯¤ë¤é¤·¤¤¤ÈÃΤꡢ¼ÂºÝ¤Ë»È¤¨¤½¤¦¤Ê¤Î¤«¤É¤¦¤«¡¢¤Á¤ç¤Ã¤È¤è¤¯Ê¬¤«¤Ã¤Æ¤Ê¤¤¾õÂÖ¡£

¤½¤ÎÁ°¤Ë¡¢¥é¥¹¥¿¡¼Ã±°Ì¤Ç¥¹¥¯¥í¡¼¥ëÎ̤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤Î¤«¤É¤¦¤«¡¢³Îǧ¤·¤Æ¤ß¤Ê¤¤¤È¤¤¤«¤ó¤Ê¤È¡£¤½¤³¤Ç¡¢ÀΤÎ2D¥²¡¼¥à¤Ç¤è¤¯¤ä¤Ã¤Æ¤¿¡¢Å·°æ¤À¤Î¾²¤À¤Î¤ò¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë¤ò¤¹¤ë¥½¥ì¤ò¼Â¸³¡£

¤·¤«¤·¡¢¾å¼ê¤¯¹Ô¤«¤Ê¤¤¡£²¿¸Î¤«¡¢²èÌ̤¬¤ä¤¿¤é¤È¥Á¥é¥Á¥é¤¹¤ë¡Ä¡£
²èÌÌ¥Á¥é¥Á¥é¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë

¿§¡¹¥°¥°¤Ã¤Æ¤ë¤¦¤Á¤Ë¡¢¤â¤·¤«¤·¤¿¤é¥Õ¥£¥ë¥¿¡¼¤È¤ä¤é¤¬´Ø·¸¤·¤Æ¤¿¤ê¤¹¤ë¤Î¤«¤Ê¤È¡£»î¤·¤Ë¡¢°Ê²¼¤Î¤è¤¦¤ËÊѹ¹¤·¤Æ¤ß¤¿¤ê¡£
  sampler Samp0 = sampler_state
  {
    Texture =<tex0>;

    // ¤³¤Ã¤Á¤À¤È²èÌ̤¬¥Á¥é¥Á¥é¤¹¤ë (¡­Ž¥¦ØŽ¥¡®)
    // MinFilter = LINEAR;
    // MagFilter = LINEAR;
    // MipFilter = LINEAR;

    // ¤³¤Ã¤Á¤Ê¤é¥Á¥é¥Á¥é¤·¤Ê¤¤
    MinFilter = POINT;
    MagFilter = POINT;
    MipFilter = NONE;

    AddressU = WRAP;
    AddressV = WRAP;
  };
²èÌ̤¬¤µ¤Û¤É¥Á¥é¥Á¥é¤·¤Ê¤¤¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë
¤«¤Ê¤ê²þÁ±¤µ¤ì¤¿¡£¤¿¤À¡¢¤³¤ì¤Ç¤â¤Þ¤À¡¢¥Á¥é¥Á¥é¤·¤Æ¤ë¤±¤É¡Ä¡£

¤È¤ê¤¢¤¨¤º¡¢¤½¤ì¤Ã¤Ý¤¯Æ°¤¤¤¿ÈǤòŽ¤Ã¤Æ¤ß¤¿¤ê¡£

_shader_test7_b.rb
# Shader¤ò»È¤Ã¤Æ¥é¥¹¥¿¥¹¥¯¥í¡¼¥ë¤Î¥Æ¥¹¥È
# Å·°æ¡¢ÊÉ¡¢¾²¤ò¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë¤µ¤»¤ë¤Ã¤Ý¤¤´¶¤¸¤Î½èÍý

require 'dxruby'

hlsl = <<EOS
  float2 size;
  float d;
  float dd;
  texture tex0;

  sampler Samp0 = sampler_state
  {
    Texture =<tex0>;

    // ¤³¤Ã¤Á¤À¤È²èÌ̤¬¥Á¥é¥Á¥é¤¹¤ë (¡­Ž¥¦ØŽ¥¡®)
    // MinFilter = LINEAR;
    // MagFilter = LINEAR;
    // MipFilter = LINEAR;

    // ¤³¤Ã¤Á¤Ê¤é¥Á¥é¥Á¥é¤·¤Ê¤¤
    MinFilter = POINT;
    MagFilter = POINT;
    MipFilter = NONE;

    AddressU = WRAP;
    AddressV = WRAP;
  };

  struct PixelIn
  {
    float2 UV : TEXCOORD0;
  };

  struct PixelOut
  {
    float4 Color : COLOR0;
  };

  PixelOut PS1(PixelIn input)
  {
    PixelOut output;
    input.UV.x = input.UV.x + ((d + (d * input.UV.y * dd)) / size.x);
    output.Color = tex2D( Samp0, input.UV );
    return output;
  }

  PixelOut PS2(PixelIn input)
  {
    PixelOut output;
    input.UV.x = input.UV.x + ((d + (d * (1.0 - input.UV.y) * dd)) / size.x);
    output.Color = tex2D( Samp0, input.UV );
    return output;
  }

  PixelOut PS3(PixelIn input)
  {
    PixelOut output;
    input.UV.x = input.UV.x + d / size.x;
    output.Color = tex2D( Samp0, input.UV );
    return output;
  }

//   float4 PS(float2 input : TEXCOORD0) : COLOR0
//   {
//     float4 output;
//     // input.x -= ((d / size.x) + ((d / size.x) * input.y * dd));
//     input.x = input.x - ((d + (d * input.y * dd)) / size.x);
//     output = tex2D( Samp0, input);
//     return output;
//   }

  technique FloorScroll
  {
    pass P0
    {
      PixelShader = compile ps_2_0 PS1();
    }
  }
  technique CeilingScroll
  {
    pass P0
    {
      PixelShader = compile ps_2_0 PS2();
    }
  }
  technique WallScroll
  {
    pass P0
    {
      PixelShader = compile ps_2_0 PS3();
    }
  }
EOS

core = Shader::Core.new(hlsl, {:size=>:float, :d=>:float, :dd=>:float})
shader1 = Shader.new(core, "CeilingScroll")
shader2 = Shader.new(core, "WallScroll")
shader3 = Shader.new(core, "FloorScroll")

# ²èÁü¤ËÂФ·¤Æ¥é¥ó¥À¥à¤Ë¥É¥Ã¥È¤òÂǤÄ
def plot_random_dot(image)
  dt = [[10, [255, 0, 64, 255]],
    [5, [255, 0, 255, 255]],
    [3, [255, 255, 255, 255]]]
  srand(0)
  image.height.times do |y|
    # next if y % 2 != 0
    dt.each do |d|
      d[0].times {|i| image[rand(image.width), y] = d[1]}
    end
  end
end

image1 = Image.new(640, 150, [0, 0, 0, 0]) # Å·°æ
image2 = Image.new(640, 180, [0, 0, 0, 0]) # ÊÉ
image3 = Image.new(640, 150, [0, 0, 0, 0]) # ¾²
plot_random_dot(image1)
plot_random_dot(image2)
plot_random_dot(image3)

shader1.size = [image1.width, image1.height]
shader1.d = 0
shader1.dd = 2.0 # y¤¬1¥É¥Ã¥È¿Ê¤à¤´¤È¤Ë¤Ä¤±¤ë³ÑÅÙ

shader2.size = [image2.width, image2.height]
shader2.d = 0
shader2.dd = 0

shader3.size = [image3.width, image3.height]
shader3.d = 0
shader3.dd = 16.0

# Window.fps = 10
x = 0
Window.loop do
  break if Input.keyPush?(K_ESCAPE)
  x += 1
  shader1.d = x # ¥¹¥¯¥í¡¼¥ëÎ̤ò»ØÄê
  shader2.d = x
  shader3.d = x

  y = 0
  Window.draw_shader(0, y, image1, shader1)
  y += image1.height
  Window.draw_shader(0, y, image2, shader2)
  y += image2.height
  Window.draw_shader(0, y, image3, shader3)
end
HLSL¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥µ¥ó¥×¥ë¥¹¥¯¥ê¥×¥È¤ò¥³¥Ô¥Ú¤·¤Æ¡¢¿ô¹Ô½ñ¤­´¹¤¨¤Æ¤ë¤À¤±¤Ê¤Î¤Ç¡Ä¡£¥µ¥ó¥×¥ë¤ÈƱÍÍ¤Ë Public Doamin ¤È¤·¤Æ°·¤Ã¤Æ¤¯¤ì¤ì¤Ð¡¢¤È¡£

¡ý ²èÁü¤òÍÑ°Õ¤¹¤ë¤Î¤¬°ìÈÖ¤ÎÌäÂê¡£ :

¥×¥í¥°¥é¥àÉôʬ¤ÏÆ°¤¤¤¿¤Î¤Ç¡¢Å·°æ¤À¤Î¾²¤À¤Î¤Ë»È¤¦²èÁü¤òºî¤Ã¤Æ¤ß¤è¤¦¤È¤·¤¿¤Î¤À¤±¤É¡¢¤³¤ì¤¬¤Þ¤Ã¤¿¤¯¾å¼ê¤¯¹Ô¤«¤º¡£GIMP ¤Ç¡¢¥¿¥¤¥ë²èÁü¤òʤ٤ơ¢±ó¶áË¡ÊÑ·Á¡©¤ò¤·¤Æ¤ß¤ë¡¢Åù¤Îºî¶È¤ò¤·¤Æ¤¤¤¿¤Î¤À¤±¤É¡Ä¡£¼ÂºÝ¤Ëɽ¼¨¤·¤Æ¥¹¥¯¥í¡¼¥ë¤µ¤»¤Æ¤ß¤ë¤È¡¢¸«¤¿Ìܤ¬¤É¤ó¤É¤ó¥°¥Á¥ã¥°¥Á¥ã¤Ë¤Ê¤Ã¤Æ¤¤¤¯¡£

¥¹¥¯¥í¡¼¥ëÎ̤ȡ¢²èÁüÆâ¤Î·¹¤­¶ñ¹ç¤¬°ìÃפ·¤Æ¤Ê¤¤¤È¡¢¸«¤¿Ìܤ¬¤ª¤«¤·¤¯¤Ê¤ë¤Î¤À¤Ê¤È¡£¤Þ¤¿¡¢¥é¥¹¥¿¡¼Ëè¤Ë¥ë¡¼¥×¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤¤¤Æ¡¢°ìÄêÎÌÊѲ½¤·¤¿¤é¥¹¥¯¥í¡¼¥ëÃͤò¥ê¥»¥Ã¥È¡¢Åù¤Î½èÍý¤¬É¬Íפ«¤â¤·¤ì¤Ê¤¤¤Ê¤È¡£²¿¤Ë¤»¤è¡¢¸µ²èÁü¤òÍÑ°Õ¤¹¤ëºÝ¤Ë¡¢²¿¤«À©ºî¾å¤Î¥³¥Ä¤¬¤¢¤ê¤½¤¦¤Ê¡£

¤·¤«¤·¡¢¹Í¤¨¤Æ¤ß¤¿¤é¡¢¤½¤â¤½¤âHLSL¤ò»È¤Ã¤Æ¤ë¤Î¤À¤«¤é¡Ä¡£¤¿¤À¤Î¥¿¥¤¥ê¥ó¥°²èÁü¤òÅϤ·¤Æ¡¢¥×¥í¥°¥é¥à¦¤Ç±ó¶áË¡¤Ã¤Ý¤¤ÊÑ·Á¤ò ¡½¡½ ¥é¥¹¥¿¡¼Ëè¤Î³ÈÂç½Ì¾®¤ò¤·¤Æɽ¼¨¤·¤¿¤Û¤¦¤¬¤¤¤¤¤ó¤¸¤ã¤Ê¤¤¤«¤È»×¤¨¤Æ¤­¤¿¤ê¡£¸µ²èÁü¤ò±ó¶áË¡¤Î¥½¥ì¤Ã¤Ý¤¤¸«¤¿Ìܤˤ·¤Ê¤­¤ã¤¤¤±¤Ê¤¤¤Î¤Ï¡¢¥Ï¡¼¥É¥¦¥§¥¢Åª¤Ë½Ä²£¤Î¥¹¥¯¥í¡¼¥ë¤·¤«¤Ç¤­¤Ê¤«¤Ã¤¿¡¢ÂçÀΤΥ²¡¼¥àµ¡¤Ë¸ÂÄꤵ¤ì¤¿ÏäÀ¤è¤Ê¤È¡£º£¤Ê¤é¡¢¤È¤¤¤¦¤«DXRuby¤Ê¤é¡¢XEXEX¤ä¡¢¥ì¥¤¥Ç¥£¥¢¥ó¥È¥·¥ë¥Ð¡¼¥¬¥ó¤ÎÇطʤߤ¿¤¤¤Ê¸«¤»Êý¤â¤Ç¤­¤ë¤Ï¤º¡£

¤Þ¤¢¡¢¤½¤Î¤¢¤¿¤ê¤Î½èÍý¤Ï¡¢º£¸å¤Î²ÝÂê¤Ç¤¹¡Ä¡£

Çطʤⲿ¤â¤«¤â¥Ý¥ê¥´¥óÉÁ²è¤¹¤ë¤Î¤¬Åö¤¿¤êÁ°¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿»þÂå¤Ë¡¢¼«Ê¬¤Ï°ìÂβ¿¤ò¤ä¤Ã¤Æ¤ë¤Î¤À¤í¤¦¡¢¤Æ¤Êµ¤¤â¤·¤Þ¤¹¤¬¡£

#2 [cg_tools] Çúȯ¥¨¥Õ¥§¥¯¥È²èÁüºîÀ®¥Ä¡¼¥ë¤Ë¤Ä¤¤¤Æ¥á¥â

_¥¨¥Õ¥§¥¯¥ÈºîÀ®¥Ä¡¼¥ë : ¤Ô¤Ý¤ä ·Ðͳ¤Ç¡¢¥Ñ¡¼¥Æ¥£¥¯¥ë¥¨¥Ç¥£¥¿¡¢ _¥Ñ¥Á¥¯¥ê ¤Ê¤ë¥½¥Õ¥È¤òÃΤ俤Τǡ¢»î¤·¤Ë»È¤Ã¤Æ¤ß¤¿¤ê¡£

_Detonation ¡¢¥×¥é¥¹¡¢¤½¤Î¾ì¤Ç¥É¥Ã¥È¥Ñ¥¿¡¼¥ó(?)¤òºîÀ®¤Ç¤­¤ëµ¡Ç½ÉÕ¤­¡¢¤ß¤¿¤¤¤Ê°õ¾Ý¡£¤«¤Ê¤ê¥¤¥¤´¶¤¸¡£¥É¥Ã¥È³¨¤ÈÁȤ߹ç¤ï¤»¤Æ»È¤¦Çúȯ¥¨¥Õ¥§¥¯¥È²èÁü¤òºî¤ëºÝ¤Ë¤Ï½ÅÊõ¤·¤½¤¦¤Êͽ´¶¡£

2014/01/13(·î) [nǯÁ°¤ÎÆüµ­]

#1 [dxruby] DXRuby¤Ç¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë¤Ã¤Ý¤¤¤Î¤¬¤Ç¤­¤¿

DXRuby ¤Î Shader ¤ò»È¤Ã¤Æ¡¢¥µ¥ó¥À¡¼¥Õ¥©¡¼¥¹IV¤Î¥¹¥Æ¡¼¥¸5¤Ã¤Ý¤¤Çطʤ¬¤Ç¤­¤¿¡¢¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£²¼¤Î¤è¤¦¤Ê´¶¤¸¤Ë¤Ê¤ê¤Þ¤·¤¿¡£

¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë¤Ã¤Ý¤¤½èÍý
GIF¥¢¥Ë¥á¤Î¥Õ¥ì¡¼¥à¥ì¡¼¥È¤¬Ä㤯¤Æ¤Ê¤ó¤À¤«¥¢¥ì¤À¤±¤É¡¢PC¾å¤ÇÆ°¤«¤·¤Æ¡¢60FPS¤Î¥½¥ì¤òį¤á¤ì¤Ð¡¢·ë¹½¥¤¥¤´¶¤¸¡£

°ì±þ¡¢¥½¡¼¥¹Å½¤Ã¤È¤­¤Þ¤¹¤Í¡£

_starrasterbg.rb
require 'dxruby'

# Shader¤ò»È¤Ã¤Æ¥é¥¹¥¿¥¹¥¯¥í¡¼¥ë¤µ¤»¤ë¥¯¥é¥¹
#
# ±§Ãè¶õ´Ö¤Ã¤Ý¤¤BG²èÁü¤ò¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë¤µ¤»¤ë
#
class StarRasterScrollShader < DXRuby::Shader
  hlsl = <<EOS
  float2 size;    // ²èÁü¥µ¥¤¥º
  float d;        // ¥¹¥¯¥í¡¼¥ë°ÌÃÖ
  float spd;      // ¥é¥¹¥¿¡¼Ëè¤ÎÊѲ½ÎÌ
  float afactor;  // ¥¢¥ë¥Õ¥¡ÃÍ
  texture tex0;

  // ¥é¥¹¥¿¡¼Ëè¤Î¥¹¥¯¥í¡¼¥ëÎÌ¡£16¥é¥¹¥¿¡¼¤º¤Ä·«¤êÊÖ¤·
  float dd[16] = {0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15};

  sampler Samp0 = sampler_state
  {
    Texture =<tex0>;

    // ¤³¤Ã¤Á¤À¤È²èÌÌ¥Á¥é¥Á¥é
    // MinFilter = LINEAR;
    // MagFilter = LINEAR;
    // MipFilter = LINEAR;

    // ¤³¤Ã¤Á¤Ê¤é¥Á¥é¥Á¥é¤·¤Ê¤¤
    MinFilter = POINT;
    MagFilter = POINT;
    MipFilter = NONE;

    AddressU = WRAP;
    AddressV = WRAP;
  };

  struct PixelIn
  {
    float2 UV : TEXCOORD0;
  };

  struct PixelOut
  {
    float4 Color : COLOR0;
  };

  PixelOut PS(PixelIn input)
  {
    PixelOut output;
    input.UV.x += ((d + (d * spd * dd[fmod(input.UV.y * size.y, 16)])) / size.x);
    output.Color = tex2D( Samp0, input.UV );
    output.Color.a *= afactor;
    return output;
  }

  technique StarRasterScroll
  {
    pass P0
    {
      PixelShader = compile ps_2_0 PS();
    }
  }
EOS

  @@core = DXRuby::Shader::Core.new(hlsl,
                                    {
                                      :size => :float,
                                      :d => :float,
                                      :spd => :float,
                                      :afactor => :float
                                    })

  attr_accessor :speed

  #
  # ½é´ü²½½èÍý
  #
  # @param [float] speed   ¥¹¥¯¥í¡¼¥ë®ÅÙ
  # @param [float] v       ¥é¥¹¥¿¡¼Ëè¤Î®ÅÙÊѲ½ÎÌ¡£Â礭¤¯¤¹¤ë¤È®ÅÙº¹¤¬Â礭¤¯¤Ê¤ë
  # @param [int]   width   ²èÌ̲£Éý¡£¾Êά¤¹¤ë¤È¥¦¥¤¥ó¥É¥¦²£Éý
  # @param [int]   height  ²èÌ̽ÄÉý¡£¾Êά¤¹¤ë¤È¥¦¥¤¥ó¥É¥¦½ÄÉý
  #
  def initialize(speed=1, v=0.4, width=nil, height=nil)
    super(@@core, "StarRasterScroll")
    w, h = Window.width, Window.height
    w = width if width
    h = height if height
    self.size = [w, h]
    self.d = 0.0
    self.spd = v
    self.afactor = 1.0
    @speed = speed
  end

  #
  # ¥¹¥¯¥í¡¼¥ëÃ͹¹¿·½èÍý
  #
  def update
    self.d += @speed
  end

  #
  # ¥¹¥¯¥í¡¼¥ëÃͽé´ü²½
  #
  def reset_scroll
    self.d = 0
  end

  #
  # ¥¹¥¯¥í¡¼¥ë®ÅÙÊѹ¹
  #
  # @param [float] speed   ¥¹¥¯¥í¡¼¥ë®ÅÙ
  # @param [float] v       ¥é¥¹¥¿¡¼Ëè¤Î®ÅÙÊѲ½ÎÌ¡£Â礭¤¯¤¹¤ë¤È®ÅÙº¹¤¬Â礭¤¯¤Ê¤ë
  #
  def set_speed(speed=1, v=0.4)
    @speed = speed
    self.spd = v
  end

  #
  # ¥¢¥ë¥Õ¥¡ÃÍÊѹ¹
  #
  # @param [float] v   ¥¢¥ë¥Õ¥¡ÃÍ¡¢0.0¤ÇÆ©ÌÀ¡¢1.0¤ÇÉÔÆ©ÌÀ
  #
  def set_alpha(v)
    self.afactor = v
  end

  #
  # À±¤¬ÉÁ¤«¤ì¤¿ÇØ·ÊÍѲèÁü¤òºîÀ®¤·¤ÆÊÖ¤¹
  #
  # @param [int] width      ²èÁü²£Éý(¾Êά»þ¤ÏWindow²£Éý)
  # @param [int] height     ²èÁü½ÄÉý(¾Êά»þ¤ÏWindow½ÄÉý)
  # @param [int] num        »¶ÉÛ¤¹¤ë¥É¥Ã¥È¿ô
  # @param [bool] len_sync  true¤Ê¤éÀþ¤ÎŤµ¤ò¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë®Å٤˹ç¤ï¤»¤ë
  #                         ¥Ç¥Õ¥©¥ë¥È¤Ïfalse
  #
  # @return [Image] ºîÀ®¤·¤¿²èÁü(Image)
  #
  def get_star_image(width=nil, height=nil, num=0x3fff, len_sync=false)
    width = Window.width unless width
    height = Window.height unless height
    img = Image.new(width, height, [0, 0, 0, 0])

    srand(0)

    # ®Å٥ơ¼¥Ö¥ë(16¥é¥¹¥¿¡¼Ê¬)
    spdtbl = [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]

    # ®ÅÙ¤ÈÂбþ¤·¤¿Àþ¤ÎŤµ
    wtbl = [5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 12, 24, 36, 480]

    # ¥É¥Ã¥È¤Î¿§¥Ç¡¼¥¿(3¿§¤Ë·è¤áÂǤÁ)
    colordata = [[0, 47, 191], [69, 119, 209], [180, 191, 227]]

    # ²èÁü¤ËÂФ·¤Æ¥é¥ó¥À¥à¤ËÀþ¤ò°ú¤¯
    img.height.times do |y|
      # next if y % 16 != 0 and y % 16 != 1
      ymod = y % spdtbl.length

      if len_sync
        # ¥é¥¹¥¿¡¼Ëè¤Î¥¹¥¯¥í¡¼¥ë®ÅÙ¤ÈÂбþ¤·¤¿Àþ¤ÎŤµ¤Ë¤¹¤ë¾ì¹ç
        w = wtbl[spdtbl[ymod]]
      else
        # ¥é¥¹¥¿¡¼Ëè¤Î¥¹¥¯¥í¡¼¥ë®ÅÙ¤ÈÂбþ¤·¤Æ¤Ê¤¤Àþ¤ÎŤµ¤Ë¤¹¤ë¾ì¹ç
        w = wtbl[ymod]
      end

      b = ((spdtbl[ymod] + 1) / spdtbl.length.to_f) * 0.5 + 0.5

      if w == wtbl[-1]
        w = rand(w) + wtbl[0]
        b *= (rand(70) + 31) / 100.0
      end

      l = ((spdtbl.length - ymod) * 0.75).to_i
      l = 1 if l == 0
      l.times do |i|
        x = rand(img.width - w)
        if w <= 8
          wt = [[x, w], [x + 1, w - 2], [x + 2, w - 4]]
        else
          wt = [[x, w], [x + w * 0.08, w * 0.84], [x + w * 0.16, w * 0.68]]
        end
        colordata.each_with_index do |d, i|
          lx, lw = wt[i]
          img.line(lx, y,  lx + lw, y, [d[0] * b, d[1] * b, d[2] *b])
          break if i== 1 and wt[i][0] == wt[i+1][0]
        end
      end
    end

    # ²èÁü¤ËÂФ·¤Æ¥é¥ó¥À¥à¤ËÅÀ¤òÂǤÄ
    num.times do |i|
      c = colordata[rand(3)]
      b = rand(50) / 100.0 + 0.5
      img[rand(img.width), rand(img.height)] = [c[0] * b, c[1] * b, c[2] * b]
    end

    return img
  end

  #
  # Æ°ºî³ÎǧÍÑ¡£¿âľ¤ÊÀþ¤ò°ú¤¤¤¿²èÁü¤òºîÀ®¤·¤ÆÊÖ¤¹
  #
  # @param [int] width   ²èÁü²£Éý(¾Êά»þ¤ÏWindow²£Éý)
  # @param [int] height  ²èÁü½ÄÉý(¾Êά»þ¤ÏWindow½ÄÉý)
  #
  # @return [Image] ºîÀ®¤·¤¿²èÁü(Image)
  #
  def get_vertical_line_image(width=nil, height=nil)
    width = Window.width unless width
    height = Window.height unless height
    img = Image.new(width, height, [0, 0, 0, 0])
    img.line(0, 0, 0, img.height, C_WHITE)
    return img
  end
end

if __FILE__ == $0
  # Æ°ºî¥Æ¥¹¥È¡£»È¤¤Êý

  spd = 1 # ¥¹¥¯¥í¡¼¥ë®ÅÙ
  spd_sub = 0.5 # ¥é¥¹¥¿¡¼Ëè¤Î¥¹¥¯¥í¡¼¥ë®ÅÙº¹

  # Window.resize(1280, 720)
  # Window.fps = 10
  # "Window.scale = 2.0

  # ¥¹¥¯¥í¡¼¥ë®ÅÙ¤òÅϤ·¤ÆÀ¸À®
  shader = StarRasterScrollShader.new(spd, spd_sub, Window.width, Window.height)

  # À±²èÁü¤òÀ¸À®¡¦¼èÆÀ(°ú¿ô̵¤·¤Ê¤éWindow¤Î¥µ¥¤¥º¤Çºî¤ë)
  img_nosync = shader.get_star_image(Window.width, Window.height, 0x3fff, false)
  img_sync = shader.get_star_image(Window.width, Window.height, 0x3fff, true)

  # Æ°ºî¥Æ¥¹¥ÈÍÑ¡£¿âľÀþ²èÁü¤òÀ¸À®¡¦¼èÆÀ
  img_vline = shader.get_vertical_line_image(Window.width, Window.height)

  alpha_chg = false
  framecnt = 0

  # ¥á¥¤¥ó¥ë¡¼¥×
  Window.loop do
    break if Input.keyPush?(K_ESCAPE)

    # ¥¹¥¯¥í¡¼¥ëÃ͹¹¿·
    shader.update

    # ÉÁ²è
    if Input.keyDown?(K_X)
      # X¥­¡¼¤Ç¿âľÀþ¤òɽ¼¨
      Window.draw_shader(0, 0, img_vline, shader)
    elsif Input.keyDown?(K_Z)
      # Z¥­¡¼¤Ç¥¹¥¯¥í¡¼¥ë®ÅÙ¤ÈÂбþ¤·¤¿À±²èÁü¤òɽ¼¨
      Window.draw_shader(0, 0, img_sync, shader)
    else
      Window.draw_shader(0, 0, img_nosync, shader)
    end

    # ----------------------------------------
    # °Ê²¼¤ÏÆ°ºî¥Æ¥¹¥ÈÍÑ
    #
    # F¥­¡¼ : ¥Õ¥ë¥¹¥¯¥ê¡¼¥óɽ¼¨
    # C¥­¡¼ : ¥¹¥¯¥í¡¼¥ëÃͥꥻ¥Ã¥È
    # V¥­¡¼ : ²¡¤·¤Æ¤ë´Ö¤Ï¥¹¥¯¥í¡¼¥ë®ÅÙ¤òÊѹ¹
    # A¥­¡¼ : ¥¢¥ë¥Õ¥¡ÃͤÎÊѲ½¤òÀÚÂØ
    #
    Window.windowed = !Window.windowed? if Input.keyPush?(K_F)
    shader.reset_scroll if Input.keyPush?(K_C)
    if Input.keyDown?(K_V)
      shader.set_speed(0.5, 0.05)
    else
      shader.set_speed(spd, spd_sub)
    end
    alpha_chg = !alpha_chg if Input.keyPush?(K_A)
    if alpha_chg
      v = Math.sin(framecnt * Math::PI / 180.0).abs
      shader.set_alpha(v)
    else
      shader.set_alpha(1.0)
    end

    framecnt += 1
  end
end
¥µ¥ó¥×¥ë¥¹¥¯¥ê¥×¥È¤ò¥³¥Ô¥Ú¤·¤Æ¾¯¤·Ï®¤Ã¤Æ¡¢¤ß¤¿¤¤¤Ê´¶¤¸¤Çºî¤Ã¤¿¤Î¤Ç¡¢¥³¥ì¤â¥µ¥ó¥×¥ëƱÍÍ¡¢Public Domain ¤Ã¤Æ¤³¤È¤Ç¡£

¾åµ­¤Î¥½¡¼¥¹¤òñÂΤǼ¹Ԥ·¤Æ¤âɽ¼¨¤Ç¤­¤ë¤±¤É¡¢Â¾¤Î¥Õ¥¡¥¤¥ë¤«¤é¸Æ¤Ó½Ð¤·¤Æ»È¤¨¤ë¤è¤¦¤Ë¤â¤·¤Æ¤ª¤­¤Þ¤·¤¿¡£²¼¤Î¤è¤¦¤Ê´¶¤¸¤Ç»È¤¨¤ë¤«¤Ê¤È¡Ä¡£
require 'dxruby'
require_relative 'starrasterbg'

shader = StarRasterScrollShader.new(0.5, 0.6)
img = shader.get_star_image()

Window.loop do
  break if Input.keyPush?(K_ESCAPE)

  shader.update
  Window.draw_shader(0, 0, img, shader)
end

¤Á¤Ê¤ß¤Ë¡¢ÀèÆü¤«¤é½ñ¤¤¤Æ¤ëÅÓÃæ¤Î¡¢STG¥µ¥ó¥×¥ë¤«¤é¤â¸Æ¤Ó½Ð¤·¤Æ¤ß¤¿¤ê¡£
STG¥µ¥ó¥×¥ë¤Ç»È¤Ã¤¿¤ß¤¿Îã
°ìµ¤¤ËÊ·°Ïµ¤½Ð¤Æ¤­¤¿¡£¤³¤ì¤ÇÊÙ¶¯¤¹¤ëµ¤¤âͯ¤¯¤È¤¤¤¦¤â¤Î¡£¤Á¤Ê¤ß¤Ë¡¢¤³¤Ã¤Á¤Î¥µ¥ó¥×¥ë(?)¤Ï¡¢¤Þ¤À¡¢¥¢¥¿¥ê½èÍý¤À¤Î¡¢¥²¡¼¥à¥ª¡¼¥Ð¡¼½èÍý¤À¤Î¤ò½ñ¤¤¤Æ¤Þ¤»¤ó¤Ç¡£¤â¤¦¤Á¤ç¤Ã¤ÈÄɲ䷤Ƥ«¤é¸ø³«¤·¤è¤¦¤«¤Ê¤È¡£

¤µ¤Æ¤ª¤­¡£HLSL¤Ë¤Ä¤¤¤Æ¡¢¤Á¤ç¤Ã¤Èʬ¤«¤é¤Ê¤¤¤È¤³¤í¤¬¡£

ÇÛÎó¤òºî¤Ã¤Æ¡¢¥é¥¹¥¿¡¼Ëè¤Î®ÅÙº¹¤òʤ٤ơ¢16¥é¥¹¥¿¡¼Ê¬¤ò·«¤êÊÖ¤·¤Æ½èÍý¤·¤Æ¤¤¤ë¤Î¤À¤±¤É¡£ÇÛÎó¤Îź¤¨»ú¤¬ float ¤Î¤Þ¤Þ¤Ê¤ï¤±¤Ç¡Ä¡£¥³¥ì¡¢¤¤¤¤¤ó¤À¤í¤¦¤«¡© °ì±þÆ°¤¤¤Á¤ã¤Ã¤Æ¤ë¤±¤É¡Ä¡£Åº¤¨»ú¤ÎÃæ¤Ë¡¢¾®¿ôÅÀ°Ê²¼¤â»ý¤Ã¤Æ¤ëÃͤ¬Æþ¤Ã¤Æ¤ë¤Ï¤º¤Ê¤Î¤À¤±¤É¡£HLSL¦¤Ç¡¢¾å¼ê¤¤¤³¤È¤ä¤Ã¤Æ¤¯¤ì¤Æ¤ë¤Î¤«¤Ê¡£¤½¤ì¤È¤â¤ä¤Ã¤Ñ¤ê²¿¤«¥Þ¥º¥¤¤Î¤«¤Ê¡£

ÇÛÎó¤È¸À¤¨¤Ð¡¢²èÌ̽ÄÉýʬ¤Î¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ëÃͤò¤É¤³¤«¤Ë³ÊǼ¤·¤Æ¤ª¤«¤Ê¤¤¤È¤¤¤«¤ó¤«¤Ê¤È»×¤Ã¤Æ¤¤¤¿¤±¤É¡¢¤³¤ÎÄøÅ٤νèÍý¤Ê¤é¤½¤³¤Þ¤Ç»ý¤¿¤Ê¤¯¤Æ¤â¤½¤ì¤é¤·¤¯¸«¤¨¤Æ¤¯¤ì¤ë¤è¤¦¤Ç¡£¤¿¤À¡¢¤ä¤Ã¤Ñ¤êÈÆÍÑÀ­(?)¤Ï̵¤¤¤«¤Ê¤È¡Ä¡£HLSL¦¤Ï¶ËÎÏÏ®¤é¤º¤Ë¡¢Ruby¦¤ÇÁ´¤Æ¤Î¥é¥¹¥¿¡¼¤Î¥¹¥¯¥í¡¼¥ëÃͤòºî¤Ã¤Æ¡¢ÇÛÎó¤ÇÅϤ»¤ì¤Ð¤¤¤¤¤Î¤À¤±¤É¡£¤¤¤ä¡¢¤½¤ó¤Ê¤³¤È¤¬¤Ç¤­¤ë¤Î¤«¤É¤¦¤«¡¢¤Þ¤Àʬ¤«¤é¤Ê¤¤¤Î¤Ç¤¹¤¬¡£

¡ý ¤â¤·¤«¤·¤Æ Sprite ¤ÎÊÑ·Áµ¡Ç½¤ò»È¤¨¤Ð¤è¤¤¤Î¤Ç¤Ï¡£ :

ÀèÆü»î¤·¤¿¡¢¾²¤À¤ÎÅ·°æ¤À¤Î¤ò¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë¤Ç±¾¡¹¡¢¤Æ¤Ê¸«¤»Êý¤Ï¡¢²èÁü¤òÊÑ·ÁÉÁ²è¤Ç¤­¤ë Window.draw_morph ¤È¤ä¤é¤ò»È¤¨¤Ð¤Ç¤­¤ë¤Î¤Ç¤Ï¤Èº£º¢µ¤ÉÕ¤¤¤¿¤ê¡£

¥Û¥ó¥È¤Ë¤½¤¦¤«¤Ê¡Ä¡© ¤Á¤ç¤Ã¤ÈÄ´¤Ù¤Æ¤ß¤Ê¤¤¤È¡£

2014/01/14(²Ð) [nǯÁ°¤ÎÆüµ­]

#1 [dxruby] DXRuby¤ÎWindow.drawMorph()¤Ë¤Ä¤¤¤ÆÄ´¤Ù¤Æ¤ë¤È¤³¤í

¤É¤¦¤¤¤¦µ¡Ç½¤«¤è¤¯Ê¬¤«¤Ã¤Æ¤Ê¤¤¤Î¤Ç³Îǧºî¶È¤ò¡£

°Ê²¼¤Î¤è¤¦¤Êɽ¼¨¤¬¤Ç¤­¤ë¤é¤·¤¤¡£
Window.drawMorph¤ÎÉÁ²è·ë²Ì

_drawmorph_simple_test1.rb
# Window.drawMorph ¤ÎÉÁ²è¥Æ¥¹¥È

require 'dxruby'

# ¥°¥ê¥Ã¥É²èÁü¤òÀ¸À®
def get_grid_image(w, h)
  img = Image.new(w, h, [64, 128, 255])
  dt = [[10, 8, C_BLUE], [5, 4, C_WHITE]]
  dt.each do |d|
    d[0].times do |i|
      x = (w / d[1]) * i
      img.line(x, 0, x, h, d[2])
      img.line(0, x, w, x, d[2])
    end
  end
  img.line(w - 1, 0, w - 1, h, dt[1][2])
  img.line(0, h - 1, w, h - 1, dt[1][2])
  return img
end

img = get_grid_image(64, 64)

Window.loop do
  break if Input.keyPush?(K_ESCAPE)

  # ¸µ²èÁü¤òÉÁ²è
  Window.draw(Window.width - img.width - 8, 2, img)

  # ¤¿¤À¤Î¿¿»Í³Ñ¤È¤·¤ÆÉÁ²è
  w = 200
  d = 70
  x, y = 10, 10
  Window.drawMorph(x, y, x + w, y, x + w, y + w, x, y + w,
                   img)

  # Âæ·Á¤ËÊÑ·Á¤·¤ÆÉÁ²è
  x, y = 220, 10
  Window.drawMorph(x + d, y, x + w - d, y, x + w, y + w, x, y + w,
                   img)

  # Âæ·Á¤ËÊÑ·Á¤·¤ÆÉÁ²è¡£Ê¬³ä¿ô¤òÊѹ¹
  x, y = 10, 240
  Window.drawMorph(x + d, y, x + w - d, y, x + w, y + w, x, y + w,
                   img, :dividex => 2, :dividey => 2)

  # Âæ·Á¤ËÊÑ·Á¤·¤ÆÉÁ²è¡£Ê¬³ä¿ô¤òÊѹ¹
  x, y = 220, 240
  Window.drawMorph(x + d, y, x + w - d, y, x + w, y + w, x, y + w,
                   img, :dividex => 4, :dividey => 4)
end
¼ÂºÝ¤ËÉÁ²è¤·¤Æ¤ß¤Æ¡¢°Ê²¼¤Î¤³¤È¤¬Ê¬¤«¤Ã¤¿¡£
¥Æ¥¯¥¹¥Á¥ã¤¬ÏĤàÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢°Ê²¼¤¬»²¹Í¤Ë¤Ê¤ê¤½¤¦¡£

_The Realm of Revery
_MascotCapsule Developer Network - ÆüËܸì - WIPI - ¥µ¥ó¥×¥ë - WIPI + MascotCapsule V3 API - ¥Æ¥¯¥¹¥Á¥ã¤ÎÏĤ߷ڸº

¤µ¤Æ¡¢¤³¤ì¤ò»È¤Ã¤Æ¾²¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë¤Ã¤Ý¤¤¤³¤È¤¬¤Ç¤­¤ë¤«¤É¤¦¤«¡Ä¡©

µ¤¤Ë¤Ê¤ë¤Î¤Ï¡¢±ó¶á´¶¤¬¤Ä¤¤¤Æ¤Ê¤¤ÅÀ¡£¸µ²èÁü¤Î½ÄÊý¸þ¤Ë¡¢¤¢¤é¤«¤¸¤á±ó¶á´¶¤ò¤Ä¤±¤Æ¤ª¤±¤Ð¡¢¤½¤ì¤é¤·¤¯¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¤±¤É¡£¤Ç¤­¤ì¤Ð¡¢±ó¶á´¶¤â¥×¥í¥°¥é¥à¦¤Ç¤Ä¤±¤Æ¤ß¤¿¤¤¡£

¡ý ±ó¶á´¶¤ò¤Ä¤±¤ëÊýË¡¤ò¸¡Æ¤¤¹¤ë¡£ :

»Í³Ñ·Á¤Î4ÅÀ¤¬»ØÄꤵ¤ì¤¿¤È¤·¤Æ¡¢²¼¤Î¤è¤¦¤Êʬ³äÊýË¡¤¬¤Ç¤­¤ì¤Ð¡¢±ó¶á´¶¤ò¤Ä¤±¤ë¤³¤È¤â¤Ç¤­¤½¤¦¤À¤Ê¤È¡£
±ó¶á´¶¤ò¤Ä¤±¤Æʬ³ä¤¹¤ëÊýË¡¤Î»î°Æ

ʬ¤«¤ê¤Å¤é¤¤¤Î¤Ç¡¢GIF¥¢¥Ë¥á¤âÍÑ°Õ¤·¤Æ¤ß¤¿¤ê¡£
±ó¶á´¶¤ò¤Ä¤±¤Æʬ³ä¤¹¤ëÊýË¡¤Î»î°Æ(GIF¥¢¥Ë¥áÈÇ)

¤³¤Î¤¢¤¿¤ê¹Í¤¨¤Æ¤ë¤¦¤Á¤Ë¡¢¤Ê¤ó¤À¤«¡¢³ØÀ¸»þÂå¤ËÆɤó¤À¡¢·úÃۥѡ¼¥¹¤ÎËܤò»×¤¤½Ð¤·¤Æ¤·¤Þ¤Ã¤¿¤ê¡Ä¡£ÅŻҲʤËÄ̤äƤ¿¤±¤É¡¢·úÃ۲ʤ¬¤¢¤ëÂç³Ø¤À¤Ã¤¿¾å¤Ë¡¢¼«Ê¬¤ÏÌ¡¸¦¤ËÆþ¤Ã¤Æ¤¿¤Î¤Ç¡¢¿Þ½ñ´Û¤Ç·úÃۥѡ¼¥¹¤ÎÉÁ¤­ÊýËܤò¸«¤Æ¡Ö¤Õ¤à¤Õ¤à¤Ê¤ë¤Û¤É¡£¤³¤¦¤ä¤Ã¤ÆÌ¡²è¤ÎÇطʤòÉÁ¤±¤Ð¤¤¤¤¤Î¤«¡×¤È¤«¤ä¤Ã¤Æ¤Þ¤·¤¿¤Ç¤¹¡£¡Äº£¤Ï¤½¤¦¤¤¤¦¾ðÊó¤â¡¢¥Í¥Ã¥È¤ÇÄ´¤Ù¤é¤ì¤ë¤«¤éÊØÍø¤Ê»þÂå¤Ë¤Ê¤ê¤Þ¤·¤¿¤Ê¡£

¤µ¤Æ¤ª¤­¡£2¤Ä¤ÎÀþʬ¤Î¸òÅÀ¤òµá¤á¤ë¤³¤È¤µ¤¨¤Ç¤­¤ì¤Ð¡¢¼¡¡¹¤Ë¸òÅÀ¤òµá¤á¤Æ¡¢±ó¶á´¶¤Î¤Ä¤¤¤¿Ê¬³ä¤¬¤Ç¤­¤½¤¦¤Êͽ´¶¡£¥°¥°¤Ã¤¿¤È¤³¤í¡¢³°ÀѤò»È¤¨¤Ð¸òÅÀ¤òµá¤á¤ë¤³¤È¤â¤Ç¤­¤ë¤é¤·¤¯¤Æ¡£

_£´ÅÀ¤«¤é¤Ê¤ë¸òÅÀ¤Îµá¤áÊý | ¿å¶ÌÀ½ºî½ê
_£´ÅÀ¤«¤é¤Ê¤ë¸òÅÀ¤Îµá¤áÊý¡¡²èÁü½èÍý¥½¥ê¥å¡¼¥·¥ç¥ó

¤¿¤À¡¢Àþʬ¤¬Ê¿¹Ô¤À¤Ã¤¿¾ì¹ç¤Ë¤É¤¦¤¹¤ì¤Ð¤¤¤¤¤Î¤«¡Ä¡£
Àþʬ¤¬Ê¿¹Ô¤À¤Èº¤¤ë
²«¿§¤¤Àþ¤òµá¤á¤¿¤¤¤ï¤±¤À¤±¤É¡Ä¡£¤µ¤Æ¡¢¤É¤¦¤¹¤ì¤Ð¡£

¤Ê¤ó¤À¤«¤³¤Î¤¢¤¿¤ê¡¢PS(¥×¥ì¥¤¥¹¥Æ¡¼¥·¥ç¥ó1)¤äSS(¥»¥¬¥µ¥¿¡¼¥ó)¤Î»þÂå¤Ë¡¢¿§¡¹¤Êµ»¤¬¶î»È¤µ¤ì¤Æ¤¿¤è¤¦¤Êµ¤¤¬¤¹¤ë¤Î¤À¤±¤É¡£¸¡º÷¥­¡¼¥ï¡¼¥É¤¬»×¤¤½Ð¤»¤º¡Ä¡£

¡ý ¼Í±ÆÊÑ´¹¤ò»È¤¨¤Ê¤¤¤«¤Ê¡£ :

¿§¡¹¥°¥°¤Ã¤Æ¤¿¤é¡¢¼Í±ÆÊÑ´¹¤À¤«¥Û¥â¥°¥é¥Õ¥£¤À¤«¤Î¥Ç¥â¥Ú¡¼¥¸¤ËÁø¶ø¤·¤Æ¡£¤â¤·¤«¤·¤Æ¤½¤Ã¤Á»È¤Ã¤¿¤Û¤¦¤¬¤¤¤¤¤Î¤«¤Ê¤È¡£Î㤨¤Ð°Ê²¼¤Î¥Ç¥â¥Ú¡¼¥¸¤òį¤á¤ë¤È¡Ä¡£

_½Å¤Ê¤ëµ¤»ý¤Á -Âæ·ÁÊäÀµ- | _level0 | Kayac Front End Engineer's Blog

ÀÖ¤¤»Í³Ñ¤òÀµÊý·Á¤ËÀ°¤¨¤Æ¡¢ÀĤ¤»Í³Ñ¤òÂæ·Á¤Ã¤Ý¤¯¤¹¤ì¤Ð¡¢ÀÖ¤¤»Í³Ñ¤ÎÃæ¤Î¥Þ¥¦¥¹¥«¡¼¥½¥ë°ÌÃÖ¤¬¡¢ÀĤ¤»Í³Ñ¤ÎÃæ¤Çɽ¼¨¤µ¤ì¤ë¤ï¤±¤Ç¡£¤Ä¤Þ¤ê¡¢¸µ²èÁü¤Î¤³¤Î¤¢¤¿¤ê¡¢¤ò»ØÄꤹ¤ë¤È¡¢ÊÑ·Á¸å¤Î»Í³Ñ¤Ç¤Ï¤³¤Î¤¢¤¿¤ê¡¢¤Ë¤Ê¤Ã¤ÆÊ֤äƤ¯¤ë¤è¤Ê¤È¡£¤½¤Î¡¢Ê֤äƤ­¤¿Ãͤò»È¤Ã¤Æ¡¢Ê¬³ä¤·¤Æ¤¤¤±¤Ð¡¢¤È¡£

¡ý ¤½¤â¤½¤âShader¤ò»È¤¦¤Ù¤­¤«¤â¡£ :

_XEXEX¤Î¥¹¥Æ¡¼¥¸1¤ÎÇØ·Ê ¤Ã¤Ý¤¤¥½¥ì¤ò¡¢Window.drawMorph ¤ò»È¤Ã¤Æ¤Ç¤­¤Ê¤¤¤«¤Ê¤È»×¤Ã¤ÆÄ´¤Ù¤Æ¤¿¤±¤É¡£¤¢¤¢¤¤¤Ã¤¿¸«¤»Êý¤Ç¤¢¤ì¤Ð¡¢Shader ¤ò»È¤Ã¤¿¤Û¤¦¤¬¤¤¤¤¤Î¤«¤Ê¤È»×¤¨¤Æ¤­¤¿¤ê¡£

DXRuby³«È¯ÈǤΡ¢¥µ¥ó¥×¥ë¤ÎÃæ¤Î¡¢shader_sample\sample_spehari.rb ¤òÆ°¤«¤·¤¿¤é¡¢¤½¤ì¤Ã¤Ý¤¤¤³¤È¤¬¤Ç¤­¤½¤¦¤Êµ¤¤¬¤·¤Æ¤­¤¿¤ï¤±¤Ç¡Ä¡£

#2 [emacs] emacs¤Îre-builder¤Ç¤Á¤ç¤Ã¤È¥Ï¥Þ¤Ã¤¿

emacs ¤Î re-builder ¤ò»È¤¨¤Ð¡¢Àµµ¬É½¸½¤¬¤Á¤ã¤ó¤È½ñ¤±¤Æ¤ë¤«¡¢¸«¤¿ÌܤÇʬ¤«¤ê¤ä¤¹¤¯¤Ê¤ë¤Î¤À¤±¤É¡£\(...\) ¤òµ­½Ò¤¹¤ëºÝ¤Ë¤Á¤ç¤Ã¤È¥Ï¥Þ¤Ã¤¿¡£

emacs ¾å¤Ç¤Ï¡¢\(...\) ¤Î¤è¤¦¤Ë¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤¬1¤Ä¤ÇºÑ¤à¤Î¤À¤±¤É¡£

re-builder ¾å¤Ç¤Ï¡¢\\(...\\) ¤È½ñ¤«¤Ê¤¤¤È¤¤¤«¤ó¤é¤·¤¤¡Ä¡£

_Emacs¤ÎÀµµ¬É½¸½ÊÔ½¸¥â¡¼¥É re-builder ¤È¤ä¤ä¤³¤·¤¤¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥åÌäÂê¤Ë¤Ä¤¤¤Æ¡£ - ¤³¤»¤­¤Îµ»½ÑÆüµ­
_¤Ç¤é¤¦¤Þ¶æ³ÚÉô : Emacs re-builder¤ÇÀµµ¬É½¸½¤ò¡Ö¸«¤¨¤ë²½¡×¤¹¤ë
_re-builder ¤Çºî¤Ã¤¿Àµµ¬É½¸½¤ò query-replace-regexp ¤ËÅϤ·¤Æ¤âÆ°ºî¤·¤Ê¤¤¡© - »É¿È¡ù¥Ö¡¼¥á¥é¥ó¤Î¤Ï¤Æ¤Ê¥À¥¤¥¢¥ê¡¼

C-c TAB¡¢¤â¤·¤¯¤Ï C-c C-i ¤òᤤ¤Æ¡¢¥·¥ó¥¿¥Ã¥¯¥¹¥â¡¼¥É¤ò¡¢¥Ç¥Õ¥©¥ë¥È¤Î read ¤«¤é string ¤ËÊѹ¹¤¹¤ì¤Ð¡¢emacs ¤Î¥½¥ì¤ÈƱÍÍ¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å1¤Ä¤ÇºÑ¤à¾õÂ֤ˤʤ뤽¤¦¤Ç¡£

°ì¡¹ÊѤ¨¤ë¤Î¤ÏÌÌÅݽ­¤¤¤Î¤Ç¡¢ ~/.emacs ¤Ë¡¢
(setq reb-re-syntax 'string)
¤È½ñ¤¤¤Æ¤ª¤­¤Þ¤·¤¿¡£

¤³¤¦¤·¤Æ¥á¥â¤·¤¿¤±¤É¡¢¤¿¤Ö¤ó¤½¤Î¤¦¤Á˺¤ì¤ëͽ´¶¡£

#3 [cg_tools] ¿·¤·¤¤¥Ç¥Õ¥©¥ë¥È¥«¥é¡¼

_Colors ¤òį¤á¤Æ¡¢åºÎï¤À¤Ê¤È¡£¥Ç¥Õ¥©¥ë¥È¤Î16¿§¤ËÂФ·¤Æ¿·¤·¤¤ÄêµÁ¤òÄó°Æ¤·¤¿¤¤¡¢¤ß¤¿¤¤¤ÊÏäʤΤ«¤Ê¤È¡£

¤»¤Ã¤«¤¯¤À¤«¤é¡¢ _colors/hex.txt at master ¡¦ mrmrs/colors ¤ò¥³¥Ô¥Ú¤·¤Æ¡¢GIMP or InkscapeÍѤΥѥì¥Ã¥È¥Õ¥¡¥¤¥ë¤âºî¤Ã¤Æ¤ß¤¿¤ê¡£°ì±þÃÖ¤¤¤È¤­¤Þ¤¹¤Í¡£

_new_defaults_colors.gpl.txt

new_defaults_colors.gpl.txt ¤ò¡¢new_defaults_colors.gpl ¤Ë¥ê¥Í¡¼¥à¤·¤Æ¡¢GIMP¤Î¥æ¡¼¥¶¥Õ¥©¥ë¥À\palettes\ °Ê²¼¤ËÃÖ¤¯¤Ê¤ê¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£¡Ä¤¤¤ä¡¢GIMP¤Ã¤Æ¥Ñ¥ì¥Ã¥È¤Î¥¤¥ó¥Ý¡¼¥È¤â¤Ç¤­¤ë¤ó¤À¤Ã¤±¤«¡£¤½¤Î¤Ø¤ó¤è¤¯Ê¬¤«¤é¤Ê¤«¤Ã¤¿¤ê¡£

2014/01/15(¿å) [nǯÁ°¤ÎÆüµ­]

#1 [cg_tools] GeoGebra¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ç¥Ï¥Þ¤Ã¤¿¤ê

ÀâÌÀ²èÁü¤òºî¤í¤¦¤È¤·¤Æ¡¢ºî¿Þ¥Ä¡¼¥ë¤òõ¤·¤¿¤ê¡£

´ö²¿¤Î¥¢¥ì¥³¥ì¤ò¤òÉÁ¤¤¤Æ¡¢Æ°¤«¤·¤Æ¡¢¤½¤ÎÊѹ¹·ë²Ì¤ò¸«¤¿ÌܤdzÎǧ¤Ç¤­¤ë¡¢ _GeoGebra ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ß¤è¤¦¤«¤Ê¤È¡£ÀÎ¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿µ­²±¤â¤¢¤ë¤Î¤À¤±¤É¡¢º£¤ÎPC¤Ë¤ÏÆþ¤ì¤Æ¤Ê¤«¤Ã¤¿¤ß¤¿¤¤¤Ç¡£

¤·¤«¤·¡¢¸ø¼°¥µ¥¤¥È¤«¤é GeoGebra-Windows-Installer-4-4-7-0.exe ¤òDL¤·¤Æ¼Â¹Ô¤·¤Æ¤â¡¢¥¤¥ó¥¹¥È¡¼¥é¤¬¡¢¥é¥¤¥»¥ó¥¹³Îǧ²èÌ̤μ¡¤Ë¹Ô¤³¤¦¤È¤¹¤ë¤È¤³¤í¤ÇÉÔÀµ½ªÎ»¤·¤Æ¤·¤Þ¤¦¡£´Ä¶­¤Ï Windows7 x64¡£

¥°¥°¤Ã¤Æ¤ß¤¿¤é¡¢Æ±¤¸¾É¾õ¤â¸«¤«¤±¤¿¤Î¤À¤±¤É¡£·Ç¼¨ÈĤ½¤Î¾¤Ç¼ÁÌ䤷¤Æ¤â¡¢²óÅú¼Ô¤Ï¡Ö¥¦¥Á¤Ç¤ÏÌäÂê¤Ê¤¯¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤¿¤è¡©¡×¤ß¤¿¤¤¤ÊÏäФ«¤ê¡£¤Æ¤³¤È¤Ï¡¢¼«Ê¬¤Î´Ä¶­¤Ë²¿¤«¸¶°ø¤¬¤¢¤ë¤Î¤À¤í¤¦¤«¡Ä¡£

¤µ¤Æ¤Ï¾ïÃ󥽥եȤ¬°­¤µ¤ò¤·¤Æ¤ë¤Î¤À¤í¤¦¤«¡£¤¢¤é¤æ¤ë¾ïÃ󥽥եȤò½ªÎ»¤µ¤»¤Æ»î¤·¤Æ¤ß¤¿¤±¤É¡¢·ë²Ì¤ÏÊѤï¤é¤º¡£¤¦¡¼¤ó¡£

_Index of /installers ¤«¤éé¤Ã¤Æ¡¢GeoGebra-Windows-Installer-4-4-7-0.msi ¤òÆþ¼ê¤·¤Æ¤ß¤¿¡£.exe ¤¸¤ã¤Ê¤¯¤Æ .msiÈÇ¡£¤³¤Á¤é¤Ê¤é¡¢¥¤¥ó¥¹¥È¡¼¥é¤Ï±Ñ¸ì¤À¤±¤É¡¢¥¤¥ó¥¹¥È¡¼¥ë¤¬¤Ç¤­¤¿¡£

¤Þ¤¢¡¢GeoGebra-Windows-Portable-4-4-7-0.zip ¤òDL¡¦²òÅह¤ì¤Ð¡¢¥Ð¥¤¥Ê¥ê°ì¼°¤¬Æþ¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢ºÇ°­¤Î¾ì¹ç¡¢¥½¥ì¤ò»È¤¦¤Î¤Ç¤â¤è¤µ¤½¤¦¤À¤±¤É¡£

#2 [dxruby] DXRuby+Shader¤Ç¾²¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë¤Ã¤Ý¤¤¤³¤È¤¬¤Ç¤­¤¿¤è¤¦¤Êµ¤¤¬¤¹¤ë

ShaderÍøÍÑ¥µ¥ó¥×¥ë¤Î sample_spehari.rb ¤òÏ®¤Ã¤Æ¡¢Ë¾¤ó¤À´¶¤¸¤Î¾²¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë¡¢¤Ã¤Ý¤¤¤³¤È¤¬¤Ç¤­¤¿¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£¤¿¤Ö¤ó¡£

sample_spehari.rb ¤òį¤á¤Æ¤¤¤Æ¡¢µ¤¤Å¤¤¤¿ÅÀ¤òÎóµó¡£ ¤½¤Î¤¢¤¿¤ê¤ò°Õ¼±¤·¤Ê¤¬¤éÏ®¤Ã¤Æ¤ß¤¿¤ê¡£

¤³¤ó¤Ê´¶¤¸¤Ë¡£
¾²¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë

STG¥µ¥ó¥×¥ë¤ËÁȤ߹þ¤ó¤Ç¤ß¤¿¤é¡¢¤³¤ó¤Ê´¶¤¸¡£
STG¥µ¥ó¥×¥ë¤ËÁȤ߹þ¤ó¤Ç¤ß¤¿Îã
¤É¤¦¸«¤Æ¤â¡¢ _¡Ö¤ª´ê¤¤¡¢»ä¤ÎÀ±¤ò½õ¤±¤Æ¡Ä¡× ¤Ç¤¹¤Ê¡£¥¢¥ì¤â¡¢¤³¤ó¤Ê´¶¤¸¤Î¤³¤È¤ò¤·¤Æ¤¿¤Î¤«¤·¤é¡£

Ť¤¤±¤É¡¢°ì±þ¥½¡¼¥¹¤âŽ¤Ã¤È¤­¤Þ¤¹¡£

_floorrasterscroll.rb
require 'dxruby'

#
# Shader¤ò»È¤Ã¤Æ¾²¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë¤Ã¤Ý¤¤½èÍý¤ò¤¹¤ë¥¯¥é¥¹
#
class FloorRasterScroll

  @@hlsl = <<EOS
  float floor_distance;
  float screen_distance;
  float x_diff;
  float y_diff;
  float alpha;
  texture tex0;

  sampler Samp0 = sampler_state
  {
    Texture =<tex0>;
    MipFilter = LINEAR;
    MinFilter = LINEAR;
    MagFilter = LINEAR;
    AddressU = WRAP;
    AddressV = WRAP;
  };

  float4 PS(float2 input : TEXCOORD0) : COLOR0
  {
    float4 output;
    input.y = screen_distance * floor_distance / -(input.y + y_diff);
    input.x = (input.x - x_diff) * -input.y / screen_distance;
    output = tex2D( Samp0, input );
    output.a = alpha;
    return output;
  }

  technique FloorRasterScroll
  {
   pass P0
   {
    PixelShader = compile ps_2_0 PS();
   }
  }
EOS

  attr_accessor :core, :shader, :image
  attr_accessor :w, :h
  attr_accessor :tilew, :tileh
  attr_accessor :rt_w, :rt_h, :rt_scaley
  attr_accessor :rt
  attr_accessor :floor_dist, :scr_dist, :x_diff, :y_diff, :alpha

  #
  # ½é´ü²½½èÍý
  #
  # @param [Image] image »ÈÍѤ¹¤ë²èÁü
  # @param [float] floor_dist ¾²¤Þ¤Ç¤Îµ÷Î¥¡£1.0Á°¸å¤¬ÌÜ°Â
  # @param [float] scr_dist ²èÌ̤ޤǤε÷Î¥¡£1.0°Ê²¼¤¬ÌÜ°Â
  # @param [float] y_diff »ëÀþÊý¸þ¤ò¾å²¼¤Ë¤º¤é¤¹ÎÌ¡£0.0¤«¤é1.0¤ÎÈÏ°Ï
  # @param [float] alpha Æ©ÌÀÅÙ¡£0.0¤ÇÆ©ÌÀ¡£1.0¤ÇÉÔÆ©ÌÀ
  # @param [int] w ÉÁ²è²£Éý¡£nil ¤Ê¤é¥¦¥¤¥ó¥É¥¦²£Éý
  # @param [int] h ÉÁ²è½ÄÉý¡£nil ¤Ê¤é¥¦¥¤¥ó¥É¥¦½ÄÉý
  #
  def initialize(image, floor_dist=0.3, scr_dist=0.3, y_diff=0.1, alpha=1.0,
                 w=nil, h=nil)
    self.core = Shader::Core.new(@@hlsl,{
                                   :floor_distance=>:float,
                                   :screen_distance=>:float,
                                   :x_diff=>:float,
                                   :y_diff=>:float,
                                   :alpha=>:float
                                 })
    self.shader = Shader.new(self.core, "FloorRasterScroll")

    self.image = image

    self.w = (w == nil)? Window.width : w
    self.h = (h == nil)? Window.height : h

    self.floor_dist = floor_dist
    self.scr_dist = scr_dist
    self.y_diff = y_diff
    self.alpha = alpha

    # ²èÌ̤òʤ¤¤±£¤¹¥¿¥¤¥ë¿ô¤òµá¤á¤ë
    self.tilew = self.w.quo(self.image.width).ceil
    self.tileh = self.h.quo(self.image.height).ceil

    # RenderTarget ¤ÎɬÍ×¥µ¥¤¥º¤òµá¤á¤ë
    self.rt_w = self.image.width * self.tilew
    self.rt_h = self.image.height * self.tileh

    # yÊý¸þ¤Ç³ÈÂç½Ì¾®¤·¤ÆÉÁ²è½Ä²£Éý¤Ë¹ç¤ï¤»¤ë
    self.rt_scaley = self.h.quo(2).quo(rt_h)

    # RendertargetÀ¸À®
    self.rt = RenderTarget.new(rt_w, rt_h)

    # ²èÌ̤ο¿¤óÃæ¤Ë¾Ã¼ºÅÀ¡©¤ò»ý¤Ã¤Æ¤¯¤ë¤¿¤á¤ÎÊäÀµÃͤò»»½Ð
    self.shader.x_diff = 0.5 * self.w.quo(self.rt_w)
  end

  #
  # ÉÁ²è½èÍý
  #
  # @param [int] x ÉÁ²èxºÂɸ
  # @param [int] y ÉÁ²èyºÂɸ
  # @param [float] scrl_x ²£Êý¸þ¥¹¥¯¥í¡¼¥ë°ÌÃÖ
  # @param [float] scrl_z ±ü¹ÔÊý¸þ¥¹¥¯¥í¡¼¥ë°ÌÃÖ
  # @param [Hash] opts ¥ª¥×¥·¥ç¥ó
  # @option opts [float] floor_dist ¾²¤È¤Îµ÷Î¥¡£1.0Á°¸å¤¬ÌÜ°Â
  # @option opts [float] scr_dist ²èÌ̤Ȥε÷Î¥¡£1.0°Ê²¼¤¬ÌÜ°Â
  # @option opts [float] y_dist »ëÀþÊý¸þ¤ò¾å²¼¤Ë¤º¤é¤¹ÎÌ¡£0.0 - 1.0 ¤ÎÈÏ°Ï
  # @option opts [int] z ÉÁ²è±ü¹Ô¾ðÊó
  # @option opts [float] alpha Æ©ÌÀÅÙ¡£0.0¤ÇÆ©ÌÀ¡£1.0¤ÇÉÔÆ©ÌÀ
  # @option opts [Boolean] vflip true¤Ê¤é¾å²¼È½Äê¡£false¤Ê¤éȿž¤·¤Ê¤¤
  #
  def draw(x, y, scrl_x, scrl_z, opts={})
    self.floor_dist = opts[:floor_dist] if opts.has_key?(:floor_dist)
    self.scr_dist = opts[:scr_dist] if opts.has_key?(:scr_dist)
    self.y_diff = opts[:y_diff] if opts.has_key?(:y_diff)
    self.alpha = opts[:alpha] if opts.has_key?(:alpha)

    self.shader.floor_distance = self.floor_dist
    self.shader.screen_distance = self.scr_dist
    self.shader.y_diff = self.y_diff
    self.shader.alpha = self.alpha

    vflip = 1
    vflip *= -1 if opts.has_key?(:vflip) and opts[:vflip] == true

    z = 0
    z = opts[:z] if opts.has_key?(:z)


    # Shader ¤¬»²¾È¤¹¤ë²èÁü¤ò RenderTarget ¤ËºîÀ®
    self.rt.draw_tile(0, 0, [[0]], [self.image],
                      scrl_x, scrl_z, self.tilew, self.tileh).update

    # Shader ¤ò»È¤Ã¤ÆÆ©»ëÊÑ´¹¤·¤Ä¤ÄÉÁ²è
    Window.drawEx(x, y, self.rt, :shader=>self.shader,
                  :scaley=>self.rt_scaley * vflip, :centery=>0, :z=>z)
  end

  #
  # Æ°ºî³ÎǧÍÑ¡£¥°¥ê¥Ã¥É²èÁü¤òÀ¸À®¤·¤ÆÊÖ¤¹
  #
  # @param [int] w ²èÁü²£Éý
  # @param [int] h ²èÁü½ÄÉý
  # @return [Image] À¸À®¤·¤¿²èÁü
  #
  def self.get_grid_image(w, h)
    image = Image.new(w, h, [0, 255, 0])
    image.box_fill(0, 0, w / 2 - 1, h / 2 - 1, [150,250,150])
    image.box_fill(w / 2, 0, w - 1, h / 2 - 1, [100,250,100])
    image.box_fill(0, h / 2, w / 2 - 1, h - 1, [200,250,200])
    image.box_fill(w / 2, h / 2, w - 1, h - 1, [0,220,0])
    return image
  end
end

# ----------------------------------------

if $0 == __FILE__
  # Æ°ºî¥Æ¥¹¥È

  # ²èÁü¤òÆɤ߹þ¤à
  # imgfilename = "lena.png"
  imgfilename = "cloud.png"

  if File.file?(imgfilename)
    image = Image.load(imgfilename)
  else
    # ²èÁü¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤é¤Ê¤±¤ì¤Ð¡¢¥¿¥¤¥ë²èÁü¤òºîÀ®
    image = FloorRasterScroll.get_grid_image(160, 160)
  end

  test_mode = 1

  case test_mode
  when 0
    # ----------------------------------------
    # ¥·¥ó¥×¥ë¤Ê»È¤¤Êý¤ÎÎã

    bg = FloorRasterScroll.new(image)
    x = 0
    z = 0
    Window.loop do
      break if Input.keyPush?(K_ESCAPE)
      x += 8
      z += 5
      bg.draw(0, 240, x, z)
    end

  when 1
    # ----------------------------------------
    # Æ°ºî¥Æ¥¹¥È¡£³Æ¥Ñ¥é¥á¡¼¥¿¤òºÙ¤«¤¯Êѹ¹¤·¤Ê¤¬¤éÉÁ²è¤·¤Æ¤ß¤ë

    bg = FloorRasterScroll.new(image) # ¾²ÍÑ
    bg2 = FloorRasterScroll.new(image) # Å·°æÍÑ

    x = 0
    z = 0
    x_spd = 8
    z_spd = 5
    floor_dist = 0.3
    scr_dist = 0.3
    y_diff = 0.1

    font = Font.new(16)
    fade_enable = false
    count = 0

    Window.loop do
      break if Input.keyPush?(K_ESCAPE)

      # ®Å٥ꥻ¥Ã¥È
      if Input.keyDown?(K_C)
        x_spd = 0
        z_spd = 0
      end

      # ²£Êý¸þ¥¹¥¯¥í¡¼¥ë®ÅÙ¤òÊѹ¹
      x_spd += 0.1 * Input.x

      # ±ü¹ÔÊý¸þ¥¹¥¯¥í¡¼¥ë®ÅÙ¤òÊѹ¹
      z_spd -= 0.1 * Input.y

      # ¾²¤È¤Îµ÷Î¥¤òÊѹ¹
      floor_dist += 0.01 if Input.keyDown?(K_W)
      floor_dist -= 0.01 if Input.keyDown?(K_S)

      # ²èÌ̤ޤǤε÷Î¥¤òÊѹ¹
      scr_dist += 0.005 if Input.keyDown?(K_D)
      scr_dist -= 0.005 if Input.keyDown?(K_A)
      scr_dist = 0.05 if scr_dist < 0.05

      # »ëÀþ¤ò¾å²¼¤Ë¤º¤é¤¹ÃͤòÊѹ¹
      y_diff += 0.005 if Input.keyDown?(K_R)
      y_diff -= 0.005 if Input.keyDown?(K_F)

      # Æ©ÌÀÅÙ¤òÊѹ¹
      fade_enable = !fade_enable if Input.keyPush?(K_Q)
      alpha = (fade_enable)? Math.sin(3 * count * Math::PI / 180.0).abs : 1.0

      # ¥¹¥¯¥í¡¼¥ë°ÌÃÖÊѹ¹
      x += x_spd
      z += z_spd

      # ÉÁ²è
      bg.draw(0, 240, x, z,
              :vflip=>false,
              :floor_dist=>floor_dist,
              :scr_dist=>scr_dist,
              :y_diff=>y_diff,
              :z=>-255, :alpha=>alpha)

      bg2.draw(0, 240, x, -z,
               :vflip=>true,
               :floor_dist=>floor_dist,
               :scr_dist=>scr_dist,
               :y_diff=>y_diff,
               :z=>-255, :alpha=>alpha)

      # ÀâÌÀʸ¤òÉÁ²è
      tx = 4
      h = 20
      Window.drawFont(tx, h * 0, "RIGHT , LEFT : x speed = #{x_spd}", font)
      Window.drawFont(tx, h * 1, "UP , DOWN    : z speed = #{z_spd}", font)
      Window.drawFont(tx, h * 2, "W , S : floor dist = #{floor_dist}", font)
      Window.drawFont(tx, h * 3, "D , A : screen dist = #{scr_dist}", font)
      Window.drawFont(tx, h * 4, "R , F : y_diff = #{y_diff}", font)
      Window.drawFont(tx, h * 5, "Q : Fade in/out", font)
      Window.drawFont(tx, h * 6, "C : Speed clear", font)

      count += 1
    end

  end

end
Æ°ºî¥Æ¥¹¥ÈÉôʬ¤Î¤Û¤¦¤¬¡¢Ä¹¤¤¤È¤¤¤¦¡Ä¡£

º£²ó¤â¡¢Ã±ÂΤǼ¹Ԥ·¤Æ¤âÆ°¤¯¤±¤É¡¢Â¾¤Î¥Õ¥¡¥¤¥ë¤«¤é¸Æ¤ó¤Ç¤â»È¤¨¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤­¤Þ¤·¤¿¡£ËÜÂÎ¥Õ¥¡¥¤¥ë¡©¤ÈƱ¤¸¥Õ¥©¥ë¥À¤Ë floorrasterscroll.rb ¤òÆþ¤ì¤È¤¤¤Æ¡¢°Ê²¼¤Î¤è¤¦¤Êµ­½Ò¤Ç»È¤¨¤ë¤«¤Ê¤È¡Ä¡£
# ¾²¥é¥¹¥¿¡¼½èÍý¤Î¥Æ¥¹¥È

require 'dxruby'
require_relative 'floorrasterscroll'

image = Image.load("lena.png")
bg = FloorRasterScroll.new(image)
x = 0
z = 0
Window.loop do
  break if Input.keyPush?(K_ESCAPE)
  x += 8
  z += 4
  bg.draw(0, 240, x, z)
end

¥µ¥ó¥×¥ë¤òÏ®¤Ã¤Æºî¤Ã¤¿¤À¤±¤Ê¤Î¤Ç¡¢¤³¤ì¤â¥µ¥ó¥×¥ëƱÍÍ¡¢Public Domain ¤Ë¤·¤Æ¤ª¤­¤Þ¤¹¡£¤½¤ì¤È¡¢²èÁü¤Ï°Ê²¼¤«¤éDL¤·¤Æ»È¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

_cloud.png (320x320 dot)
cloud.png


¤â¤ä¤â¤ä¤·¤¿ÌÏÍͤǤϤ褯ʬ¤«¤é¤Ê¤¤¤Ç¤·¤ç¤¦¤«¤é¡¢¤¢¤Îͭ̾¤Ê¡¢ _lenaÍͲèÁü ¤âÃÖ¤¤¤È¤­¤Þ¤¹¤Í¡Ä¡£

_lena.png (160x160 dot)

»È¤¦¤È¡¢°Ê²¼¤Î¤è¤¦¤Ê´¶¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£
lenaÍͤǻ¤¿·ë²Ì

¤ä¤Ã¤Ñ¤ê¡¢lenaÍͤΤ褦¤Ê²èÁü¤Ç¼Â¸³¤¹¤ë¤È¡¢¤Ê¤ó¤À¤«¤ä¤ëµ¤¤¬¤Ç¤Æ¤¯¤ë¤Ê¤¢¡£

¡ý Æ©»ëÊÑ´¹¤ÇƬ¤¬º®Í𤷤Ƥ­¤¿¤Î¤Ç¥á¥â¡£ :

Æ©»ëÊÑ´¹¤ò¤¹¤ëShader ¡½¡½ HLSL¤ò½ñ¤¯¤¢¤¿¤ê¤Ç¡¢¤Á¤ç¤Ã¤È¥Ï¥Þ¤Ã¤¿¡£¤Ê¤ó¤À¤«¤ä¤ä¤³¤·¤¤¤Î¤Ç¡¢°ì±þ¿Þ²ò¤·¤Æ¥á¥â¡£

¤Þ¤º¡¢²èÌ̺Âɸ¤Ï¡¢½Ä²£ 0.0 ¡Á 1.0 ¤ÎÈϰϤˤʤäƤ롢¤È¹Í¤¨¤ë¡£¤Þ¤¿¡¢¸µ²èÁü¤Ï¡¢¾²¤Ë¡¢¤Ä¤Þ¤êÊ¿Ì̤ˡ¢¤º¤é¤ê¤Èʤó¤Ç¤ë¤È¹Í¤¨¤ë¡£zÃͤȤ·¤ÆÆÀ¤¿Ãͤϡ¢uvÃͤÎv¤È¤·¤Æ»È¤¦¡¢¤È¤Ç¤â¸À¤¨¤Ð¤¤¤¤¤Î¤«¡Ä¡£
³µÇ°¿Þ
¤â¤·¤«¤·¤¿¤é v ¤ÎÊý¸þ¤ÏµÕ¤«¤â¤·¤ì¤Ê¤¤¤±¤É¡£¾å¤¬1.0¤Ê¤Î¤«¡¢²¼¤¬1.0¤Ê¤Î¤«¡¢¤è¤¯Ê¬¤«¤Ã¤Æ¤Þ¤»¤ó¡Ä¡£

¿¿²£¤«¤é¸«¤¿¾õÂÖ¤ò¹Í¤¨¤ë¡£
¿¿²£¤«¤é¸«¤¿¾õÂÖ
ºî¿Þ¥Ä¡¼¥ë¤Î´Ø·¸¤Ç¡¢¾åÊý¸þ¤¬ +y ¤Ë¤Ê¤Ã¤Æ¤ë¤±¤É¡¢¥×¥í¥°¥é¥à¾å¤Ç¤Ï¡¢²¼Êý¸þ¤¬ +y ¤Ê¤Î¤Ç¡¢¤Á¤ÈÃí°Õ¡£

Ãͤ¬Ê¬¤«¤Ã¤Æ¤ë¤â¤Î¤È¡¢Ãͤ¬Ê¬¤«¤Ã¤Æ¤Ê¤¤¤â¤Î¤ò¡¢Ê¬Îष¤Æ¤ß¤ë¡£
  • sy ¤Ï¡¢²èÌ̾å¤ÎºÂɸ¡£HLSL Æâ¤Î input.y ¤¬¡¢¤½¤Î¤â¤Î¥º¥Ð¥ê¤Ê¤Î¤Ç¡¢¤³¤ì¤ÏÃͤ¬Ê¬¤«¤Ã¤Æ¤ë¡£
  • sz ¤Ï¡¢²èÌ̤ޤǤε÷Î¥¡£¤³¤ì¤Ï¥Æ¥­¥È¡¼¤Ë·è¤á¤ë¤Î¤Ç¡¢Ãͤ¬Ê¬¤«¤Ã¤Æ¤ë¡£²èÌ̤νIJ£¤¬ 0.0 ¡Á 1.0 ¤Ê¤Î¤Ç¡¢sz ¤â 0.n ¤ß¤¿¤¤¤ÊÃͤˤʤꤽ¤¦¡£
  • py ¤Ï¡¢¾²¤Þ¤Ç¤Îµ÷Î¥¡£¤³¤ì¤â¥Æ¥­¥È¡¼¤Ë·è¤á¤ë¤Î¤Ç¡¢Ãͤ¬Ê¬¤«¤Ã¤Æ¤ë¡£¤ª¤½¤é¤¯¤³¤ì¤â¡¢Ãͤ¬ 0.n ¤°¤é¤¤¤Ë¤Ê¤ê¤½¤¦¡£
  • pz ¤Ï¡¢»²¾È¤¹¤ë²èÁü¤Î¡¢vÃÍ¡£¤³¤ì¤¬Ê¬¤«¤é¤Ê¤¤¡£
¤È¤¤¤¦¤³¤È¤Ç¡£pz ¤òµá¤á¤ì¤Ð¤¤¤¤¡£

(sz, sy) ¤¬ºî¤ë»°³Ñ·Á¤È (pz, py) ¤¬ºî¤ë»°³Ñ·Á¤ÏÁê»÷¤Ê¤Î¤Ç¡¢°Ê²¼¤¬À®¤êΩ¤Ä¡£
sz : sy = pz : py
sz * py = sy * pz
pz = (sz * py) / sy
¤³¤ì¤Ç¡¢»²¾È¤¹¤ë²èÁü¤Î v ÃͤÏÆÀ¤é¤ì¤ë¤Î¤Ç¡¢HLSLÆâ¤Î input.y ¤ËÂåÆþ¤·¤Æ¤ä¤ì¤Ð¤¤¤¤¡£¤Ï¤º¡£

¤µ¤é¤Ë¡¢¿¿¾å¤«¤é¸«¤¿¾õÂÖ¤ò¹Í¤¨¤ë¡£
¿¿¾å¤«¤é¸«¤¿¾õÂÖ

¤³¤ì¤â¡¢Ãͤ¬Ê¬¤«¤Ã¤Æ¤ë¤â¤Î¤È¡¢Ê¬¤«¤Ã¤Æ¤Ê¤¤¤â¤Î¤ò¡¢Ê¬Îष¤Æ¤ß¤ë¡£
  • sx ¤Ï¡¢²èÌ̾å¤ÎºÂɸ¡£HLSLÆâ¤Î input.x ¤«¤éÆÀ¤é¤ì¤ë¡£¤³¤ì¤ÏÃͤ¬Ê¬¤«¤Ã¤Æ¤ë¡£
  • sz ¤Ï¡¢²èÌ̤ޤǤε÷Î¥¡£¤³¤ì¤Ï¥Æ¥­¥È¡¼¤Ë·è¤á¤ë¤Î¤Ç¡¢Ãͤ¬Ê¬¤«¤Ã¤Æ¤ë¡£
  • pz ¤Ï¡¢»²¾È¤¹¤ë²èÁü¤Î vÃÍ¡£¤³¤ì¤Ï¤µ¤Ã¤­µá¤á¤¿¤«¤é¡¢Ãͤ¬Ê¬¤«¤Ã¤Æ¤ë¡£
  • px ¤Ï¡¢»²¾È¤¹¤ë²èÁü¤Î uÃÍ¡£¤³¤ì¤¬Ê¬¤«¤é¤Ê¤¤¡£¥³¥¤¥Ä¤òµá¤á¤¿¤¤¡£
¤È¤¤¤¦¤³¤È¤Ç¡£
sz : sx = pz : px
sz * px = sx * pz
px = sx * pz / sz

¤Ç¡¢Ãí°ÕÅÀ¤¬¡£

sx ¤Ï input.x ¤«¤éµá¤Þ¤ë¤Î¤À¤±¤É¡¢input.x ¤ÎÈϰϤϡ¢²èÌ̺¸¤«¤é±¦¤Ë¸þ¤«¤Ã¤Æ 0.0¡Á1.0 ¤Ê¤Î¤Ç¡¢¿¿¤óÃæ¤Ï 0.5¡£¤Ê¤Î¤Ç¡¢sx = input.x - 0.5 ¤È¤·¤Æ¡¢¤º¤é¤·¤Æ¤ä¤é¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£

sy ¤Ï¡Ä¡£º£²ó¤Ï¡¢¾²¤òɽ¼¨¤·¤¿¤¤¤Ê¡¼¤È»×¤Ã¤Æ¤ë¤Î¤Ç¡¢²èÌ̤β¼È¾Ê¬¤À¤±¹Í¤¨¤ì¤Ð¤¤¤¤¤è¤Ê¤È¡£¤À¤Ã¤¿¤é¡¢sy = input.y ¤Ç¤¤¤¤¤«¤Ê¤È¡£²èÌ̤ξåȾʬ¤â´Þ¤á¤Æ²¿¤«¤·¤¿¤¤¤Ê¤é¡¢sy = input.y - 0.5 ¤Ë¤Ê¤ë¤Î¤À¤í¤¦¤±¤É¡£

¤½¤ó¤Ê´¶¤¸¤Ç¡¢HLSLÆâ¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê¥½¥ì¤ò½ñ¤±¤ÐÎɤµ¤½¤¦¡£
sz = ²èÌ̤ޤǤε÷Î¥
py = ¾²¤Þ¤Ç¤Îµ÷Î¥

input.y = sz * py / input.y
input.x = (input.x - 0.5) * input.y / sz
¤È»×¤Ã¤¿¤±¤É¡¢»î¤·¤Æ¤ß¤¿¤é¾å²¼¤¬µÕ¤Ë¤Ê¤Ã¤¿¡£¤ä¤Ã¤Ñ¤ê vÃͤϡ¢¾å¤¬1.0¤Ê¤Î¤«¤â¤·¤ì¤Ê¤¤¡Ä¡© ¤½¤ó¤Ê¤ï¤±¤Ç¡¢¤Á¤ç¤Ã¤È½¤Àµ¡£
input.y = sz * py / -input.y
input.x = (input.x - 0.5) * -input.y / sz
¸«¤¿ÌܤϤ½¤ì¤é¤·¤¯¤Ê¤Ã¤¿¤«¤é¡¢¤³¤ì¤Ç¤¤¤¤¤«¡Ä¡£

¡ý Å·°æ¤Ï¤É¤¦¤·¤Æ¤ë¤«¤È¤¤¤¦¤È¡£ :

Å·°æ¤Ï¡¢¾²¤ò¾å²¼È¿Å¾¤·¤ÆÉÁ²è¤·¤Æ¤ë¤À¤±¤Ç¤¹¡£Window.drawEx() ¤ÇÉÁ²è¤¹¤ëºÝ¤Ë¡¢:scaley => -n ¤òÅϤ·¤Æ¤ë¤À¤±¡£

#3 [dxruby] DXRuby¤Ç»Í³Ñ·Á¤Î¼«Í³ÊÑ·Á¤ò¤¹¤ëºÝ¤Ë±ó¶á´¶¤ò¤Ä¤±¤ë¤È¤«¤¨¤Ã¤Æ¥Þ¥º¥¤¤Î¤«¤â¤·¤ì¤Ê¤¤

DXRuby ¤Î Window.drawMorph() ¤ò»È¤¨¤Ð¡¢»Í³Ñ·Á¤Î¼«Í³ÊÑ·Á¤¬¤Ç¤­¤ë¤Î¤Ç¡¢¤â¤·¤«¤¹¤ë¤Èµ¿»÷3D¤Ã¤Ý¤¤¸«¤»Êý¤¬¤Ç¤­¤ë¤«¤Ê¡¢¤ÈÌ´ÁÛ¤·¤Æ¤¿¤±¤É¡£ÊÑ·Á¤¹¤ëºÝ¤Ë¡¢¤È¤¤¤¦¤«Ê¬³ä¤¹¤ëºÝ¤Ë¡¢±ó¶á´¶¤ò¤Ä¤±¤Æʬ³ä¤·¤¿¤é¡¢¤Ê¤ó¤À¤«¥Þ¥º¥¤¤è¤¦¤Êµ¤¤¬¤·¤Æ¤­¤¿¤ï¤±¤Ç¡£

¤¿¤È¤¨¤Ð¡¢¥¼¥Ó¥¦¥¹¤Î¥Ð¥­¥å¥é¤ß¤¿¤¤¤Ê¥½¥ì¤Ë¡¢¥Æ¥¯¥¹¥Á¥ã¤òŽ¤Ã¤¿¤é¡Ä²óž¼´¾å¤Î¥Æ¥¯¥¹¥Á¥ã¤Ï¡¢É½¼¨¤¹¤ëºÝ¡¢°ÌÃÖ¤¬¤º¤ì¤Ê¤¤¤À¤í¤¦¤Ê¤È¡£

¤À¤±¤É¡¢ÊÑ·Á¤·¤¿»Í³Ñ·Á¤Î4ÅÀ¤«¤é¡¢ÂгÑÀþ¤Î¸òÅÀ¤òµá¤á¤Æʬ³ä¤ò¡¢¤È¤«¤ä¤Ã¤¿¤ê¤¹¤ë¤È¡¢°ÌÃÖ¤¬¤º¤ì¤ë¤è¤Ê¤È¡£4ÅÀ¤Î°ÌÃÖ¤¬ÊѤï¤ë¤¿¤Ó¤ËÃæ¿´Éôʬ¤¬¤¢¤Ã¤Á¤³¤Ã¤Á¤Ë¤¦¤Í¤¦¤ÍÆ°¤¤¤Á¤ã¤¦¤Î¤Ã¤Æ¤É¤¦¤Ê¤ó¤À¤í¤¦¡¢¤«¤¨¤Ã¤ÆÉÔ¼«Á³¤Ë¤Ê¤é¤Ê¤¤¤«¤È»×¤¨¤Æ¤­¤¿¤ê¡£

¤ó¡© ¤â¤·¤«¤·¤Æ¡¢²óž¼´¤¬¡¢ËÜÍè¤Ê¤éÂгÑÀþ¤Î¸òÅÀ¾å¤Ë¤Ê¤Ã¤Æ¤ë¤Î¤¬Àµ¤·¤¤¤Î¤«¤Ê¡© ¤Ê¤ó¤À¤«¤è¤¯Ê¬¤«¤é¤Ê¤¯¤Ê¤Ã¤Æ¤­¤¿¡Ä¡£

ÊÑ·Á¤·¤¿ºÝ¤ÎÆæ

¿Þ¤Ë¤·¤Æ¤ß¤¿¤±¤É¡¢¤ä¤Ã¤Ñ¤ê¤è¤¯Ê¬¤«¤é¤Ê¤¤¡Ä¡£¤É¤ì¤¬¼«Á³¤Ê¸«¤¿Ìܤˤʤë¤ó¤À¤í¤¦¡£Æ°¤«¤·¤Æ¤ß¤Ê¤¤¤È¤ï¤«¤é¤ó¤«¤Ê¡Ä¡£

#4 [pc] Java¤Î¥¢¥Ã¥×¥Ç¡¼¥È»þ¤ËMcAfee¤Î¥½¥ì¤âÆþ¤ì¤Æ¤è¤È¸À¤Ã¤Æ¤¯¤ë¤Î¤¬º¤¤ë

¥³¥ì¡¢¿ÆÉ㤵¤ó¤ä¡¢¿ÆÉ㤵¤ó¤Îͧ¿ÍÃοͤϡ¢¤¦¤Ã¤«¤êÆþ¤ì¤Á¤ã¤¤¤½¤¦¤À¤Ê¡Ä¡£¤½¤·¤Æ¡¢¥¦¥¤¥ë¥¹Âкö¥½¥Õ¥È¤¬¡¢1¤Ä¤ÎPC¾å¤Ç2¤Ä¤â3¤Ä¤âƱ»þ¤ËÆ°¤¤¤Æ¤Æ¡¢²¿¤ò¤¹¤ë¤Ë¤·¤Æ¤âÃÙ¤¤¡¢¤Ê¤ó¤À¤«ºÇ¶áPC¤ÎÄ´»Ò¤¬¤ª¤«¤·¤¤¡¢¤Æ¤ÊÏäˤʤꤽ¤¦¤Êͽ´¶¡£

¤È»×¤Ã¤¿¤±¤É¥°¥°¤Ã¤Æ¤ß¤¿¤é¡¢¤½¤â¤½¤â¥¦¥¤¥ë¥¹Âкö¥½¥Õ¥È¤¸¤ã¤Ê¤¤¤Ã¤Ý¤¤¡£

_McAfee Security Scan Plusºï½ü¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ëÊýË¡ ¡ÚÀëÅÁ¹­¹ð¥½¥Õ¥È¡Û
_¥í¥¤¥É¥Ù¥ó¥Á¥ã¡¼¥·¥¹¥Æ¥à»¨µ­¡ã¥í¥¤¥É¤ÎÆüµ­¡ä: McAfee Security Scan Plus ¤¬¤¤¤Ä¤Î´Ö¤Ë¤«¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë
_¡Ú¥¹¥¿¥Ã¥ÕÆüµ­¡ÛMcAfee Security Scan Plus¤Ã¤Æ¤Ê¤ó¤À¡©¡Ö¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¡×¡Ã¥Ñ¥½¥³¥ó½¤ÍýÀßÄꡦ¥Ç¡¼¥¿Éüµì¡¦µß½Ð¤Î¥³¥à¥µ¥¹~ÆÊÌÚ¸©¾®»³»Ô


¤·¤«¤·¡¢Windowsµ¯Æ°»þ¤Ë¥Õ¥¡¥¤¥ë¤òÁöºº¡©¤·¤¿¤ê¤Ï¤¹¤ë¤é¤·¤¯¤Æ¡£¤È¤Ê¤ë¤È¡¢ºÇ¶áOS¤Îµ¯Æ°¤¬¤ä¤¿¤é¤ÈÃÙ¤¤¡¢¤ß¤¿¤¤¤ÊÏ䬽ФƤ­¤½¤¦¤À¤Ê¡Ä¡£

2014/01/16(ÌÚ) [nǯÁ°¤ÎÆüµ­]

#1 [dxruby] ¾²¥é¥¹¥¿¡¼½èÍý¤ò¤â¤¦¤Á¤ç¤Ã¤È½¤Àµ

DXRuby¤ò»È¤Ã¤Æ¾²¥é¥¹¥¿¡¼½èÍý¤Î¼Â¸³¤ò¤·¤Æ¤¤¤¿¤Î¤À¤±¤É¡¢²óž¤·¤ÆÉÁ²è¤·¤¿¤é¤â¤¦¤Á¤ç¤Ã¤È¿§¡¹¤Ç¤­¤ë¤ó¤¸¤ã¤Ê¤¤¤«¤È»×¤¨¤Æ¤­¤¿¤Î¤Ç¾¯¤·½¤Àµ¡£

¤³¤ó¤Ê¤Î¤È¤«¡£
ÊɤȤ·¤ÆÉÁ²è
floorraster_test2.rb
# ÊɤȤ·¤Æɽ¼¨

require 'dxruby'
require_relative 'floorraster'

image = Image.load("wall1.png")

# 90Åٲ󞤷¤Æɽ¼¨¤¹¤ë¤Î¤Ç¡¢ÀµÊý·Á¤ÎÉÁ²è¥µ¥¤¥º¤ò»ØÄꤷ¤Æ¤ë
bg = FloorRaster.new(image, 640, 640)

x = 0
z = 0
Window.loop do
  break if Input.keyPush?(K_ESCAPE)
  x -= 3
  z -= 2
  bg.draw(320, 240, x, z, :angle=>90, :y_diff=>0.05, :vflip=>false)
  bg.draw(320, 240, x, z, :angle=>90, :y_diff=>0.05, :vflip=>true)
end

¤³¤ó¤Ê¤Î¤È¤«¡£
ÊɤȤ·¤ÆÉÁ²è¤½¤Î2
floorraster_test3.rb
# ÊɤȤ·¤Æɽ¼¨¤½¤Î2¡£±¦¤«¤éº¸¤ØÊɤ¬Æ°¤¤¤Æ¤¤¤¯

require 'dxruby'
require_relative 'floorraster'

image = Image.load("wall2.png")
bg = FloorRaster.new(image, 640, 640)
draw_x = 0

Window.loop do
  break if Input.keyPush?(K_ESCAPE)
  draw_x -= 3
  draw_x = 640 if draw_x < 0 # ²èÌ̺¸Ã¼¤ËÍ褿¤é±¦Ã¼¤ËÌ᤹
  floor_dist = (draw_x - 320).quo(2000) # ¾²¤Þ¤Ç¤Îµ÷Î¥¤òÊѹ¹
  vflip = (floor_dist < 0)? true : false # ²èÌ̱¦Â¦¤Èº¸Â¦¤Ç¡¢È¿Å¾ÉÁ²è¥Õ¥é¥°¤òÊѹ¹

  bg.draw(draw_x, 240, 0, 0,
          :angle=>270, # È¿»þ·×²ó¤ê¤Ë90ÅÙ²óž
          :floor_dist=>floor_dist.abs, # ¾²¤Þ¤Ç¤Îµ÷Î¥
          :scr_dist=>0.5, # ²èÌ̤ޤǤε÷Î¥
          :y_diff=>0,
          :vflip=>vflip)
end

¤³¤ó¤Ê¤Î¤È¤«¡£
ÊɤȤ·¤ÆÉÁ²è¤½¤Î3
floorraster_test4.rb
# ÊɤȤ·¤Æɽ¼¨¤½¤Î3¡£Ìµ¸Â¤ÎÊ¿Ì̤ǤϤʤ¯¡¢»Í³Ñ¤¤ÊɤȤ·¤ÆÉÁ²è

require 'dxruby'
require_relative 'floorraster'

image = Image.load("wall1.png")

# uvÃͤò·«¤êÊÖ¤µ¤Ê¤¤¥â¡¼¥É¤ò»ØÄꤷ¤Æ¤ë
bg = FloorRaster.new(image, 640, 640, false, false)

move_value = 0
move_value_max = 640
Window.loop do
  break if Input.keyPush?(K_ESCAPE)
  move_value -= 2
  move_value = move_value_max if move_value < 0
  floor_dist = (move_value - (move_value_max / 2)).quo(400)
  vflip = (floor_dist < 0)? true : false

  bg.draw(move_value, 240, 0, 0,
          :angle=>270,
          :floor_dist=>floor_dist.abs,
          :scr_dist=>0.3,
          :y_diff=>0.0,
          :v_offset=>1.1, # vÃͤλ²¾È°ÌÃÖ¤òÄ´À°¤·¤Æ¡¢²èÌÌÆâ¤Ë±Ç¤ë¤è¤¦¤Ë¤·¤Æ¤ë
          :vflip=>vflip)
end

°ì±þ¡¢¥½¡¼¥¹¤È²èÁü¤Î°ì¼°¤ò¡¢zip¤Ë¤·¤ÆÃÖ¤¤¤È¤­¤Þ¤¹¡£Public Domain ¤Ã¤Æ¤³¤È¤Ç¡£

_floorraster.zip

¡ý ¥Õ¥©¥°¤ò¤«¤±¤¿¤¤¤Î¤À¤±¤É¡£ :

±ó¤¤¤È¤³¤í¤¬¥Á¥é¥Á¥é¤¹¤ë¤Î¤¬µ¤¤Ë¤Ê¤ë¤Î¤Ç¡¢¥Õ¥©¥°¤â¤«¤±¤Æ¤ß¤¿¤¤¤Î¤À¤±¤É¡£

¥Õ¥©¥°¤Ã¤Æ¤Î¤Ï¡¢±ó¤¤¤È¤³¤í¤Ï̸¤¬¤«¤«¤Ã¤Æ¤ë¤è¤¦¤Ê¸«¤¨Êý¤Ë¤¹¤ë¤³¤È¤Ç¡¢¤Á¤ç¤Ã¤È¸íËâ²½¤¹(?)¼êË¡¡¢¤È¤¤¤¦¸À¤¤Êý¤Ç¤¤¤¤¤Î¤À¤í¤¦¤«¡£¥°¥°¤Ã¤Æ¤ß¤Æ¤âʬ¤«¤ê¤ä¤¹¤¤¥Ú¡¼¥¸¤¬½Ð¤Æ¤³¤Ê¤¯¤Æ¡£¼«Ê¬¡¢¸Æ¾Î¤ò´Ö°ã¤¨¤Æ¤ë¤Î¤«¤â¤·¤ì¤º¡£

¤µ¤Æ¤ª¤­¡£»î¤·¤Ë¡¢input.y ¤ÎÃͤò ¡½¡½ 0.0¡Á1.0¤ÎÃͤò»È¤Ã¤Æ¡¢Ã±½ã¤Ë¥Õ¥©¥°¤Î¿§¤Èº¹¤·Âؤ¨¤¿¤é¡¢¤Û¤È¤ó¤É¤ÎÉôʬ¤¬¥Õ¥©¥°¤Î¿§¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¼ºÇÔ¤·¤Æ¤·¤Þ¤Ã¤¿¡£¤¦¡¼¤ó¡£

¤Ç¤¢¤ì¤Ð¡¢Î㤨¤Ð0.1°Ê²¼¤Î¾ì¹ç¤À¤±¥Õ¥©¥°¤¬Æ¯¤¯¡¢Åù¤Î½èÍý¤ò½ñ¤±¤Ð¤¤¤¤¤Î¤«¤Ê¡£¤Ç¤â¡¢HLSLÆâ¤Çifʸ¤ò»È¤¦¤È¤á¤Á¤ã¤¯¤Á¤ãÃÙ¤¯¤Ê¤ë¡¢¤È¤¤¤¦Ïä⸫¤«¤±¤Æ¤·¤Þ¤Ã¤¿¤ï¤±¤Ç¡£

Íפ¹¤ë¤Ë¡¢0.0¡Á1.0¤ÎÆþÎÏÃͤËÂФ·¤Æ1.0¡Á0.0¤ÎÃͤ¬½Ð¤Æ¤¯¤ë¤±¤É¡¢µÞ·ã¤ËÃͤ¬¸º¤Ã¤Æ¤¤¤Ã¤Æ¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç¤Ï½ÐÎÏÃͤ¬0.0¶áÊդǥ¸¥ê¥¸¥ê¤·¤Æ¤ë¡¢¤ß¤¿¤¤¤Ê¿ô¼°¤ò½ñ¤±¤ì¤ÐÎɤµ¤½¤¦¤À¤Ê¤È¡£¤Ç¤â¡¢¤É¤¦½ñ¤±¤Ð¤¤¤¤¤Î¤ä¤é¡£¤¿¤Ö¤ó¥³¥ì¡¢Ãæ³ØÀ¸¥ì¥Ù¥ë¤Î¿ô³Ø¤Êµ¤¤â¤·¤Þ¤¹¤±¤É¡£

GeoGebra ¤ò»È¤Ã¤Æ¥°¥é¥Õ¤òºî¤ê¤Ä¤Ä¸¡Æ¤¡£GeoGebra ¤Î²¼¤ÎÆþÎÏÍó¤Ë¡¢y=1/x ¤Ê¤É¤ÈÂǤÁ¹þ¤à¤È¡¢Â¨ºÂ¤Ë¥°¥é¥Õ¤òÉÁ¤¤¤Æ¤¯¤ì¤ë¡£¼Â¤ËÊØÍø¡£Î㤨¤Ð y=0.05/(0.05+x*16) ¤ÈÂǤÁ¹þ¤ó¤À¤é¡¢·ë¹½¤½¤ì¤Ã¤Ý¤¤¥°¥é¥Õ¤Ë¤Ê¤Ã¤Æ¤¯¤ì¤¿¡£
GeoGebra¤Ç¥°¥é¥ÕºîÀ®

°ì±þHLSLÆâ¤Ë¡¢·ï¤Î¼°¤ò½ñ¤¤¤Æ¡¢¥Õ¥©¥°¤ò¼ÂÁõ¤·¤Æ¤ß¤¿¤ê¡£·ë¶É¡¢input.y ¤ÎÃͤǤä¤Ã¤Æ¤¤¤Æ zÃͤǤä¤Ã¤Æ¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤«¤é¡¢¤Á¤ÈÉÔ¼«Á³¤«¤â¤·¤ì¤º¡£¤Ç¤â¡¢Â¿¾¯¤Ï±£¤»¤Æ¤ë¤«¤é¡¢¤³¤ì¤Ï¤³¤ì¤Ç¡£

¤à¡£HLSL¤Ã¤Æ¡¢max¤È¤«min¤È¤«¤½¤Î¤¢¤¿¤ê¤Î´Ø¿ô¤â¤¢¤ë¤Î¤«¡Ä¡£¤À¤Ã¤¿¤é¡¢¤½¤ì¤ò»È¤Ã¤Æ¾ò·ïʬ´ô¤Ë¶á¤¤¤³¤È¤â¤Ç¤­¤ë¤Î¤«¤Ê¡£

¡ý °ì±þËÜÂÎÉôʬ¤âŽ¤Ã¤Æ¤ª¤¯¤Ç¤¹¡£ :

HLSLÆâ¤Ç»÷¤¿¤è¤¦¤Êµ­½Ò¤¬¥º¥é¥º¥éʤó¤Ç¤ë¤¢¤¿¤ê¡¢µ¤¤Ë¤Ê¤ë¤Î¤Ç¤¹¤±¤É¡£¤¿¤Ã¤¿1¡Á2¹Ô°ã¤¦¤À¤±¤Ê¤Î¤Ë¡¢´Ø¿ô(?)¤ò¥³¥Ô¥Ú¤·¤Æ¤ë¤È¤«¡¢¤Ê¤ó¤À¤«¥¢¥ì¤À¤è¤Ê¤È¡£¤Þ¤È¤á¤Æ°ì¤Ä¤Ë½ñ¤±¤Ê¤¤¤Î¤«¤Ê¡Ä¡£

floorraster.rb
require 'dxruby'

#
# Shader¤ò»È¤Ã¤Æ¾²¥é¥¹¥¿¡¼¥¹¥¯¥í¡¼¥ë¤Ã¤Ý¤¤½èÍý¤ò¤¹¤ë¥¯¥é¥¹
#
class FloorRaster

  @@hlsl = <<EOS
  float floor_distance;
  float screen_distance;
  float x_diff;
  float y_diff;
  float alpha;
  float v_offset;
  float fog_d;
  float4 fogcol;
  texture tex0;

  sampler Samp0 = sampler_state
  {
    Texture =<tex0>;
    MipFilter = LINEAR;
    MinFilter = LINEAR;
    MagFilter = LINEAR;
    AddressU = WRAP;
    AddressV = WRAP;
  };

  sampler Samp1 = sampler_state
  {
    Texture =<tex0>;
    MipFilter = LINEAR;
    MinFilter = LINEAR;
    MagFilter = LINEAR;
    AddressU = WRAP;
    AddressV = BORDER;
  };

  sampler Samp2 = sampler_state
  {
    Texture =<tex0>;
    MipFilter = LINEAR;
    MinFilter = LINEAR;
    MagFilter = LINEAR;
    AddressU = BORDER;
    AddressV = WRAP;
  };

  sampler Samp3 = sampler_state
  {
    Texture =<tex0>;
    MipFilter = LINEAR;
    MinFilter = LINEAR;
    MagFilter = LINEAR;
    AddressU = BORDER;
    AddressV = BORDER;
  };

  float4 PS1(float2 input : TEXCOORD0) : COLOR0
  {
    float4 output;
    float pz;
    float fogv;
    fogv = fog_d / (fog_d + (input.y * 16));
    pz = screen_distance * floor_distance / -(input.y + y_diff);
    input.y = pz + v_offset;
    input.x = (input.x - x_diff) * -pz / screen_distance + 0.5;
    output = tex2D( Samp0, input );
    output *= (1.0 - fogv);
    output += (fogcol * fogv);
    output.a *= alpha;
    return output;
  }

  float4 PS2(float2 input : TEXCOORD0) : COLOR0
  {
    float4 output;
    float pz;
    float fogv;
    fogv = fog_d / (fog_d + (input.y * 16));
    pz = screen_distance * floor_distance / -(input.y + y_diff);
    input.y = pz + v_offset;
    input.x = (input.x - x_diff) * -pz / screen_distance + 0.5;
    output = tex2D( Samp1, input );
    output *= (1.0 - fogv);
    output += (fogcol * fogv);
    output.a = alpha;
    return output;
  }

  float4 PS3(float2 input : TEXCOORD0) : COLOR0
  {
    float4 output;
    float pz;
    float fogv;
    fogv = fog_d / (fog_d + (input.y * 16));
    pz = screen_distance * floor_distance / -(input.y + y_diff);
    input.y = pz + v_offset;
    input.x = (input.x - x_diff) * -pz / screen_distance + 0.5;
    output = tex2D( Samp2, input );
    output *= (1.0 - fogv);
    output += (fogcol * fogv);
    output.a = alpha;
    return output;
  }

  float4 PS4(float2 input : TEXCOORD0) : COLOR0
  {
    float4 output;
    float pz;
    float fogv;
    fogv = fog_d / (fog_d + (input.y * 16));
    pz = screen_distance * floor_distance / -(input.y + y_diff);
    input.y = pz + v_offset;
    input.x = (input.x - x_diff) * -pz / screen_distance + 0.5;
    output = tex2D( Samp3, input );
    output *= (1.0 - fogv);
    output += (fogcol * fogv);
    output.a = alpha;
    return output;
  }

  technique RasScrollWrapUV
  {
   pass
   {
    PixelShader = compile ps_2_0 PS1();
   }
  }

  technique RasScrollWrapU
  {
   pass
   {
    PixelShader = compile ps_2_0 PS2();
   }
  }

  technique RasScrollWrapV
  {
   pass
   {
    PixelShader = compile ps_2_0 PS3();
   }
  }

  technique RasScrollNotWrap
  {
   pass
   {
    PixelShader = compile ps_2_0 PS4();
   }
  }
EOS

  attr_accessor :core, :shader, :image
  attr_accessor :w, :h
  attr_accessor :tilew, :tileh
  attr_accessor :rt_w, :rt_h, :rt_scaley
  attr_accessor :rt
  attr_accessor :floor_dist, :scr_dist, :x_diff, :y_diff, :alpha
  attr_accessor :fogcol, :fog_d
  attr_accessor :v_offset

  #
  # ½é´ü²½½èÍý
  #
  # @param [Image] image »ÈÍѤ¹¤ë²èÁü
  # @param [int] w ÉÁ²è²£Éý¡£nil¤Ê¤é¥¦¥¤¥ó¥É¥¦²£Éý
  # @param [int] h ÉÁ²è½ÄÉý¡£nil¤Ê¤é¥¦¥¤¥ó¥É¥¦½ÄÉý
  # @param [Boolean] uwrap uÃͤòwrap¤¹¤ë¤«¡£false¤Ê¤éwrap¤·¤Ê¤¤
  # @param [Boolean] vwrap vÃͤòwrap¤¹¤ë¤«¡£false¤Ê¤éwrap¤·¤Ê¤¤
  # @param [float] floor_dist ¾²¤È¤Îµ÷Î¥
  # @param [float] scr_dist ²èÌ̤Ȥε÷Î¥
  # @param [float] y_dist »ëÀþÊý¸þ¤ò¾å²¼¤Ë¤º¤é¤¹ÎÌ¡£ÈÏ°Ï¤Ï 0.0 - 1.0
  # @param [float] v_offset vÃͤλ²¾È¤ò¤É¤Î¤¯¤é¤¤¤º¤é¤¹¤«
  # @param [float] alpha Æ©ÌÀÅÙ¡£0.0¤ÇÆ©ÌÀ¡£1.0¤ÇÉÔÆ©ÌÀ
  # @param [float] fog_d ¥Õ¥©¥°¤Î¤«¤«¤ê¶ñ¹ç¡£ÃͤòÂ礭¤¯¤¹¤ë¤È¤«¤«¤ê¶ñ¹ç¤¬Â礭¤¯¤Ê¤ë
  # @param [Array] fogcol ¥Õ¥©¥°¤Î¿§¡£r,g,b,a ¤ÎʤӤǡ¢0-1.0¤ÎÃÍ
  #
  def initialize(image, w=nil, h=nil, uwrap=true, vwrap=true,
                 floor_dist=0.3, scr_dist=0.3, y_diff=0.1, v_offset=0.0,
                 alpha=1.0, fog_d=0.05, fogcol=[0,0,0,0])
    
    self.core = Shader::Core.new(@@hlsl,{
                                   :floor_distance=>:float,
                                   :screen_distance=>:float,
                                   :x_diff=>:float,
                                   :y_diff=>:float,
                                   :alpha=>:float,
                                   :v_offset=>:float,
                                   :fog_d=>:float,
                                   :fogcol=>:float
                                 })

    # wrap¾õÂÖ¤òÊѤ¨¤ë
    mode_str = "RasScrollWrapUV"
    mode_str = "RasScrollWrapU" if uwrap and !vwrap
    mode_str = "RasScrollWrapV" if !uwrap and vwrap
    mode_str = "RasScrollNotWrap" if !uwrap and !vwrap

    self.shader = Shader.new(self.core, mode_str)

    self.image = image
    self.w = (w == nil)? Window.width : w
    self.h = (h == nil)? Window.height : h
    self.floor_dist = floor_dist
    self.scr_dist = scr_dist
    self.y_diff = y_diff
    self.v_offset = v_offset
    self.alpha = alpha
    self.fog_d = fog_d
    self.fogcol = fogcol

    # ²èÌ̤òʤ¤¤±£¤¹¥¿¥¤¥ë¿ô¤òµá¤á¤ë
    self.tilew = self.w.quo(self.image.width).ceil
    self.tileh = self.h.quo(self.image.height).ceil

    # RenderTarget ¤ÎɬÍ×¥µ¥¤¥º¤òµá¤á¤ë
    self.rt_w = self.image.width * self.tilew
    self.rt_h = self.image.height * self.tileh

    # yÊý¸þ¤Ç³ÈÂç½Ì¾®¤·¤ÆÉÁ²è½Ä²£Éý¤Ë¹ç¤ï¤»¤ë
    self.rt_scaley = self.h.quo(2).quo(rt_h)

    # RendertargetÀ¸À®
    self.rt = RenderTarget.new(rt_w, rt_h)

    # ²èÌ̤ο¿¤óÃæ¤Ë¾Ã¼ºÅÀ¡©¤ò»ý¤Ã¤Æ¤¯¤ë¤¿¤á¤ÎÊäÀµÃͤò»»½Ð
    self.shader.x_diff = 0.5 * self.w.quo(self.rt_w)

    # ¥Õ¥©¥°¤Î¤«¤«¤ê¶ñ¹ç¤È¿§¤ò»ØÄê
    set_fog(fog_d, fogcol)
  end

  #
  # ¥Õ¥©¥°¤Î¤«¤«¤ê¶ñ¹ç¤È¿§¤ò»ØÄê
  #
  # @param [float] fog_d ¥Õ¥©¥°¤Î¤«¤«¤ê¶ñ¹ç¤ò»ØÄê¡£Ãͤ¬Â礭¤±¤ì¤Ð¤«¤«¤êÊý¤¬Â礭¤¯¤Ê¤ë
  # @param [Array] fogcol ¥Õ¥©¥°¤Î¿§¡£r,g,b,a ¤ÎʤӤǡ¢0-1.0¤ÎÃÍ
  #
  def set_fog(fog_d, fogcol)
    self.shader.fog_d = fog_d
    self.shader.fogcol = fogcol
  end
  
  #
  # ÉÁ²è½èÍý
  #
  # @param [int] x ÉÁ²èxºÂɸ
  # @param [int] y ÉÁ²èyºÂɸ
  # @param [float] scrl_x ²£Êý¸þ¥¹¥¯¥í¡¼¥ë°ÌÃÖ
  # @param [float] scrl_z ±ü¹ÔÊý¸þ¥¹¥¯¥í¡¼¥ë°ÌÃÖ
  # @param [Hash] opts ¥ª¥×¥·¥ç¥ó
  # @option opts [float] floor_dist ¾²¤È¤Îµ÷Î¥¡£1.0Á°¸å¤¬ÌÜ°Â
  # @option opts [float] scr_dist ²èÌ̤Ȥε÷Î¥¡£1.0°Ê²¼¤¬ÌÜ°Â
  # @option opts [float] y_dist »ëÀþÊý¸þ¤ò¾å²¼¤Ë¤º¤é¤¹ÎÌ¡£0.0 - 1.0 ¤ÎÈÏ°Ï
  # @option opts [float] v_offset vÃͤλ²¾È¤ò¤É¤Î¤¯¤é¤¤¤º¤é¤¹¤«
  # @option opts [int] z ÉÁ²è±ü¹Ô¾ðÊó
  # @option opts [float] alpha Æ©ÌÀÅÙ¡£0.0¤ÇÆ©ÌÀ¡£1.0¤ÇÉÔÆ©ÌÀ
  # @option opts [float] angle ²óž³ÑÅÙ¡£Ã±°Ì¤ÏÅÙ
  # @option opts [Boolean] vflip true¤Ê¤é¾å²¼È½Äê¡£false¤Ê¤éȿž¤·¤Ê¤¤
  #
  def draw(x, y, scrl_x, scrl_z, opts={})
    self.floor_dist = opts[:floor_dist] if opts.has_key?(:floor_dist)
    self.scr_dist = opts[:scr_dist] if opts.has_key?(:scr_dist)
    self.y_diff = opts[:y_diff] if opts.has_key?(:y_diff)
    self.v_offset = opts[:v_offset] if opts.has_key?(:v_offset)
    self.alpha = opts[:alpha] if opts.has_key?(:alpha)
    z = (opts.has_key?(:z))? opts[:z] : 0
    angle = (opts.has_key?(:angle))? opts[:angle] : 0
    vflip = 1
    if opts.has_key?(:vflip)
      vflip = (opts[:vflip])? -1 : 1
    end

    self.shader.floor_distance = self.floor_dist
    self.shader.screen_distance = self.scr_dist
    self.shader.y_diff = self.y_diff
    self.shader.v_offset = self.v_offset
    self.shader.alpha = self.alpha

    # Shader ¤¬»²¾È¤¹¤ë²èÁü¤ò RenderTarget ¤ËºîÀ®
    self.rt.draw_tile(0, 0, [[0]], [self.image],
                      scrl_x, scrl_z, self.tilew, self.tileh).update

    # Shader ¤ò»È¤Ã¤ÆÆ©»ëÊÑ´¹¤·¤Ä¤ÄÉÁ²è
    wh = self.rt_w / 2
    Window.drawEx(x - wh, y, self.rt, :shader=>self.shader,
                  :scaley=>self.rt_scaley * vflip,
                  :centerx=>wh, :centery=>0,
                  :z=>z, :angle=>angle)
  end

  #
  # Æ°ºî³ÎǧÍÑ¡£¥°¥ê¥Ã¥É²èÁü¤òÀ¸À®¤·¤ÆÊÖ¤¹
  #
  # @param [int] w ²èÁü²£Éý
  # @param [int] h ²èÁü½ÄÉý
  # @return [Image] À¸À®¤·¤¿²èÁü
  #
  def self.get_grid_image(w, h)
    image = Image.new(w, h, [0, 255, 0])
    image.box_fill(0, 0, w / 2 - 1, h / 2 - 1, [150,250,150])
    image.box_fill(w / 2, 0, w - 1, h / 2 - 1, [100,250,100])
    image.box_fill(0, h / 2, w / 2 - 1, h - 1, [200,250,200])
    image.box_fill(w / 2, h / 2, w - 1, h - 1, [0,220,0])
    return image
  end
end

# ----------------------------------------
# °Ê²¼¤Ï¡¢»ÈÍÑÎã

if __FILE__ == $0
  image = Image.load("lena.png")
  bg = FloorRaster.new(image)
  x = 0
  z = 0
  Window.loop do
    break if Input.keyPush?(K_ESCAPE)
    x += 8
    z += 2
    bg.draw(320, 240, x, z)
  end
end

#2 [anime] ¥¦¥¤¥Ã¥Á¥¯¥é¥Õ¥È¥ï¡¼¥¯¥¹¤ÎED±ÇÁü¤¬µ¤¤Ë¤Ê¤ë

¶ÊÄ´¤¬¤Ê¤ó¤À¤«ÌÌÇò¤¯¤Æ¡£¤Þ¤¿¡¢ED±ÇÁüÃæ¤Î¥­¥ã¥é¤ÎÆ°¤­¤¬¶Ê¤È¥Ô¥Ã¥¿¥ê¹ç¤Ã¤Æ¤¤¤Æ¡¢¤È¤Æ¤â¹¥¤ß¤Ê¤Î¤Ç¤¹¤¬¡£

¤Õ¤È¡¢³Æ¥«¥Ã¥È¤ÎÀÚ¤êÂؤï¤ë¥¿¥¤¥ß¥ó¥°¤¬¡¢¶Ê¤Î¥½¥ì¤è¤ê¿ô¥Õ¥ì¡¼¥àÁ᤯ÊѤï¤Ã¤Æ¤ë¤³¤È¤Ëµ¤ÉÕ¤¤¤¿¤ê¡£¹Í¤¨¤Æ¤ß¤¿¤é¡¢¥­¥ã¥é¤¬²¿¤«¤·¤é¶Ê¤Ë¹ç¤ï¤»¤Æ¥¢¥¯¥·¥ç¥ó¤ò¤¹¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢¤½¤Î¥¢¥¯¥·¥ç¥ó¤ò¤¹¤ëÁ°¤Î¡¢²¿¤â¤·¤Æ¤Ê¤¤¾õÂÖ¤ò¡¢»öÁ°¤Ë¸«¤»¤Æ¤ª¤«¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤ï¤±¤Ç¡£¸Î¤Ë¡¢¿ô¥Õ¥ì¡¼¥àÁ°¤Ë¥«¥Ã¥È¤òÀÚ¤êÂؤ¨¤Æ¤ª¤«¤Ê¤¤¤È¤¤¤«¤ó¤Î¤À¤Ê¤È¡£

¤Ç¡¢¤³¤ì¤Ï¾¡¼ê¤ÊÁÛÁü¤Ê¤Î¤Ç¡¢¤â¤·¤«¤·¤¿¤é³°¤·¤Æ¤ë¤«¤â¤·¤ì¤Ê¤¤¤±¤É¡¢°ìÉôʬ¤À¤±¤½¤¦¤¤¤¦ÀÚ¤êÂؤ¨Êý¤Ë¤·¤Æ¤¤¤ë¤È¡¢Â¾¤Î¥«¥Ã¥È¤ÎÀÚ¤êÂؤ¨Éôʬ¤Ç´¶³ÐŪ¤Ë¹ç¤ï¤Ê¤¯¤Ê¤Ã¤Æ¤¯¤ë¤Î¤Ç¡¢Á´ÂΤòÄ̤·¤Æ¥«¥Ã¥È¤ÎÀÚÂØ¥¿¥¤¥ß¥ó¥°¤òÄ´Àᤷ¤ÆÁ᤯¤·¤Æ¤ë¡¢¤Î¤«¤Ê¤È¡£

¤³¤¦¤¤¤¦¤È¤³¤í¤Ç¤â¡¢¥×¥í¤Ï¡¢ºÙ¤«¤¤µ»¡¦¹©ÉפòÀ¹¤ê¹þ¤ó¤Ç¤ë¤Î¤À¤Ê¡Ä¡£¤Ê¤É¤È¡¢´¶¿´¤·¤¿¼¡Âè¡£

#3 [tv] schola ²»³Ú¤Î³Ø¹»¡¢¥·¡¼¥º¥ó4¤¬»Ï¤Þ¤Ã¤Æ¤¿

º£²ó¤ÏÅŻҲ»³Ú¤¬¥Æ¡¼¥Þ¡£Á°²ó¤Ï¥Æ¥ë¥ß¥ó¤ò±éÁÕ¤·¤Æ¡¢º£²ó¤Ï¥ª¡¼¥×¥ó¥ê¡¼¥ë¤Î¥Æ¡¼¥×¤òÀÚ¤êÄ¥¤ê¤·¤Æ¡Ä¡£¤½¤·¤Æ¼¡²ó¤Ï¡¢¤¤¤è¤¤¤è¥·¥ó¥»¥µ¥¤¥¶¤Î¾Ò²ð¡£

µµÅIJ»³ÚÀìÌç³Ø¹»¤âÌÌÇò¤«¤Ã¤¿¤±¤É¡¢schola¤â¤ä¤Ã¤Ñ¤êÌÌÇò¤¤¤Ê¤È¡£¤³¤¦¤¤¤¦ÈÖÁȤϡ¢¤¢¤ê¤¬¤¿¤¤¡Ä¡£

2014/01/17(¶â) [nǯÁ°¤ÎÆüµ­]

#1 [dxruby] STG¥µ¥ó¥×¥ë¤òÏ®¤Ã¤Æ¤¿¤ê

STG¥µ¥ó¥×¥ë¤ò¤Á¤ç¤³¤Á¤ç¤³Ï®¤Ã¤Æ¤¤¤ë¤È¤³¤í¡£

¡ý ¥·¡¼¥ó´ÉÍýÉôʬ¤òÄɲÃÃæ¡£ :

¥²¡¼¥à¥ª¡¼¥Ð¡¼¤Î»ÅÍͤòÆþ¤ì¤ë¤¿¤á¤Ë¤Ï¡¢¾¯¤Ê¤¯¤È¤â¥¿¥¤¥È¥ë²èÌ̤°¤é¤¤¤Ïɬ¿Ü¡£¤Ê¤Î¤Ç¡¢¥·¡¼¥ó´ÉÍý¤òÄɲä·¤¿¤ê¡£

¡Ö¤¨¤Ã¡© ¤É¤¦¤·¤Æ¥²¡¼¥à¥ª¡¼¥Ð¡¼¤òÆþ¤ì¤ë¤¿¤á¤Ë¡¢¥¿¥¤¥È¥ë²èÌ̤¬É¬ÍפʤΡ©¡×¤È»×¤¦¿Í¤âµï¤ë¤«¤â¤·¤ì¤Ê¤¤¡Ä¡£

¥²¡¼¥à¥ª¡¼¥Ð¡¼¤Ë¤Ê¤Ã¤¿¤é¡¢¼¡¤Ï¤É¤ó¤Ê²èÌ̤ˤʤ뤫¡¢»×¤¤½Ð¤¹¤Ù¤·¡£¤¨¤Æ¤·¤Æ¡¢¥é¥ó¥­¥ó¥°ÆþÎϲèÌ̤«¡¢¥¿¥¤¥È¥ë²èÌ̤ËÌá¤Ã¤Æ¤­¤Þ¤¹¤è¤Í¡£

¤³¤ì¤¬¤â¤·¡¢¥¿¥¤¥È¥ë²èÌ̤¹¤é¤Ê¤¤¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¥²¡¼¥à¥ª¡¼¥Ð¡¼»ÅÍͤ⸺ߤǤ­¤Ê¤¤¡£¡Ö¶èÀÚ¤ê¡×¤¬°ìÀÚ̵¤«¤Ã¤¿¤é¡¢¥²¡¼¥à¥ª¡¼¥Ð¡¼¤È¸À¤¦¶èÀÚ¤ê¤â¡¢¤¢¤êÆÀ¤Ê¤¤¡£

¸Î¤Ë¡¢¥²¡¼¥à¥ª¡¼¥Ð¡¼»ÅÍͤòÆþ¤ì¤ë¤¿¤á¤Ë¤Ï¡¢¥¿¥¤¥È¥ë²èÌ̤°¤é¤¤¤Ïɬ¿Ü¡£¤½¤·¤Æ¥¿¥¤¥È¥ë²èÌ̤ò½Ð¤¹¤¿¤á¤Ë¤Ï¡¢¥·¡¼¥ó´ÉÍý¤¬É¬Íס£¤Ä¤Þ¤ê¡¢¥²¡¼¥à¥ª¡¼¥Ð¡¼»ÅÍͤòÆþ¤ì¤ë¤¿¤á¤Ë¤Ï¡¢¥·¡¼¥ó´ÉÍý¤ò¼ÂÁõ¤·¤Ê¤¤¤È¤¤¤«¤ó¤ï¤±¤Ç¡£

¤µ¤Æ¤ª¤­¡¢¥·¡¼¥ó´ÉÍý¤ÎÃæ¿È¤À¤±¤É¡£¼«Ê¬¤ÏƬ¤¬°­¤¤¤Î¤Ç¡¢switch¡Ácase ¤Ç ¡½¡½ Ruby¤Ê¤é case¡Áwhen ¤Ç¤ä¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¤¬¡£¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤È¤ä¤é¤ò°Õ¼±¤·¤¿¾ì¹ç¤Ï¡¢¤³¤ì¤Ï˾¤Þ¤·¤¯¤Ê¤¤¤Î¤À¤í¤¦¤Ê¤È¡£¤Þ¤¢¡¢¤½¤Î¤¢¤¿¤ê¤Ïº£¸å¤Î²ÝÂê¤Ã¤Æ¤³¤È¤Ç¡£

¡ý ¥Õ¥¡¥¤¥ë¤òʬ³äÃæ¡£ :

º£¤Þ¤Ç¡¢°ì¤Ä¤Î¥Õ¥¡¥¤¥ë¤Ë¤º¤é¤º¤é¤È½ñ¤¤¤Æ¤¤¤¿¤±¤É¡¢¤µ¤¹¤¬¤Ë¸«Ä̤·¤¬°­¤¯¤Ê¤Ã¤Æ¤­¤¿¤Î¤Ç¡¢³Æ¥¯¥é¥¹¤òÊÌ¥Õ¥¡¥¤¥ë¤Ë¤¹¤ëºî¶È¤â¤·»Ï¤á¤¿¤ê¡£

¤·¤«¤·¡¢¤Á¤ç¤Ã¤ÈǺ¤ó¤Ç¤·¤Þ¤¦Éôʬ¤¬¡£¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Î°·¤¤¤ò¤É¤¦¤¹¤Ù¤­¤«¡¢¤ß¤¿¤¤¤Ê¡£

¤½¤Î¼ê¤Î¥²¡¼¥à¤Ë¤ª¤¤¤Æ¤Ï¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Ã¤Æ¤É¤¦¤·¤Æ¤âɬÍפˤʤꤽ¤¦¤Êµ¤¤¬¤·¤Æ¤¤¤Æ¡£

Î㤨¤Ð¡¢Å¨¤¬¥×¥ì¥¤¥ä¡¼¤òÁÀ¤Ã¤ÆÃƤò·â¤Ä¡¢¤Æ¤Ê¾ì¹ç¡£Å¨¤Ï¡¢¥×¥ì¥¤¥ä¡¼ºÂɸ¤ò¸«¤Æ¡¢³ÑÅÙ¤ò·è¤á¤Æ¡¢ÃÆ¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹À¸À®»þ¤·¤Æ¡¢¤É¤³¤«¤ËÅÐÏ¿¤¹¤ë¡¢¤È¤¤¤¦½èÍý¤ò¤¹¤ë¤Î¤À¤±¤É¡£¥×¥ì¥¤¥ä¡¼ºÂɸ¤Ë¤·¤í¡¢¥ª¥Ö¥¸¥§¥¯¥È¤òÅÐÏ¿¤¹¤ë²¿¤«¤Ë¤·¤í¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Ë¶á¤¤¾õÂ֤ˤʤäƤʤ¤¤È¡¢½èÍý¤¬¤Ç¤­¤Ê¤¤¤ï¤±¤Ç¡£

¡Ö¼«Ê¬¤ÎºÂɸ¤È¥×¥ì¥¤¥ä¡¼ºÂɸ¤«¤é³ÑÅÙ¤òÊÖ¤¹¡×¥á¥½¥Ã¥É¤ä¡¢¡ÖȯÀ¸ºÂɸ¤ä³ÑÅÙ¤òÍ¿¤¨¤ë¤ÈÃƤòÀ¸À®¡¦ÅÐÏ¿¤·¤Æ¤¯¤ì¤ë¡×¥á¥½¥Ã¥É¤òÍÑ°Õ¤¹¤ì¤Ð¤¤¤¤¤À¤í¤¦¡¢¤È¸À¤ï¤ì¤½¤¦¤À¤±¤É¡£¤½¤Î¥á¥½¥Ã¥É¤Ï¡¢¿§¤ó¤Ê¼ïÎà¤ÎŨ¤«¤é¸Æ¤Ð¤ì¤ë¤Î¤Ç¡¢·ë¶É¡¢ÊÑ¿ô¤¬¥°¥í¡¼¥Ð¥ë¤À¤Ã¤¿¤¢¤¿¤ê¤¬¡¢¥á¥½¥Ã¥É¤¬¥°¥í¡¼¥Ð¥ë(?)ÁêÅö¤Ë¤Ê¤ê¤Þ¤·¤¿¤è¡¢¤°¤é¤¤¤Î°ã¤¤¤·¤«Ìµ¤¤¤À¤í¤¦¤È¡£

¤³¤¦¤¤¤¦¾ì¹ç¤Ï¡¢¤É¤¦¤¤¤¦½ñ¤­Êý¡¢¤Þ¤È¤áÊý¤ò¤¹¤ë¤Î¤¬¡¢¥Ù¥¿¡¼¤Ê¤ó¤À¤í¤¦¡Ä¡© _Singleton ¤ò»È¤¦¤È¤«¡©

2014/01/18(ÅÚ) [nǯÁ°¤ÎÆüµ­]

#1 [anime] ¡ÖÀ¸Å̲ñÌò°÷¶¦¡ö¡×¤ò»ëÄ°

±ÇÁüÃæ¤Î¡¢ÉÁ¤­Ê¸»ú¡© ½ñ¤­Ê¸»ú¡©¤Î»È¤¤Êý¤Ë´¶¿´¡£¤ª¤½¤é¤¯¤ÏÌ¡²è¸¶ºî¤Î³Æ¥³¥Þ¤ÎºÆ¸½¤Ê¤Î¤«¤Ê¤È»×¤¦¤Î¤À¤±¤É¡£¤³¤³¤Þ¤ÇÅ°ÄìŪ¤ËÁÞÆþ¤·¤Æ¤¯¤ë¤È¡¢¤¢¤ë¼ï¡¢¥¹¥¿¥¤¥ê¥Ã¥·¥å¤À¤Ê¤È¡£¤µ¤é¤Ë¡¢¤½¤ì¤¾¤ì¤ÎÉÁ¤­Ê¸»ú¤Ëɬ¤º¥â¡¼¥·¥ç¥ó¤òÉղ䷤Ƥ빴¤ê¶ñ¹ç¤â¹¥°õ¾Ý¡£¤Þ¤¢¡¢ÆâÍƤϲ¼¥Í¥¿¤À¤é¤±¤Ê¤Î¤Ç¡¢°ìÈ̤ÎÊý¤Ë¤ÏÁ´¤¯¥ª¥¹¥¹¥á¤Ç¤­¤Ê¤¤¤Î¤Ç¤¹¤¬¡Ä¡£

ÀΡ¢º´Æ£½ç°ì´ÆÆĤ¬¡¢¡Ö¤­¤ó¤®¤çÃí°ÕÊ󡪡ס֥»¡¼¥é¡¼¥à¡¼¥ó¡×Åù¤ÎÃæ¤ÇÌ¡Éä¤ò³èÍѤ·¤Æ¡¢¤½¤ì¤¬¥¢¥Ë¥á¤Îɽ¸½¤È¤·¤Æ¤â¥Õ¥Ä¡¼¤ËÄêÃ夷¤Á¤ã¤Ã¤¿¡¢¤Æ¤Ê¤³¤È¤¬¤¢¤Ã¤¿¤ï¤±¤À¤±¤É¡£¥¢¥Ë¥á¤Ë¤ª¤¤¤Æ¤Ï¡¢Ì¡Éä¤Î³èÍѤ«¤é¡¢¹¹¤ËÉÁ¤­Ê¸»ú¤Þ¤Ç³èÍѤµ¤ì¤ë¤È¤³¤í¤Þ¤Ç¤­¤¿¤Î¤«¤Ê¡¢¤Æ¤Ê¤³¤È¤ò¹Í¤¨¤¿¤ê¡£¤Þ¤¿¡¢¼Â¼Ì¤¸¤ã¤Á¤ç¤Ã¤È¤ä¤ê¤Å¤é¤¤¡¦¸«¤¿Ìܤ¬Ì¡²è¤ËÈæ³ÓŪ¶á¤¤¥¢¥Ë¥á¤È¤¤¤¦±ÇÁüɽ¸½¤À¤«¤é¤³¤½»È¤¨¤ë¸«¤»Êý¡¢¤È¤â»×¤¦¤ï¤±¤Ç¡£¤À¤Ã¤¿¤é³èÍѤ·¤Ê¤­¤ã¤â¤Ã¤¿¤¤¤Ê¤¤¡¢¤«¤â¤·¤ì¤Ê¤¤¤Ê¡¢¤È¤â¡£

Æä˴¶¿´¤·¤¿¤Î¤Ï¡¢¡Ö¥Æ¥£¥Ã¥·¥å»ý¤Ã¤Æ¤Ê¤¤¡©¡×¤ÈÀ¼Í¥¤µ¤ó¤ËÃý¤é¤»¤ë¤ÈƱ»þ¤Ë¡¢¡ÖÀÚ¤ì¤Á¤ã¤Ã¤Æ¡×¤È¤¤¤¦ÉÁ¤­Ê¸»ú¤òʤ٤Ƥ¤¤¿¥«¥Ã¥È¡£¡Ö¥Æ¥£¥Ã¥·¥å»ý¤Ã¤Æ¤Ê¤¤¡©¡×¤È¤¤¤¦Âæ»ì¤òÃý¤ë¼Â»þ´Öʬ¤Ç¡¢¡ÖÀÚ¤ì¤Á¤ã¤Ã¤Æ¡×¤È¤¤¤¦¾ðÊó¤Þ¤Ç¤âƱ»þ¤ËÅÁ¤¨¤Æ¤·¤Þ¤Ã¤¿ ¡½¡½ ľÎó¤Ç¤Ï¤Ê¤¯ÊÂÎó¤Ç¾ðÊóÅÁ㤷¤Æ¤¤¤¿¤ï¤±¤Ç¡£¤³¤ì¤¬¥Õ¥Ä¡¼¤Î±é½Ð²È¡¦µÓËܲȤʤ顢¡Ö¥Æ¥£¥Ã¥·¥å»ý¤Ã¤Æ¤Ê¤¤¡© ÀÚ¤ì¤Á¤ã¤Ã¤Æ¡×¤È¡¢¤½¤Î¤Þ¤ÞÃý¤é¤»¤Æ¤·¤Þ¤¦¤À¤í¤¦¤Ê¤È¡£·ë²Ì¡¢¼Â»þ´Ö¤¬Áý¤¨¤Æ¡¢¤ª¤½¤é¤¯¤ÏÌ¡²è¸¶ºî¤Ë¤¢¤ë¤Î¤Ç¤¢¤í¤¦¥Æ¥ó¥Ý¤ÎÎɤµ¤Ê¤ó¤Æ¤µ¤Ã¤Ñ¤êºÆ¸½¤µ¤ì¤º¤Ë´Ö±ä¤Ó¤·¤Æ¤·¤Þ¤¦¤Ï¤º¤Ç¡£

¤³¤¦¤¤¤¦»þ´Ö¤ÎÀÚ¤êµÍ¤áÊý¤Ï¡¢Ãý¤ë¤³¤È¤Ç¾ðÊó¤òÅÁ㤻¤¶¤ë¤òÆÀ¤Ê¤¤Íî¸ì¤äÌ¡ºÍ¤Ç¤Ï¼Â¸½¤Ç¤­¤Ê¤¤¤è¤Ê¤È¡Ä¡£¤Þ¤¿¡¢Á°½Ò¤Î¤È¤ª¤ê¡¢¼Â¼Ì±ÇÁüºîÉʤǤ⡢¤Á¤ç¤Ã¤ÈÆñ¤·¤¤¡£¤â¤·¤«¤¹¤ë¤È¡¢¥¢¥Ë¥á¤Ç¤·¤«¤Ç¤­¤Ê¤¤¸«¤»Êý¤«¤â¤·¤ì¤ó¡¢¤È¡£

ÆâÍƤϡ¢¤É¤³¤òÀÚ¤ê¼è¤Ã¤Æ¤â¡¢¼Â¤Ë¤¯¤À¤é¤Ê¤¤¤Î¤Ë¡Ä¡£¤·¤«¤·¡¢³Æ½ê¤Çµ»¤¬¶î»È¤µ¤ì¤Æ¤¤¤Æ¡¢¤³¤Î¥¢¥Ë¥á¡¢¥¹¥´¥¤ºî¤ê¤À¤Ê¤ÈÂçÊÑ´¶¿´¤·¤Þ¤·¤¿¡£ÊÙ¶¯¤Ë¤Ê¤ê¤Þ¤¹¡Ä¡£¤ä¡¢²¿¤ÎÊÙ¶¯¤À¤«Ê¬¤«¤ê¤Þ¤»¤ó¤±¤É¡£

#2 [dxruby] STG¥µ¥ó¥×¥ë¤òÏ®¤Ã¤Æ¤ë¤È¤³¤í

¥²¡¼¥à¥ª¡¼¥Ð¡¼¤Î»ÅÍͤޤǤÏÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤¿¡£

¤·¤«¤·¡¢¸«¤¿Ìܤϥ½¥ì¤Ã¤Ý¤¤¤Î¤Ë¡¢Å¨¤ÏÍð¿ô¤ÇȯÀ¸¤µ¤»¤Æ¤ë¤Î¤Ç¡¢¤Á¤Ã¤È¤âÌÌÇò¤¯¤Ê¤¤¡£¤ä¤Ã¤Ñ¤êŨȯÀ¸¥Æ¡¼¥Ö¥ë¤ò½ñ¤«¤Ê¤¤¤È¥À¥á¤«¤Ê¡£Å¨È¯À¸¥Æ¡¼¥Ö¥ë¤òºî¤ë¤Ê¤é¡¢ÃÏ·Á¥Þ¥Ã¥×¤âÍߤ·¤¯¤Ê¤ë¤Ê¤È¡£¡Ä¤³¤ÎºÝ¡¢¤½¤³¤Þ¤Ç¤ä¤Ã¤Æ¤·¤Þ¤ª¤¦¤«¡£

2014/01/19(Æü) [nǯÁ°¤ÎÆüµ­]

#1 [dxruby] STG¥µ¥ó¥×¥ë¤Î¥Þ¥Ã¥×²èÁü¤òºîÀ®Ãæ

EDGE2 ¤Ç¥É¥Ã¥È¤òÂǤäơ¢Tiled ¤Ç¥¿¥¤¥ë¥Þ¥Ã¥×¤È¤·¤ÆÇÛÃÖ¡£

¡ý ¥Þ¥Ã¥×¥¨¥Ç¥£¥¿¤Ë¤Ä¤¤¤Æ¡£ :

Google¤Ç¡¢ _¡Ötile editor¡×¤Ç²èÁü¸¡º÷ ¤¹¤ë¤È¡¢¤½¤ì¤é¤·¤¤¥Þ¥Ã¥×¥¨¥Ç¥£¥¿¤¬¤¿¤¯¤µ¤ó½Ð¤Æ¤¯¤ë¤è¤¦¤Ç¡£¸Ä¿ÍŪ¤Ë¤Ï°Ê²¼¤¬µ¤¤Ë¤Ê¤Ã¤¿¤ê¡£

_tIDE (Tilemap Integrated Development Environment) - Home
_Tile Studio

¤Ê¤ó¤À¤«XNA¤È¤ä¤é¤ÎÍí¤ß¤Çºî¤é¤ì¤Æ¤ë»öÎ㤬¿¤¤¤è¤¦¤Ë¸«¼õ¤±¤é¤ì¤¿¤ê¡£ÅöÁ³¡¢WindowsÍѤ¬Â¿¤¤¡£

2014/01/20(·î) [nǯÁ°¤ÎÆüµ­]

#1 [cg_tools] Tile Studio ¤ò¾¯¤·»îÍÑ

_Tile Studio

¡ý tIDE¤â¾¯¤·»îÍÑ¡£ :

_tIDE (Tilemap Integrated Development Environment) - Home
  • Êݸ¥Õ¥¡¥¤¥ë¡¢.tide ¤ò³«¤¤¤Æ¤ß¤¿¤é¡¢xml¥Õ¥¡¥¤¥ë¤Ã¤Ý¤¤´¶¤¸¤À¤Ã¤¿¡£¤³¤ì¤Ê¤é¾¤Î¥¢¥ì¥³¥ì¤ËήÍѤǤ­¤½¤¦¡£
  • Á´ÈÌŪ¤ËÆ°ºî¤¬ÃÙ¤¤¡£Î㤨¤Ð¡¢¥³¥Ô¡¼¡õ¥Ú¡¼¥¹¥È¤ò¤·¤¿¤é¡¢¿ôÉ÷ФäƤ«¤é½èÍý¤¬¹Ô¤ï¤ì¤¿¡£¥Õ¥ê¡¼¥º¤·¤¿¤Î¤«¤È´ª°ã¤¤¤¹¤ë¤°¤é¤¤¤ËÃÙ¤¤¡£
  • BG¤Î°ìÉô¤ò¥¢¥Ë¥á¡¼¥·¥ç¥ó¤µ¤»¤ë»ÅÍͤޤÇÆþ¤Ã¤Æ¤ë¤¢¤¿¤ê¤Ï¡¢¤Á¤ç¤Ã¤ÈÌÌÇò¤½¤¦¤Êµ¤¤¬¤¹¤ë¡£xTile PC Demo v2.0.7 ¤òDL¡¦¼Â¹Ô¤¹¤ë¤È¡¢¤½¤ÎÍͻҤ¬³Îǧ¤Ç¤­¤ë¡£

DXRuby¤Ç¥¿¥¤¥ë¥Þ¥Ã¥×BG¤Î°ìÉô¤ò¥¢¥Ë¥á¡¼¥·¥ç¥ó¤µ¤»¤ë¤È¤·¤¿¤é¡Ä¤É¤¦¤¤¤¦¼ê¤¬¤¢¤ë¤Î¤À¤í¤¦¡£¥Þ¥Ã¥×¤ÎʤӤò´ÉÍý¤·¤Æ¤ëÇÛÎóÆâ¤ò½ñ¤­´¹¤¨¤ì¤Ð¤Ç¤­¤ë¤Î¤«¤Ê¡© ¤½¤ì¤À¤±¤¸¤ã̵Íý¡©

#2 [prog][dxruby] ÃÏ·Á¥¢¥¿¥ê¤Ë¤Ä¤¤¤Æ¥è¥µ¥²¤Êµ­»ö¤ËÁø¶ø

¥Þ¥Ã¥×¥¨¥Ç¥£¥¿¤½¤Î¾¤Ç¸¡º÷¤·¤Æ¤¿¤é¡¢ÃÏ·Á¥¢¥¿¥ê½èÍý¤Ë¤Ä¤¤¤Æ²òÀ⤷¤Æ¤ë±Ñʸµ­»ö¤ËÁø¶ø¡£

_The guide to implementing 2D platformers | Higher-Order Fun

2D¥²¡¼¥à¤Ë¤ª¤±¤ëÃÏ·Á¥¢¥¿¥êȽÄê¤Ë¤Ä¤¤¤Æ¡¢ÂçÊ̤·¤Æ4¼ïÎढ¤ë¤è¡¢¤È²òÀ⤷¤Æ¤ë¡£¼Ð¤á¾²¤ä¡¢Æ°¤¯¾²¤Ë¤Ä¤¤¤Æ¤â¾¯¤·²òÀ⤷¤Æ¤ë¤¢¤¿¤ê¡¢ÊÙ¶¯¤Ë¤Ê¤ê¤½¤¦¡£

¤ä¤Ã¤Ñ¤ê¡¢¥½¥Ë¥Ã¥¯¤ÎµóÆ°¤Ï´Êñ¤ËÀâÌÀ¤Ç¤­¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¤é¤·¤¤¡£

#3 [dxruby] STG¥µ¥ó¥×¥ë¤Ç¥Þ¥Ã¥×ɽ¼¨¤Ç¤­¤ë¤è¤¦¤Ë¤·¤¿

Tiled ¤ÇºîÀ®¤·¤¿ .tmx ¤òÆɤ߹þ¤ó¤Ç¡¢É½¼¨¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£ _2013/12/25¤ÎÆüµ­ ¤ËÃÖ¤¤¤È¤¤¤¿¡¢dxrbtmx.rb ¤È bgatari.rb ¤ò»È¤Ã¤Æ¡¢.tmx ¤òɽ¼¨¡¢¤«¤Ä¡¢BG¥¢¥¿¥ê¤ò¼è¤Ã¤Æ¤ß¤¿¤ê¡£

¤Ä¤¤¤Ç¤Ë¡¢¥Þ¥Ã¥×¤Ë Object Layer ¤òÄɲ䷤ơ¢Å¨¤ÎȯÀ¸°ÌÃÖ¤ò»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤¿¤ê¡£dxrtmx.rb ¤Ë¡¢°Ê²¼¤Î¤è¤¦¤Ê½èÍý¤òÄɲ䷤ơ¢Object Layer ¤Î¾ðÊó¤òÆɤ߼è¤Ã¤Æ¤ß¤¿¤ê¤·¤Æ¡£
  #
  # Object Layer ¾ðÊó¤òÇÛÎó¤Ë¤·¤ÆÊÖ¤¹
  #
  # @return [Array] Object Layer ¾ðÊó¤ÎÇÛÎó
  #
  def get_object_group_info
    a = []
    @tmx.object_groups.each do |objg|
      b = []
      objg.objects.each do |o|
        b.push({:name=>o.name, :x=>o.x, :y=>o.y})
      end
      a.push({:layername=>objg.name, :data=>b})
    end
    return a
  end
¤¿¤À¡¢Å¨¤Î¼ïÎࡦ¥×¥í¥Ñ¥Æ¥£¤ò¡¢¤É¤Î¤è¤¦¤Ë»ØÄꤷ¤¿¤é¤¤¤¤¤Î¤«¡¢¤½¤Î¤¢¤¿¤ê¤Ç¾¯¤·Çº¤ó¤Ç¤¤¤¿¤ê¤â¤·¤Æ¡£º£¸½ºß¡¢ _Ruby¤Îtmx¥é¥¤¥Ö¥é¥ê ¤Ï¡¢Object Layer̾¤È¡¢³ÆObject ¤Î̾Á°(.name)¡¢ºÂɸ(.x ¤È .y)¤ò¼èÆÀ¤Ç¤­¤ë¤³¤È¤Ïʬ¤«¤Ã¤Æ¤ë¤Î¤Ç¡¢¤È¤ê¤¢¤¨¤ºÊ¸»úÎó¤Ç¼ïÎàȽÄꤷ¤Á¤ã¤Ã¤Æ¤ë¤±¤É¡£¥×¥í¥Ñ¥Æ¥£¤â»²¾È¤Ç¤­¤ë¤Ê¤é¡¢¤½¤³¤Ç»ØÄꤷ¤¿¤Û¤¦¤¬Îɤµ¤½¤¦¤Ê¡£

ºÇ¸å¤Ë¥¹¥¯¥í¡¼¥ë¤¬»ß¤Þ¤ë¤è¤¦¤Ë¤·¤¿¤Î¤À¤±¤É¡£¤½¤¦¤Ê¤ë¤È¡¢¤ä¤Ã¤Ñ¤êºÇ¸å¤Ë¥Ü¥¹Å¨¤¬½Ð¤Æ¤³¤Ê¤¤¤È¡¢¥²¡¼¥à¤Ã¤Ý¤¯¤Ê¤¤¤Ê¤È¡Ä¡£¤³¤ÎºÝ¡¢¤½¤³¤âºî¤Ã¤Æ¤·¤Þ¤ª¤¦¤«¡Ä¡£¤·¤«¤·¡¢»ÅÍͤ¬»×¤¤¤Ä¤«¤Ê¤¤¡Ä¡£

2014/01/21(²Ð) [nǯÁ°¤ÎÆüµ­]

#1 [anime] ¥Ð¥Ç¥£¡¦¥³¥ó¥×¥ì¥Ã¥¯¥¹2Ïäò»ëÄ°

¶õÃæÀï±ÇÁü¤¬À¨¤¤¤Ê¤¢¡Ä¡£ÇطʤË3DCG¤ò»È¤¦¤È¡¢¤³¤ó¤Ê¤Ë¤â¶õ´Ö¤¬´¶¤¸¤é¤ì¤ë±ÇÁü¤Ë¤Ê¤ë¤Î¤«¤È´¶¿´¤·¤¿¤ê¡£ ¸«¤Æ¤¤¤Æ»×¤ï¤º¡Ö¤ª¤ª¤¦¡Ä¡×¤ÈÓ¹¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£¤½¤ì¤Û¤ÉÆñ¤·¤¤»È¤¤Êý¤¸¤ã¤Ê¤¤¤À¤í¤¦¤ÈÁÛÁü¤¹¤ë¤Î¤À¤±¤É¡¢ÆÀ¤é¤ì¤ë¸ú²Ì¤ÏÀäÂç¤À¤Ê¤È¡£¤³¤ì¤Ï¥³¥ó¥Æ¤òÉÁ¤¤¤¿¿Í¤¬¡Öµ»Í­¤ê¡×¤Ê¤ó¤À¤í¤¦¤«¡£¤½¤ì¤È¤â±é½Ð¤Î¿Í¤¬¡Öµ»Í­¤ê¡×¤Ê¤ó¤À¤í¤¦¤«¡£

¡ý ¼ç¿Í¸ø¤¬µðÂç¥í¥Ü¥Ã¥È¤òÆ°¤«¤¹¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤¿ÀßÄê¤Ë¤Ä¤¤¤Æ¡£ :

¥«¥Ã¥×¥ê¥ó¥°¤ò¤¹¤ë¤È¡¢Áê¼ê¤Î»ý¤Ã¤Æ¤ë Ã챤ò¶¦Í­¤Ç¤­¤ë¤È¤¤¤¦ÀßÄê¤ò¸«¤Æ¡¢¤Ê¤ó¤À¤«¥Ñ¥·¥Õ¥£¥Ã¥¯¡¦¥ê¥à¤òÏ¢ÁÛ¤·¤¿¤ê¡£¥¢¥ì¤«¤é¤Î¥¤¥ó¥¹¥Ñ¥¤¥¢¤Ê¤Î¤«¤Ê¤È¼Ù¿ä¡£¤â¤Ã¤È¤â¡¢¥ÉÁǿͤμç¿Í¸ø¤¬Á᡹¤Ë³èÌö¤¹¤ë¤¿¤á¤ÎÀßÄê¤È¤·¤Æ¤ÏÊØÍø¤À¤Ê¤È´¶¿´¤·¤¿¤ê¤â¤·¤Æ¡£¤³¤ÎÀßÄê¤Ï¡¢¤«¤Ê¤êÈþÌ£¤·¤¤µ¤¤¬¤·¤Þ¤¹¡£

°ìÈ̿ͤǤ¢¤Ã¤¿¤Ï¤º¤Î¼ç¿Í¸ø¤¬¡¢µðÂç¥í¥Ü¥Ã¥È¤ò¥µ¥¯¥µ¥¯Æ°¤«¤·¤Æ³èÌö¤¹¤ë¡¢¤Æ¤ÊÃˤλҤδê˾¤Ã¤Ý¤¤Å¸³«¤ò¼Â¸½¤¹¤ë¤¿¤á¤Ë¡¢¥í¥Ü¥Ã¥È¥¢¥Ë¥á¤Ï¿§¡¹ÀßÄê¤ò¹©Éפ·¤Æ¤ë¤ï¤±¤À¤±¤É¡£Î㤨¤Ð1st¥¬¥ó¥À¥à¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ÊÀßÄ꤬À¹¤ê¹þ¤ó¤Ç¤¢¤Ã¤Æ¡£
  • ¥¢¥à¥í¤Ïµ¡³£Ï®¤ê¤¬Âç¹¥¤­¤Ê¥ª¥¿¥¯¾¯Ç¯¡£
  • ¥¢¥à¥í¤ÎÉã¿Æ¤Ï¡¢MS¤Î³«È¯¼Ô¡£¤ª¤½¤é¤¯²È¤Ë¤Ï¡¢´ðÁäò³Ø¤Ù¤ë»ñÎÁ¡¦½ñÀÒ¤¬¤½¤³¤½¤³¤¢¤Ã¤Æ¡¢¥¢¥à¥í¤Ï¤½¤ì¤òÌܤˤ·¤Æ¤¤¤¿¤Ï¤º¡£
  • ¥¬¥ó¥À¥à¤Ë¤Ï¥Þ¥Ë¥å¥¢¥ë¤¬¤Ä¤¤¤Æ¤ë¡£
  • ¥¬¥ó¥À¥à¤Ï³Ø½¬·¿¥³¥ó¥Ô¥å¡¼¥¿¤òÀѤó¤Ç¤¤¤ë¤Î¤Ç¡¢¼¡Âè¤ËÀ­Ç½¤¬¾å¤¬¤Ã¤Æ¤¤¤¯¡£
¡Ö¤³¤ó¤À¤±Íýͳ¤¬¤¢¤ì¤Ð¡¢Æ°¤«¤·¤Æ¤â¤ª¤«¤·¤¯¤Ê¤¤¤À¤í¡©¡×¤È¡£

FSS¡¢¤È¤¤¤¦¤«¥¨¥ë¥¬¥¤¥à¤¢¤¿¤ê¤Ï¡¢µðÂç¥í¥Ü¥Ã¥È¤òÆ°¤«¤¹¤Ê¤ó¤Æ¿Í´Ö°ì¿Í¤¸¤ã̵Íý¤À¤í¤¦¤«¤é¡¢ºÙ¤«¤¤¥¢¥ì¥³¥ì¤ò¤ä¤Ã¤Æ¤¯¤ì¤ëÀìÍѤÎÀ¸ÂÎ¥³¥ó¥Ô¥å¡¼¥¿ºÜ¤»¤Þ¤·¤ç¤¦¤«¡¢¤È¡£¤Ç¡¢¤»¤Ã¤«¤¯ºÜ¤»¤ë¤Ê¤é¡¢²Ä°¦¤¤½÷¤Î»Ò¤¬¤¤¤¤¤è¤Í¡¢¤È¡£¤Æ¤Ê¤ï¤±¤Ç¡¢¥Õ¥¡¥Æ¥£¥Þ¤È¤¤¤¦ÀßÄ꤬½ÐÍè¾å¤¬¤Ã¤Æ¡¢¤½¤³¤«¤é¹¹¤Ë¡¢¥Ñ¥¤¥í¥Ã¥È¤È¥Õ¥¡¥Æ¥£¥Þ¤Î´Ø·¸¡¢¤ß¤¿¤¤¤ÊÊ̤Ο³«¤â¸«¤»¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¯¤ï¤±¤Ç¡£¡Ä¤¤¤ä¡¢¥¢¥ì¤Ï¡¢µðÂç¥í¥Ü¥Ã¥È¤Ë½÷¤Î»Ò¤òºÜ¤»¤¿¤¤¤¬¤¿¤á¤ËDZ¤ê½Ð¤·¤¿ÀßÄê¤Ç¡¢¹Í¤¨¤¿½çÈ֤ϵդ«¤â¤·¤ì¤ó¤±¤É¡£

¤È¤¤¤¦¤³¤È¤Ç¡£¡Ö¥ÉÁǿͤμç¿Í¸ø¤¬¡¢µðÂç¥í¥Ü¥Ã¥È¤ò¤¤¤­¤Ê¤ê¥¬¥ó¥¬¥óÆ°¤«¤·¤Á¤ã¤¦¤¿¤á¤Ë¤Ï¡×¤Æ¤ÊÀßÄê¤òÌÑÁÛ¤¹¤ë¤È¡¢¤Ê¤ó¤«Ê̤ΤȤ³¤í¤Ë¤â·Ò¤¬¤ëÌÌÇò¤¤°Æ¤¬½Ð¤Æ¤¯¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤Ê¤È¡£

¥Ð¥Ç¥£¡¦¥³¥ó¥×¥ì¥Ã¥¯¥¹¤â¡¢ Ã챤¬¶¦Í­¤µ¤ì¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢µ­²±¤â¶¦Í­¤µ¤ì¤Æ¤·¤Þ¤¦Å¸³«¤â¤¢¤êÆÀ¤ë¤À¤í¤¦¤·¡£¤¹¤ë¤È¡¢¤½¤ì¤Ï¤Ä¤Þ¤ê¡¢¼«Ê¬¤ÈÁê¼ê¤Î¼«²æ¤Î¶­³¦¤¬²ø¤·¤¯¤Ê¤Ã¤Æ¤­¤Æ¡¢¤ß¤¿¤¤¤Ê¹¶³Ìµ¡Æ°ÂâSAC¤Ã¤Ý¤¤Å¸³«¤À¤Ã¤Æ¡¢¤½¤Îµ¤¤Ë¤Ê¤ì¤Ð¤ä¤ì¤½¤¦¤À¤è¤Ê¤È¡£

Î㤨¤Ð¡¢¸µ¡¹¼ç¿Í¸ø¤ÏµðÆý¹¥¤­¤À¤Ã¤¿¤Î¤Ë¡¢¥«¥Ã¥×¥ê¥ó¥°¤·¤¿Áê¼ê¤¬¥í¥ê¥³¥ó¤À¤Ã¤¿¤â¤Î¤À¤«¤é¡¢½Ð·â¤ò·«¤êÊÖ¤¹¤¦¤Á¤Ëµ¤¤Å¤¤¤¿¤éÉÏÆý¹¥¤­¤Ë¤Ê¤Ã¤Æ¤Æ¶ìǺ¤¹¤ë¤È¤«¡£¤Ã¤ÆÊ̤ˤ½¤ó¤Ê¤³¤È¤Ç¤Ï¶ìǺ¤·¤Ê¤¤¤«¡Ä¡£

#2 [dxruby] STG¥µ¥ó¥×¥ë¤ÇˤÂæ¤òºî¤Ã¤Æ¤¿¤ê

ÃÏ·Á¤¬¥¹¥¯¥í¡¼¥ë¤·¤Æ¤¤¤¯¤Î¤À¤«¤é¡¢Ë¤Â椰¤é¤¤¤ÏÍߤ·¤¤¤è¤Ê¤È¡£¤Æ¤Ê¤ï¤±¤Ç¡¢EDGE2¤ÇˤÂæ¤Î¥É¥Ã¥È³¨¤òÉÁ¤¤¤Æ¡¢Å¨¤È¤·¤ÆÄɲá£

ÀΤÀ¤Ã¤¿¤é¡¢³ÑÅÙ¤¬°Û¤Ê¤ëˤÂæ¤Î¥É¥Ã¥È³¨¤ò²¿¥Ñ¥¿¡¼¥ó¤«ÉÁ¤¤¤Æ¡¢º¸±¦È¿Å¾ÉÁ²è¤ä¾å²¼È¿Å¾ÉÁ²è¤ò¤·¤Æ¡Á¤ß¤¿¤¤¤Ê¤³¤È¤ò¤·¤Æ¤¿¤À¤í¤¦¤±¤É¡£¤»¤Ã¤«¤¯²óžÉÁ²è¤¬»È¤¨¤ë¤Î¤À¤«¤é¡¢Ë¤ÂæÉôʬ¤ÈˤÅãÉôʬ¤òÊ̤Ëʬ¤±¤Æ¡¢Ë¤Åã¤À¤±¤ò²óž¤µ¤»¤ÆÂбþ¤·¤¿¤ê¡£

¤·¤«¤·¡¢¤³¤ì¤Ï¤³¤ì¤Ç¡¢¤Ê¤ó¤«¸«¤¿Ìܤ¬Èᤷ¤¤´¶¤¸¡£´°Á´¤Ë2D¤Ë¤Ê¤Ã¤Æ¤ë¤È¤¤¤¦¤«¡Ä¡£³ÑÅ٤ΰ㤦¥Ñ¥¿¡¼¥ó¤ò¤Á¤ã¤ó¤ÈÉÁ¤¯¤ä¤êÊý¤Ê¤é¡¢³ÑÅ٤ϰտÞÄ̤ꡢ¤«¤Ä¡¢¼êÁ°¤ò¸þ¤¤¤Æ¤ëˤÂæ¡¢¤ß¤¿¤¤¤Ê¤â¤Î¤âÉÁ¤±¤ë¤ï¤±¤Ç¡£ÀΤΥ²¡¼¥à¤Ï¡¢¤½¤¦¤¤¤¦¤È¤³¤í¤Ç¡¢À©¸Â¤òµÕ¤ËÍøÍѤ·¤Æ¡¢¸«¤¿ÌܤΥ´¡¼¥¸¥ã¥¹´¶¤ò½Ð¤·¤Æ¤¿¤Î¤«¤Ê¡¢¤Ê¤É¤Èº£º¢µ¤ÉÕ¤¤¤¿¤ê¡£

¼«µ¡¤òÁÀ¤Ã¤ÆˤÅ㤬²óž¤¹¤ë¤¢¤¿¤ê¤Î½èÍý¤Ç¡¢¾¯¤·Çº¤ó¤À¤ê¤â¤·¤Æ¡£360ÅÙ¤°¤ë¤°¤ë²ó¤ëˤÂæ¤Ç¤Ï¥¢¥ì¤Ê¤Î¤Ç¡¢Ë¤Å㤬²óž¤¹¤ë³ÑÅ٤ˤÏÀ©¸Â¤ò¤Ä¤±¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤Î¤À¤±¤É¡£¾å²¼º¸±¦¤ËÇÛÃÖ¤¹¤ë¤«¤é¡¢¤Á¤ÈƬ¤¬¤³¤ó¤¬¤é¤¬¤Ã¤Æ¤¯¤ë¡Ä¡£

2014/01/22(¿å) [nǯÁ°¤ÎÆüµ­]

#1 [dxruby] ¤Þ¤ÀˤÂæ¤òºî¤Ã¤Æ¤¿¤ê

¼«µ¡¤ËˤÅã¤ò¸þ¤±¤ëºÝ¤Ë¡¢¥Ô¥Ã¥¿¥êÀµ³Î¤Ê³ÑÅ٤Ǹþ¤±¤Á¤ã¤¦¤Î¤â¤Ê¤ó¤À¤«¥¢¥ì¤À¤è¤Ê¤È¡£360ÅÙ¤ò¡¢12Êý¸þ¤È¤«24Êý¸þ¤È¤«¤ËÀ©¸Â¤·¤¿¤Û¤¦¤¬¤¤¤¤¤Î¤«¤â¡£¤Æ¤Ê¤ï¤±¤Ç¤½¤Î¤¢¤¿¤ê¤Î½èÍý¤ò¡£
    #
    # ³ÑÅÙ¤ònÊý¸þ¤ËÀ©¸Â¤·¤ÆÊÖ¤¹
    #
    # @param [float] ang ¸µ¤Î³ÑÅÙ
    # @param [float] rest ²¿Êý¸þ¤Ë¤¹¤ë¤«¡£¥Ç¥Õ¥©¥ë¥È¤Ï16
    # @return [float] restÊý¸þ¤ËÀ©¸Â¤·¤¿³ÑÅÙ
    #
    def get_dir_rest(ang, rest=16)
      d = 360.0 / rest
      dir = ((ang + (d / 2)) % 360.0).div(d)
      return dir * d
    end
¤³¤ó¤Ê´¶¤¸¤Ç¹ç¤Ã¤Æ¤ë¤Î¤À¤í¤¦¤«¡£Æ°ºî³Îǧ¤·¤¿¤é¡¢°ì±þ¹ç¤Ã¤Æ¤ë¤Ã¤Ý¤¤¤±¤É¡£

ˤÅã¤Î¸þ¤¯³ÑÅÙ¤ËÀ©¸Â¤ò²Ã¤¨¤ë¤¢¤¿¤ê¤Ç¤Þ¤ÀǺ¤ó¤Ç¤¿¤ê¡£¾å²¼º¸±¦¤ËÇÛÃÖ¤·¤¿¤½¤ì¤¾¤ì¤Î¾ì¹ç¤Î½èÍý¤ò¥Ù¥¿¤ËÁ´Éô½ñ¤¤¤Á¤ã¤¦¡¢¤È¤¤¤¦¥½¥ì¤Ç°ì±þ¤½¤ì¤é¤·¤¯Æ°¤¤¤Æ¤Ï¤¤¤ë¤â¤Î¤Î¡£¤â¤Ã¤È¥¹¥Þ¡¼¥È¤Ë¤«¤±¤ë¤Ï¤º¤À¤è¤Ê¤È¡Ä¡£

2014/01/23(ÌÚ) [nǯÁ°¤ÎÆüµ­]

#1 [dxruby] ˤÂæ¤Ï¤Ê¤ó¤È¤«¤Ê¤Ã¤Æ¤­¤¿

¤È¤ê¤¢¤¨¤º¡¢Ë¤Âæ¤òÆ°¤«¤¹¤¿¤á¤Ë½ñ¤¤¤¿½èÍý¤ò¡¢ÊÌ¥Õ¥¡¥¤¥ë¤Ë¤Þ¤È¤á¤¿¤ê¡£

_gamemath.rb
# ¥²¡¼¥à´Ø·¸¤Î·×»»Íѥ᥽¥Ã¥É
#
# ruby gamemath.rb 1 ¤È¤¤¤Ã¤¿»ØÄê¤Ç¡¢¥Æ¥¹¥È¼ïÎà¤òÊѤ¨¤é¤ì¤ë

require 'dxruby'

# ·×»»Íѥ᥽¥Ã¥É
class GameMath

  class << self

    #
    # ÅÙ¤«¤é¥é¥¸¥¢¥ó¤Ø¤ÎÊÑ´¹
    #
    # @param [float] deg ³ÑÅÙ¡£Ã±°Ì¤ÏÅÙ
    # @retrun [float] ³ÑÅÙ¡£Ã±°Ì¤Ï¥é¥¸¥¢¥ó
    #
    def deg2rad(deg)
      return (deg * Math::PI / 180.0)
    end

    #
    # ¥é¥¸¥¢¥ó¤«¤éÅ٤ؤÎÊÑ´¹
    #
    # @param [float] rad ³ÑÅÙ¡£Ã±°Ì¤Ï¥é¥¸¥¢¥ó
    # @retrun [float] ³ÑÅÙ¡£Ã±°Ì¤ÏÅÙ
    #
    def rad2deg(rad)
      return (rad * 180.0 / Math::PI)
    end

    #
    # ´ð½àºÂɸ¤«¤éÌÜɸºÂɸ¤Ø¤Î³ÑÅÙ¤òÊÖ¤¹
    #
    # @param [int] tgt_x ÌÜɸºÂɸx
    # @param [int] tgt_y ÌÜɸºÂɸy
    # @param [int] base_x ´ð½àºÂɸx
    # @param [int] base_y ´ð½àºÂɸy
    # @return [float] ÌÜɸºÂɸ¤Þ¤Ç¤Î³ÑÅÙ¡£Ã±°Ì¤Ï¥é¥¸¥¢¥ó
    #
    def get_dir_rad(tgt_x, tgt_y, base_x, base_y)
      tx = tgt_x - base_x
      ty = tgt_y - base_y
      return Math.atan2(ty, tx)
    end

    #
    # ³ÑÅÙ¤ònÊý¸þ¤ËÀ©¸Â¤·¤ÆÊÖ¤¹
    #
    # @param [float] ang ¸µ¤Î³ÑÅÙ
    # @param [float] rest ²¿Êý¸þ¤Ë¤¹¤ë¤«¡£¥Ç¥Õ¥©¥ë¥È¤Ï16
    # @return [float] restÊý¸þ¤ËÀ©¸Â¤·¤¿³ÑÅÙ
    #
    def get_dir_rest(ang, rest=16)
      d = 360.0 / rest
      dir = ((ang + (d / 2)) % 360.0).div(d)
      return dir * d
    end

    #
    # ³ÑÅ٤ȮÅÙ(µ÷Î¥)¤«¤éx,yÊý¸þ¤Î°ÜÆ°Î̤òµá¤á¤ë(ÅÙ¤òÍ¿¤¨¤ëÈÇ)
    #
    # @param [float] ang ³ÑÅÙ¡£Ã±°Ì¤ÏÅÙ
    # @param [float] spd ®ÅÙ(µ÷Î¥)
    # @param [float] bx  ¸¶ÅÀ¤È¤Ê¤ëºÂɸx¡£¾Êά»þ¤Ï0
    # @param [float] by  ¸¶ÅÀ¤È¤Ê¤ëºÂɸy¡£¾Êά»þ¤Ï0
    # @return [Array] °ÜÆ°ÎÌx,y
    #
    def get_vec(ang, spd, bx=0, by=0)
      return GameMath.get_vec_rad(GameMath.deg2rad(ang), spd, bx, by)
    end

    #
    # ³ÑÅ٤ȮÅÙ(µ÷Î¥)¤«¤éx,yÊý¸þ¤Î°ÜÆ°Î̤òµá¤á¤ë(¥é¥¸¥¢¥ó¤òÍ¿¤¨¤ëÈÇ)
    #
    # @param [float] ang ³ÑÅÙ¡£Ã±°Ì¤Ï¥é¥¸¥¢¥ó
    # @param [float] spd ®ÅÙ(µ÷Î¥)
    # @param [float] bx  ¸¶ÅÀ¤È¤Ê¤ëºÂɸx¡£¾Êά»þ¤Ï0
    # @param [float] by  ¸¶ÅÀ¤È¤Ê¤ëºÂɸy¡£¾Êά»þ¤Ï0
    # @return [Array] °ÜÆ°ÎÌx,y
    #
    def get_vec_rad(rad, spd, bx=0, by=0)
      x = spd * Math.cos(rad) + bx
      y = spd * Math.sin(rad) + by
      return x, y
    end

    #
    # ³°ÀѤòÊÖ¤¹
    #
    # @param [int] tgt_x ÌÜɸ¥Ù¥¯¥È¥ëx
    # @param [int] tgt_y ÌÜɸ¥Ù¥¯¥È¥ëy
    # @param [int] base_x ´ð½à¥Ù¥¯¥È¥ëx
    # @param [int] base_y ´ð½à¥Ù¥¯¥È¥ëy
    # @return [float] ³°ÀÑ¡£
    #                 ³°ÀÑ > 0 ¤Ê¤é¡¢ÌÜɸ¤Ï±¦¤Ë¤¢¤ê¡¢
    #                 ³°ÀÑ < 0 ¤Ê¤é¡¢ÌÜɸ¤Ïº¸¤Ë¤¢¤ë
    #                 ³°ÀÑ = 0 ¤Ê¤é¡¢Æ±¤¸Êý¸þ
    #
    def get_cross_product(tgt_x, tgt_y, base_x, base_y)
      return base_x * tgt_y - base_y * tgt_x
    end

    #
    # ½ù¡¹¤ËÌÜɸÊý¸þ¤ò¸þ¤¯³ÑÅÙ¤òµá¤á¤ë
    #
    # @param [float] ang ¸½ºß¤Î³ÑÅÙ¡£Ã±°Ì¤ÏÅÙ
    # @param [float] ang_spd ³ÑÅÙÊѲ½ÎÌ¡£Ã±°Ì¤ÏÅÙ
    # @param [float] tgt_x ÌÜɸºÂɸx
    # @param [float] tgt_y ÌÜɸºÂɸy
    # @param [float] base_x ´ð½àºÂɸx
    # @param [float] base_y ´ð½àºÂɸy
    # @return [float] ¿·¤·¤¤³ÑÅÙ¡£Ã±°Ì¤ÏÅÙ
    #
    def get_chase_angle(ang, ang_spd, tgt_x, tgt_y, base_x, base_y)
      ang %= 360
      tgt_ang = GameMath.rad2deg(GameMath.get_dir_rad(tgt_x, tgt_y, base_x, base_y))
      tgt_ang %= 360
      d = tgt_ang - ang
      d += 360 if d < -180
      d -= 360 if d > 180
      if d > ang_spd
        ang += ang_spd
      elsif d < -ang_spd
        ang -= ang_spd
      else
        ang = tgt_ang
      end
      return ang
    end

    #
    # »ØÄêÈϰϤ˼ý¤Þ¤Ã¤¿³ÑÅÙ¤òÊÖ¤¹
    #
    # @param [float] now_ang ¸½ºß¤Î³ÑÅÙ¡£Ã±°Ì¤ÏÅÙ
    # @param [float] base_ang ´ð½à³ÑÅÙ¡£Ã±°Ì¤ÏÅÙ
    # @param [float] min_d ³ÑÅÙÈϰϤκǾ®ÃÍ»»½ÐÍÑ¡£´ð½à³ÑÅ٤˲û»¤¹¤ëÃÍ
    # @param [float] max_d ³ÑÅÙÈϰϤκÇÂçÃÍ»»½ÐÍÑ¡£´ð½à³ÑÅ٤˲û»¤¹¤ëÃÍ
    # @return [float] ÈϰϤ˼ý¤Þ¤Ã¤¿³ÑÅÙ¡£Ã±°Ì¤ÏÅÙ
    #
    def get_dir_range(now_ang, base_ang, min_d, max_d)
      base_ang %= 360
      now_ang %= 360

      # ¸½ºß³ÑÅÙ¤¬¡¢´ð½à³ÑÅÙ¤ÎÀµÈ¿ÂФγÑÅÙ¤òĶ¤¨¤ë³ÑÅÙ¤À¤Ã¤¿¤éÊäÀµ¤¹¤ë
      if now_ang > base_ang + 180
        now_ang -= 360
      elsif now_ang <= base_ang - 180
        now_ang += 360
      end

      min_ang = base_ang + min_d
      max_ang = base_ang + max_d
      now_ang = min_ang if now_ang < min_ang
      now_ang = max_ang if now_ang > max_ang
      return now_ang
    end

    #
    # 2ÅÀ¤ÎºÂɸ´Ö¤Îµ÷Î¥¤¬»ØÄêµ÷Î¥¤è¤ê¾®¤µ¤¤¤«¤òÊÖ¤¹
    #
    # @param [int] tx ÌÜɸºÂɸx
    # @param [int] ty ÌÜɸºÂɸy
    # @param [int] bx ´ð½àºÂɸx
    # @param [int] by ´ð½àºÂɸy
    # @param [int] dist ȽÄêµ÷Î¥
    # @return {Boolean] true¤Ê¤é¡¢È½Äêµ÷Î¥Æâ¤ËÆþ¤Ã¤Æ¤ë¡£false¤Ê¤é¡¢È½Äêµ÷Î¥³°
    #
    def check_dist(tx, ty, bx, by, dist)
      w = tx - bx
      h = ty - by
      return (w * w + h * h <= dist * dist)? true : false
    end

  end
end

if $0 == __FILE__
  # Æ°ºî³Îǧ

  # Æ°ºî¼ïÎà¤òÊѤ¨¤ë
  if ARGV.length >= 1
    test_kind = ARGV[0].to_i
  else
    test_kind = 0
  end

  font = Font.new(16)
  fh = 20

  bx = 320
  by = 240
  ang = 0
  base_ang = 0

  Window.loop do
    break if Input.keyPush?(K_ESCAPE)
    px, py = Input.mousePosX, Input.mousePosY

    case test_kind
    when 0
      # Êý¸þ(³ÑÅÙ)¤ËÀ©¸Â¤ò²Ã¤¨¤ë¥Æ¥¹¥È
      # nÊý¸þ¤ËÀ©¸Â¤¹¤ë

      n = 12
      rad = GameMath.get_dir_rad(px, py, bx, by) # ËÜÍè¤Î³ÑÅÙ
      new_deg = GameMath.get_dir_rest(GameMath.rad2deg(rad), n) # À©¸Â¤·¤¿³ÑÅÙ

      # ÉÁ²è
      d = 360 / n
      s = d / 2
      n.times do |i|
        nx, ny = GameMath.get_vec(s + d * i, 80, bx, by)
        Window.drawLine(bx, by, nx, ny, C_RED)
      end

      nx, ny = GameMath.get_vec(GameMath.rad2deg(rad), 200, bx, by)
      Window.drawLine(bx, by, nx, ny, C_CYAN)

      rad = GameMath.deg2rad(new_deg)
      nx, ny = GameMath.get_vec(GameMath.rad2deg(rad), 150, bx, by)
      Window.drawLine(bx, by, nx, ny, C_YELLOW)

      Window.drawFont(0, 0, "#{n}Êý¸þ¤Ë¤¹¤ëÀ©¸Â¤ò²Ã¤¨¤ëÎã", font)

    when 1
      # ³°ÀѤò»È¤Ã¤ÆÌÜɸ¤òÄÉÈø¤¹¤ë¤è¤¦¤Ë³ÑÅÙ¤òÊѤ¨¤ë¥Æ¥¹¥È
      # ¥×¥ë¥×¥ë¿Ì¤¨¤Æ¤·¤Þ¤¦

      ang_spd = 3

      # ÌÜɸ¥Ù¥¯¥È¥ë
      tx = px - bx
      ty = py - by

      # ´ð½à¥Ù¥¯¥È¥ë
      vx = Math.cos(GameMath.deg2rad(ang))
      vy = Math.sin(GameMath.deg2rad(ang))

      # ³°ÀѤòµá¤á¤ë
      cp = GameMath.get_cross_product(tx, ty, vx, vy)

      # ³°ÀѤÎÉä¹æ¤ò¸«¤Æ¡¢ÌÜɸ¤¬±¦¤Ë¤¢¤ë¤«º¸¤Ë¤¢¤ë¤«È½ÊÌ
      ang += ang_spd if cp > 0
      ang -= ang_spd if cp < 0
      ang %= 360

      # ÉÁ²è
      nx, ny = GameMath.get_vec(ang, 200, bx, by)
      Window.drawLine(bx, by, nx, ny, C_CYAN)

      Window.drawFont(0, 0, "³°ÀѤÎÉä¹æ¤ÇÄÉÈø¤¹¤ëÎã", font)

    when 2
      # ÌÜɸ¤Ø¤Î³ÑÅÙ¤òµá¤á¤Æ¡¢ÄÉÈø¤¹¤ë¤è¤¦¤Ë³ÑÅÙ¤òÊѤ¨¤ë¥Æ¥¹¥È

      ang = GameMath.get_chase_angle(ang, 2, px, py, bx, by)

      # ÉÁ²è
      nx, ny = GameMath.get_vec(ang, 200, bx, by)
      Window.drawLine(bx, by, nx, ny, C_CYAN)

      Window.drawFont(0, 0, "³ÑÅÙ¤ò¸«¤ÆÄÉÈø¤¹¤ëÎã", font)

    when 3
      # ³ÑÅÙ¤ËÀ©¸Â¤ò²Ã¤¨¤ëÎã

      base_ang += Input.x * 2 # ´ð½à³ÑÅÙ¤òº¸±¦¥­¡¼¤ÇÊѹ¹

      rad = GameMath.get_dir_rad(px, py, bx, by) # ËÜÍè¤Î³ÑÅÙ
      ang = GameMath.rad2deg(rad)

      # ´ð½à³ÑÅÙ¤«¤é¥×¥é¥¹¥Þ¥¤¥Ê¥¹ aw ¤ÎÈϰϤ˳ÑÅÙ¤òÀ©¸Â¤¹¤ë
      aw = 90
      ang = GameMath.get_dir_range(ang, base_ang, -aw, aw)

      # ÉÁ²è
      nx, ny = GameMath.get_vec(base_ang, 250, bx, by)
      Window.drawLine(bx, by, nx, ny, C_RED)
      nx, ny = GameMath.get_vec(base_ang - aw, 150, bx, by)
      Window.drawLine(bx, by, nx, ny, C_YELLOW)
      nx, ny = GameMath.get_vec(base_ang + aw, 150, bx, by)
      Window.drawLine(bx, by, nx, ny, C_YELLOW)

      nx, ny = GameMath.get_vec(ang, 200, bx, by)
      Window.drawLine(bx, by, nx, ny, C_CYAN)

      Window.drawFont(0, 0, "³ÑÅÙ¤ËÀ©¸Â¤ò²Ã¤¨¤ëÎã : º¸±¦¥­¡¼¤Ç³ÑÅÙÊѹ¹", font)
    end
  end
end
³Æ¥¹¥¯¥ê¥×¥È¤ËľÀܽñ¤¤¤Æ¤·¤Þ¤Ã¤Æ¤â¤¤¤¤¤°¤é¤¤¤Î¥½¥ì¤Ð¤«¤ê¤Ç¤¹¤¬¡Ä¡£

ñÂΤǤâÆ°¤¯¤±¤É¡¢Â¾¤Î¥Õ¥¡¥¤¥ë¤«¤é¸Æ¤ó¤Ç»È¤¦¤³¤È¤â¤Ç¤­¤ë¤Ï¤º¡£Public Domain ¤Ã¤Æ¤³¤È¤Ç¡£

ruby gamemath.rb 0 ¤È¤« ruby gamemath.rb 3 ¤È¤«ÂǤƤС¢²¼¤Î¤è¤¦¤Ê²èÌ̤¬½Ð¤ë¤Î¤Ç¡¢¥Þ¥¦¥¹¥«¡¼¥½¥ë¤òÆ°¤«¤·¤ÆÆ°ºî³Îǧ¤Ç¤­¤ë¤«¤È¡£0¡Á3 ¤Þ¤Ç»ØÄê²Äǽ¡£

Æ°ºî³Îǧ¤½¤Î1

Æ°ºî³Îǧ¤½¤Î2

Æ°ºî³Îǧ¤½¤Î3

Æ°ºî³Îǧ¤½¤Î4

°Ê²¼¤Î¥Ú¡¼¥¸¤¬»²¹Í¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¤¢¤ê¤¬¤¿¤ä¡£

_[ Azure Contrail ] ¥¢¥º¡¼¥ë¥³¥ó¥È¥ì¥¤¥ë - Tips
_Flash¥²¡¼¥à¹ÖºÂ¡õAS¥µ¥ó¥×¥ë½¸¡ÚÁÀ·â¤Î·×»»ÊýË¡¤Ë¤Ä¤¤¤Æ¡Û

¤Á¤Ê¤ß¤Ë¡£DXRuby³«È¯ÈǤʤ顢³°ÀѤȤ«ÆâÀѤȤ«¤½¤Î¤Ø¤óµá¤á¤ë¥á¥½¥Ã¥É¤â¤¢¤ë¤Î¤Ç¤¹¤¬¡Ä¡£³«È¯ÈǤϡ¢¾ï»þºÇ¿·ÈǤ·¤«¸ø³«¤µ¤ì¤Æ¤Ê¤¯¤Æ¡¢Æþ¼ê¤Ë¤Á¤ç¤Ã¤ÈÆñ¤¬¤¢¤ë¤Î¤Ç¡¢¤½¤Î¤¢¤¿¤ê¡¢DXRuby 1.4.1 ¤Ë¼è¤ê¹þ¤Þ¤ì¤ë¤³¤È¤ò´üÂÔ¡£

¡ý DXRuby¤ÎÊØÍø¤Ê¤È¤³¤í¡£ :

¤³¤³¿ôÆü¡¢DXRuby¤ò¿¨¤Ã¤Æ¤¤¤Æ¡ÖÊØÍø¤À¤Ê¡¼¡×¤È»×¤Ã¤¿ÅÀ¤¬¡£¥á¥¤¥ó¥ë¡¼¥×¤¬¿ô¹Ô¤ÇºÑ¤àÅÀ¤Ï¡¢¤¢¤ê¤¬¤¿¤¤¡£¤ª¤«¤²¤Ç¡¢³Æ¥Õ¥¡¥¤¥ë¤ÎÆ°ºî¥Æ¥¹¥È¤¬½ñ¤­¤ä¤¹¤¤¤Ê¤È¡£

¥Õ¥Ä¡¼¡¢¥¹¥¯¥í¡¼¥ë¥²¡¼¥àÍѤΥ¢¥ì¥³¥ì¤ò½ñ¤¯¾ì¹ç¤Ï¡Ä¡£
  1. ¥²¡¼¥àËÜÂÎ¤Î¥×¥í¥°¥é¥à¤òÆ°¤«¤·¤Æ¡¢
  2. ÌÜŪ¤Î¾ì½ê¤Þ¤Ç¥¹¥¯¥í¡¼¥ë¤µ¤»¤Æ¡¢
  3. ¤½¤³¤Ç½Ð¤Æ¤¯¤ëŨ¤½¤Î¾¤ÎÆ°¤­¤ò³Îǧ¤·¤Æ¡¢
  4. Ũ¤Î¥×¥í¥°¥é¥à¤òÄ´À°¤·¤Æ¡¢
¤ß¤¿¤¤¤Êή¤ì¤Ë¤Ê¤ë¤Î¤Ç¤¹¤¬¡£

DXRuby¤Ê¤é¡¢Å¨¤Î¥×¥í¥°¥é¥à¤¬½ñ¤¤¤Æ¤¢¤ë¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤Ë¡¢¤Á¤ç¤³¤Ã¤ÈÆ°ºî³ÎǧÍѤΥᥤ¥ó¥ë¡¼¥×¤ò½ñ¤¤¤Á¤ã¤¨¤Ð¡¢¤½¤Î¥¹¥¯¥ê¥×¥È¤À¤±¤ÇÆ°¤­¤Î³Îǧ¤¬¤½¤³¤½¤³¤Ç¤­¤ë¤ï¤±¤Ç¡£

ÆÃ¤Ë Ruby ¤Î¾ì¹ç¡¢°Ê²¼¤Î¤è¤¦¤Ê½ñ¤­Êý¤¬²Äǽ¤Ç¡£
if $0 == __FILE__

  # ¤³¤Î¥¹¥¯¥ê¥×¥È¤òñÂΤÇÆ°¤«¤·¤¿»þ¤À¤±¡¢¤³¤ÎÉôʬ¤òÄ̤ë

end
¤Þ¤¢¡¢Python ¤Ê¤É¤â¡¢Æ±¤¸¤³¤È¤¬¤Ç¤­¤Þ¤¹¤±¤É¡Ä¡£²¿¤Ë¤»¤è¡¢¤³¤ÎÉôʬ¤ËÆ°ºî³ÎǧÍѤΥ½¥ì¤ò½ñ¤¤¤È¤±¤Ð¡¢¤½¤Î¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤ò¤½¤Ã¤¯¤ê¤½¤Î¤Þ¤Þ¡¢ËÜÂÎ¥×¥í¥°¥é¥à¦¤Ç»È¤¦¤³¤È¤â¤Ç¤­¤Æ¤·¤Þ¤¦¡£

¤È¤¤¤¦¤³¤È¤Ç¡¢Ruby + DXRuby ¤Ï¡¢¥×¥í¥È¥¿¥¤¥×ºîÀ®¤ËÊØÍø¤À¤Ê¤ÈºÆǧ¼±¡£

2014/01/24(¶â) [nǯÁ°¤ÎÆüµ­]

#1 [dxruby] ¥Ü¥¹Å¨ºîÀ®Ãæ

EDGE2¤Ç¥Ü¥¹Å¨¤Ã¤Ý¤¤¥É¥Ã¥È³¨¤ò¡£¤·¤«¤·¡¢¤É¤¦¤Ë¤âÊ¿Ì̤äݤ¤¡Ä¡£¤É¤¦¤·¤Æ¼«Ê¬¤¬¥É¥Ã¥ÈÂǤÁ¤¹¤ë¤ÈΩÂ䶤¬Á´¤¯½Ð¤Ê¤¤¤Î¤À¤í¤¦¡Ä¡£

¤½¤ì¤Ç¤â¤Ò¤È¤Þ¤º°ì±þ¤½¤ì¤é¤·¤¯¸«¤¨¤Ê¤¯¤â¤Ê¤¤¤Ã¤Ý¤¤²èÁü¤¬½ÐÍ褿¤Î¤Ç¡¢¥¹¥¯¥ê¥×¥È¤ò½ñ¤­»Ï¤á¤¿¤ê¡£

³Æ¥Ñ¡¼¥Ä¤Î°ÌÃÖ¹ç¤ï¤»¤¬¤Ê¤ó¤À¤«ÌÌÅÝ¡£ËÜÍ褳¤¦¤¤¤¦¤Î¤ÏCG¥Ä¡¼¥ë¤Ç¤É¤¦¤Ë¤«¤·¤¿¤Û¤¦¤¬¤¤¤¤¤è¤¦¤Ê¡£

2014/01/25(ÅÚ) [nǯÁ°¤ÎÆüµ­]

#1 [tv] ¥¹¥³¥é¡¢¥·¥ó¥»¥µ¥¤¥¶¡¼¤Î²ó¤ò»ëÄ°

Ï¿²è¤·¤Æ¤¿¥½¥ì¤ò¾Ã²½¡£

³ØÀ¸¤µ¤ó¤Ë¥â¡¼¥°¥·¥ó¥»¥µ¥¤¥¶¡¼¤ò ¡½¡½ Ä̾ΡÖý¿Ú¡×¤ò¿¨¤é¤»¤ë¥³¡¼¥Ê¡¼¤¬ÌÌÇò¤«¤Ã¤¿¡£²»¤ò½Ð¤¹»ÅÁȤߤˤĤ¤¤Æ¡¢¥í¡¼¥Ñ¥¹¥Õ¥£¥ë¥¿¡¼¡¢¥Ï¥¤¥Ñ¥¹¥Õ¥£¥ë¥¿¡¼¡¢¥ì¥¾¥Ê¥ó¥¹¤Î¤¢¤¿¤ê¤ò´Êñ¤ËÀâÌÀ¤·¤Æ¤¤¤Æ¡£¤«¤Ê¤êʬ¤«¤ê¤ä¤¹¤¤ÀâÌÀ±ÇÁü¤Ë¤Ê¤Ã¤Æ¤¿¤Ê¤È¡£¤Þ¤¿¡¢¥·¡¼¥±¥ó¥µ¡¼¤ä¥µ¥ó¥×¥é¡¼¤Ë¤Ä¤¤¤Æ¤â¤Á¤ç¤³¤Ã¤È¿¨¤ì¤Æ¤¤¤¿¤ê¤·¤Æ¡£

¼«Ê¬¤¬¤½¤Î¤¢¤¿¤ê¤Ë¶½Ì£¤ò»ý¤Ã¤¿¤Î¤Ï¡¢8bit PC¤Ë¿¨¤Ã¤¿º¢¤Ç¡£MZ-700¤Ï¶ë·ÁÇÈñ²»¤·¤«½Ð¤Ê¤«¤Ã¤¿¤±¤É¡¢°ì±þ¡¢²»³Ú¤Î¼«Æ°±éÁÕ¤¬¤Ç¤­¤¿¤Î¤Ç¡¢¤½¤³¤«¤é¶½Ì£¤ò¡¢¤ß¤¿¤¤¤Ê¡£·î´©¥Þ¥¤¥³¥ó¤Ë¡¢²»¸»¥â¥¸¥å¡¼¥ë¤Î¹­¹ð¤¬ºÜ¤Ã¤Æ¤¿¤ê¤·¤Æ¡¢¡Ö¥³¥ì¤òÇ㤨¤Ð¥¹¥´¥¤²»¤¬½Ð¤ë¤Î¤«¤Ê¡Ä¡×¤È¤«ÁÛÁü¤·¤Æ¤¿¤Ã¤±¡£¤½¤ì¤¬º£¤Ï¥½¥Õ¥È¥¦¥§¥¢¤ÇÇÈ·Áºî¤ì¤ë¤ó¤À¤«¤é¡Ä¡£¤·¤«¤â²¼¼ê¤¹¤ë¤È¥Ö¥é¥¦¥¶¾å¤ÇÆ°¤¤¤Á¤ã¤¦¤·¡£

²¿¤Ï¤È¤â¤¢¤ì¡¢½é²»¥ß¥¯¤ÎÂçÀèÇÚ¤¬¼ÂºÝ¤ËÆ°¤¤¤Æ¤ëÍͻҤòÌܤˤ¹¤ë¤³¤È¤¬¤Ç¤­¤ÆËþ­¡£

#2 [dxruby] ¥Ü¥¹Å¨¤ÎÇúȯ¥¨¥Õ¥§¥¯¥È¤Ç»î¹Ôºø¸íÃæ

¥ÉÇɼê¤ÊÇúȯ¤Ë¤·¤¿¤¤¤Î¤À¤±¤É¡¢¤É¤¦¤â¤Ê¤ó¤À¤«¡¢¤É¤³¤È¤Ê¤¯Âç¿Í¤·¤¤¡Ä¡£

Æ©»ëÊÑ´¹¤ò¤·¤Æ¥¹¥×¥é¥¤¥È¤òÈô¤Ð¤·¤Æ¤ß¤¿¤â¤Î¤Î¡¢²èÌ̤¬¿¿¤ÃÇò¤Ë¤Ê¤Ã¤Æ¤ë¤Î¤Ç¡¢¸«¤¿ÌܤۤȤó¤Éʬ¤«¤é¤º¡£¤³¤ó¤Ê¤Ï¤º¤Ç¤Ï¡Ä¡£

2014/01/26(Æü) [nǯÁ°¤ÎÆüµ­]

#1 [dxruby] ¥¹¥Æ¡¼¥¸¥¯¥ê¥¢¥í¥´¤òɽ¼¨¤µ¤»¤Æ¤ß¤¿¤ê

²èÌ̳°¤«¤é¥í¥´¤¬1ʸ»ú¤º¤ÄÈô¤ó¤Ç¤­¤Æ¡¢¤Þ¤¿²èÌ̳°¤ËÈô¤ó¤Ç¤¤¤¯¡¢¤ß¤¿¤¤¤ÊÆ°¤­¤Ë¤·¤Æ¤ß¤¿¤±¤É¡£¥á¥¬¥É¥é¥¤¥Ö»þÂå¤Î¥½¥ì¤ò¤ï¤¶¤ï¤¶ºÆ¸½¤»¤ó¤Ç¤â¡¢¤Æ¤Êµ¤¤â¤·¤Æ¤­¤¿¤ê¡£³ÈÂç½Ì¾®²óžȾƩÌÀ²Ã»»¸º»»¼«Í³ÊÑ·Á¡¢¤Ê¤ó¤Ç¤â»È¤¨¤ë¤Î¤À¤«¤é¡¢¤â¤Ã¤È¥´¥¤¥¹¤Ê¸«¤»Êý¤¬¤Ç¤­¤½¤¦¤Êµ¤¤â¤¹¤ë¤Î¤À¤±¤É¡£

²¿¤Ë¤»¤è¡¢¥²¡¼¥à¥ª¡¼¥Ð¡¼¤â¥¹¥Æ¡¼¥¸¥¯¥ê¥¢¤âÆþ¤Ã¤¿¤«¤é¡¢¥á¥¤¥ó¤Îή¤ì¤Ï¥²¡¼¥à¤Ã¤Ý¤¤´¶¤¸¤Ë¤Ê¤Ã¤¿¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£

¤»¤Ã¤«¤¯¤À¤«¤é¡¢¥µ¥¦¥ó¥É¤âÆþ¤ì¤¿¤Û¤¦¤¬¤¤¤¤¤Î¤«¤Ê¡£¤µ¤Æ¡¢¤É¤¦¤·¤¿¤â¤ó¤«¡£

2014/01/27(·î) [nǯÁ°¤ÎÆüµ­]

#1 [dxruby] ¥¿¥¤¥È¥ë²èÌ̤ò¥°¥Í¥°¥Í¤¹¤ë¥¢¥ì¤ò½ñ¤¤¤Æ¤ß¤¿¤ê

DXRuby ¤Î Shader ¤ò»È¤Ã¤Æ¡¢¥¿¥¤¥È¥ë²èÌ̤¬¥°¥Í¥°¥Í¤¹¤ë¥¢¥ì¤ò½ñ¤¤¤Æ¤ß¤¿¤ê¤·¤Æ¡£

¥¿¥¤¥È¥ë²èÌ̤¬¥°¥Í¥°¥Í¤¹¤ë¥¢¥ì

Í¿¤¨¤ë¥Ñ¥é¥á¡¼¥¿¤ÎŬÀÚ¤ÊÃͤ¬¤è¤¯Ê¬¤«¤é¤Ê¤¯¤Æ¡¢¥ª¥ê¥¸¥Ê¥ë¤Î¥½¥ì¤È¤Ï¤É¤¦¤âÆ°¤­¤¬°ã¤¦¤Î¤Ç¤¹¤±¤É¡Ä¡£¤½¤ì¤Ç¤â¤Þ¤¢¡¢¸¶Íý¤È¸À¤¦¤«¡¢»ÅÁȤߤȤ·¤Æ¤Ï¡¢¤³¤¦¤¤¤¦´¶¤¸¤Ê¤Î¤«¤Ê¤È¡£

_mbraster.rb
require 'dxruby'

#
# Shader¤ò»È¤Ã¤ÆMETALBLACK¤Î¥¿¥¤¥È¥ë²èÌ̤äݤ¤½èÍý¤ò¤¹¤ë¥¯¥é¥¹
#
class MbRaster

  @@hlsl = <<EOS
  float ang;
  float lvl;
  float spd;
  float alpha;
  texture tex0;

  sampler Samp = sampler_state
  {
    Texture =<tex0>;
    MinFilter = LINEAR;
    MagFilter = LINEAR;
    MipFilter = LINEAR;
    AddressU = WRAP;
    AddressV = WRAP;
    // AddressV = BORDER;
  };

  struct PixelIn
  {
    float2 UV : TEXCOORD0;
  };
  struct PixelOut
  {
    float4 Color : COLOR0;
  };

  PixelOut PS1(PixelIn input)
  {
    PixelOut output;
    // input.UV.x = input.UV.x + sin(radians(input.UV.x * 360 * spd + ang)) * lvl * 0.25;
    input.UV.y = input.UV.y + sin(radians(input.UV.y * 360 * spd - ang)) * lvl;
    output.Color = tex2D( Samp, input.UV );
    output.Color.a *= alpha;
    return output;
  }

  technique MbRasScroll
  {
   pass P0
   {
    PixelShader = compile ps_2_0 PS1();
   }
  }
EOS

  attr_accessor :core, :shader, :image, :w, :h, :tilew, :tileh
  attr_accessor :rt, :rt_w, :rt_h, :rt_scaley

  #
  # ½é´ü²½½èÍý
  #
  # @param [Image] image »ÈÍѤ¹¤ë²èÁü
  # @param [int] w ÉÁ²è²£Éý¡£nil¤Ê¤é¥¦¥¤¥ó¥É¥¦²£Éý
  # @param [int] h ÉÁ²è½ÄÉý¡£nil¤Ê¤é¥¦¥¤¥ó¥É¥¦½ÄÉý
  #
  def initialize(image, w=nil, h=nil)
    self.core = Shader::Core.new(@@hlsl,
                                 {:ang=>:float, :lvl=>:float,
                                   :spd=>:float, :alpha=>:float})
    self.shader = Shader.new(self.core, "MbRasScroll")

    @image = image
    @w = (w == nil)? Window.width : w
    @h = (h == nil)? Window.height : h

    # ²èÌ̤òʤ¤¤±£¤¹¥¿¥¤¥ë¿ô¤òµá¤á¤ë
    @tilew = @w.quo(@image.width).ceil
    @tileh = @h.quo(@image.height).ceil

    # RenderTarget ¤ÎɬÍ×¥µ¥¤¥º¤òµá¤á¤ë
    @rt_w = @image.width * @tilew
    @rt_h = @image.height * @tileh

    # yÊý¸þ¤Ç³ÈÂç½Ì¾®¤·¤ÆÉÁ²è½Ä²£Éý¤Ë¹ç¤ï¤»¤ë
    @rt_scaley = @h.quo(@rt_h)

    # RendertargetÀ¸À®
    @rt = RenderTarget.new(@rt_w, @rt_h)
  end

  #
  # ÉÁ²è½èÍý
  #
  # @param [int] x ÉÁ²è°ÌÃÖx
  # @param [int] y ÉÁ²è°ÌÃÖy
  # @param [float] u ²£Êý¸þ¥¹¥¯¥í¡¼¥ë°ÌÃÖ
  # @param [float] v ½ÄÊý¸þ¥¹¥¯¥í¡¼¥ë°ÌÃÖ
  # @param [float] ang sin¤Î³«»Ï³ÑÅÙ¡£Ã±°Ì¤ÏÅÙ
  # @param [float] lvl sin¤Î¿¶ÉýÉý
  # @param [float] spd sin¤Î³ÑÅÙÊѲ½ÎÌ
  # @param [Hash] opts ¥ª¥×¥·¥ç¥ó
  # @option opts [int] z ÉÁ²è±ü¹Ô¾ðÊó
  # @option opts [float] alpha Æ©ÌÀÅÙ¡£0.0¤ÇÆ©ÌÀ¡£1.0¤ÇÉÔÆ©ÌÀ
  # @option opts [Object] blend ¹çÀ®ÊýË¡¡£:add ¤ä :alpha ¤¬»È¤¨¤ë¤Ï¤º
  #
  def draw(x, y, u, v, ang, lvl, spd, opts={})
    alpha = (opts.has_key?(:alpha))? opts[:alpha] : 1.0
    blend = (opts.has_key?(:blend))? opts[:blend] : :alpha
    z = (opts.has_key?(:z))? opts[:z] : 0

    self.shader.ang = ang
    self.shader.lvl = lvl
    self.shader.spd = spd
    self.shader.alpha = alpha

    # Shader ¤¬»²¾È¤¹¤ë²èÁü¤ò RenderTarget ¤ËºîÀ®
    @rt.draw_tile(0, 0, [[0]], [@image], u, v, @tilew, @tileh).update

    # Shader ¤ò»È¤Ã¤ÆÉÁ²è
    Window.drawEx(x, y, @rt, :shader=>self.shader,
                  :scaley=>@rt_scaley, :z=>z, :blend=>blend)
  end

  #
  # Æ°ºî³ÎǧÍÑ¡£¥°¥ê¥Ã¥É²èÁü¤òÀ¸À®¤·¤ÆÊÖ¤¹
  #
  # @param [int] w ²èÁü²£Éý
  # @param [int] h ²èÁü½ÄÉý
  # @return [Image] À¸À®¤·¤¿²èÁü
  #
  def self.get_grid_image(w, h)
    image = Image.new(w, h, [0, 255, 0])
    image.box_fill(0, 0, w / 2 - 1, h / 2 - 1, [150,250,150])
    image.box_fill(w / 2, 0, w - 1, h / 2 - 1, [100,250,100])
    image.box_fill(0, h / 2, w / 2 - 1, h - 1, [200,250,200])
    image.box_fill(w / 2, h / 2, w - 1, h - 1, [0,220,0])
    return image
  end
end

# ----------------------------------------
# °Ê²¼¤Ï»ÈÍÑÎã

if __FILE__ == $0

  image = Image.load("logo.png")
  bg = MbRaster.new(image)

  x = 0
  y = 0
  u = 0
  v = 0
  ang = 360
  lvldef = 0.35
  lvl = lvldef
  spd = 1.0
  cnt = 0

  font = Font.new(14)

  Window.loop do
    break if Input.keyPush?(K_ESCAPE)

    # ¥Þ¥¦¥¹¥«¡¼¥½¥ëºÂɸ¤Ç¥Ñ¥é¥á¡¼¥¿¤òÊѤ¨¤Æ¤ß¤ë
    ang = Input.mousePosX * 360 / 640.0
    lvl = Input.mousePosY / 240.0  - 1.0
    # spd = Input.mousePosY / 480.0

    bg.draw(x, y, u, v, ang, lvl, spd)
    # u += 1
    # v += 2

    Window.drawFont(4, 4, "ang=#{ang} , lvl=#{lvl} , spd=#{spd}", font)
    Window.drawFont(4, 20, "Please move mouse cursor", font)
    cnt += 1
  end
end
¥Æ¥¹¥ÈÍѤβèÁü¤âÃÖ¤¤¤È¤­¤Þ¤¹¡£

_logo.png

¥¹¥¯¥ê¥×¥ÈñÂΤǤâ¼Â¹Ô¤Ç¤­¤ë¤±¤É¡¢Â¾¤Î¥¹¥¯¥ê¥×¥È¤«¤é¸Æ¤Ó½Ð¤·¤Æ»È¤¦¤³¤È¤â¤Ç¤­¤ë¤Ï¤º¡£

¥¹¥¯¥ê¥×¥È¤â²èÁü¤â¡¢Public Domain / CC0 ¤Ã¤Æ¤³¤È¤Ç¡£

#2 [dxruby] DXRuby¤ÇSTG¥µ¥ó¥×¥ë¤òºîÀ®

¤È¤ê¤¢¤¨¤º¡¢¥²¡¼¥à¤È¤·¤Æ¤ÎÁ´ÂΤÎή¤ì¤Ï¤Ç¤­¤¿¤è¤¦¤Êµ¤¤¬¤¹¤ë¤Î¤Ç¡¢°ì±þ¸ø³«¡£

¥½¡¼¥¹¤Ï¡¢Ruby½é¿´¼Ô¤¬½ñ¤¤¤¿¥½¥ì¤À¤«¤é¡¢¤â¤¦¥°¥Á¥ã¥°¥Á¥ã¤ÇÁ´Á³»²¹Í¤Ë¤Ê¤é¤Ê¤¤¤È»×¤¤¤Þ¤¹¤¬¡¢¤Ç¤â¤Þ¤¢¡¢¡ÖDXRuby¤ò»È¤¨¤Ð¤³¤¦¤¤¤¦´¶¤¸¤Î¥²¡¼¥à¤âºî¤ì¤½¤¦¤Ç¤¹¤è¡×¤È¤¤¤¦°ì¤Ä¤Î»öÎ㡦¥µ¥ó¥×¥ë¤Ë¤Ï¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡¢¤È¡£

ScreenShot0

ScreenShot1

ScreenShot2

ScreenShot3

Windows¡¢¤«¤Ä¡¢ _Ruby ¡¢ _DXRuby ¡¢ _tmx¥é¥¤¥Ö¥é¥ê ¤¬¥¤¥ó¥¹¥È¡¼¥ëºÑ¤ß¤Î´Ä¶­¤Ê¤é¡¢²òÅष¤Æ¡¢ruby main.rb ¤Ç¼Â¹Ô¤Ç¤­¤ë¡Ä¤Ï¤º¤Ç¤¹¡£

_stg_sample01.zip (¥½¡¼¥¹¤È²èÁü°ì¼°¡£2.1MB)

RubyÅù¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤Ê¤¤´Ä¶­¤Ç¤âÆ°¤«¤»¤ë¤è¤¦¤Ë¡¢exe²½¤·¤¿ÈǤâÃÖ¤¤¤È¤­¤Þ¤¹¡£(¢¨ 2014/02/02¡¢¥É¥­¥å¥á¥ó¥È¤âƱº­)

_stg_sample01_exe_20140202.zip (¼Â¹Ô·Á¼°¡£6.4MB)

²òÅष¤Æ¡¢main.exe ¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤¹¤ì¤Ð¡¢¼Â¹Ô¤Ç¤­¤ë¤«¤Ê¤È¡£°ì±þ¡¢Ruby¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤Ê¤¤¥µ¥ÖPC¾å¤Ç¤â¡¢Æ°ºî¤¹¤ë¤³¤È¤Ï³Îǧ¤·¤Þ¤·¤¿¡£

¥½¡¼¥¹¤â²èÁü¤â¡¢Public Domain / CC0 ¤È¤¤¤¦¤³¤È¤Ç¡£

¤¿¤À¡¢exeÈǤΤۤ¦¤Ï¡¢tmx¥é¥¤¥Ö¥é¥ê¤½¤Î¾¤ò´Þ¤ó¤Ç¤·¤Þ¤Ã¤Æ¤ë¤Î¤Ç¡¢¥é¥¤¥»¥ó¥¹¤Ï¤É¤¦¤Ê¤ë¤Î¤«Ê¬¤«¤ê¤Þ¤»¤ó¡Ä¡£¤Þ¤¢¡¢DL¤·¤ÆÆ°ºî³Îǧ¤¹¤ëÄøÅ٤ʤéÅܤé¤ì¤Ê¤¤¤Î¤Ç¤Ï¡¢¤Æ¤Êµ¤¤â¤¹¤ë¤Î¤Ç¤¹¤±¤É¡£MIT¥é¥¤¥»¥ó¥¹Åù¤Î¥é¥¤¥Ö¥é¥ê¤ò¼Â¹Ô·Á¼°¤Ë´Þ¤à¾ì¹ç¤Ï¡¢¤É¤¦¤¤¤¦¾ò·ï¤òËþ¤¿¤·¤Æ¤ª¤±¤Ð¤¤¤¤¤ó¤À¤í¤¦¡©

·ë¶É¡¢¥µ¥¦¥ó¥É¤Ï¤Ä¤±¤Þ¤»¤ó¤Ç¤·¤¿¡£¼ê»ý¤Á¤ÎÁǺà¤ÎÃæ¤Ë¥½¥ì¤Ã¤Ý¤¤¥Ç¡¼¥¿¤¬´û¤Ë¤¢¤ì¤ÐÌĤ餷¤Æ¤¿¤È¤³¤í¤Ê¤Î¤À¤±¤É¡¢¤É¤ì¤â¤Ê¤ó¤À¤«STG¸þ¤±¤Î¥Ç¡¼¥¿¤¸¤ã¤Ê¤¯¤Æ¡Ä¡£

¡ý ²èÁü¤ÈBG¥Þ¥Ã¥×¤Ë¤Ä¤¤¤Æ¡£ :

²èÁü¤ÈBG¥Þ¥Ã¥×¤Ï¡¢ _OpenGameArt.org ¤Ë¤â¥¢¥Ã¥×¤·¤Æ¤ª¤­¤Þ¤·¤¿¡£¥é¥¤¥»¥ó¥¹¤Ï CC0 ¤Ë¤·¤Æ¤ª¤­¤Þ¤·¤¿¤Î¤Ç¡¢¼«Í³¤Ë»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£¥Þ¥Ã¥×¥Ç¡¼¥¿¤Î tmx ¥Õ¥¡¥¤¥ë¤âÆþ¤Ã¤Æ¤Þ¤¹¤Î¤Ç¡¢ _Tiled Map Editor ¤ò»È¤Ã¤Æ¡¢¥Þ¥Ã¥×¤äŨȯÀ¸°ÌÃÖ¤òÊѹ¹¡¦Ä´À°¤·¤¿¤é¡¢¤½¤³¤½¤³Í·¤Ù¤ë¥²¡¼¥à¤Ë¤Ê¤Ã¤¿¤ê¡Ä¤¹¤ë¤Î¤«¤Ê¡£¤É¤¦¤Ê¤ó¤À¤í¤¦¡£¤¦¡¼¤ó¡£

_STG Object Image | OpenGameArt.org
_Side scroll STG BG tile map | OpenGameArt.org

½êÁ§¡¢¥×¥í¥°¥é¥Þ¡¼¤¬ºî¤Ã¤¿²èÁü¤Ê¤Î¤Ç¡¢¤É¤ì¤âÀµÄ¾¡¢½ÐÍè¤Ï¥¤¥Þ¥¤¥Á¤Ç¤¹¤±¤É¡£¤½¤ì¤Ç¤â¤Þ¤¢¡¢¥µ¥ó¥×¥ë¤Ç²¿¤«¤Î¥½¡¼¥¹¤ò½ñ¤¯ºÝ¡¢¥Æ¥¹¥ÈÍѲèÁü¤È¤·¤Æ¤Ï°ì±þ»È¤¨¤ë¤ó¤¸¤ã¤Ê¤¤¤Î¤«¤Ê¤È¡£¤Ç¤â¡¢¤ä¤Ã¤Ñ¤ê¼«µ¡¤¬¡¢¤¢¤Þ¤ê¤Ë¤â¥À¥µ¥¤¡Ä¡£¥â¥Ö»Ò¤µ¤ó¤òÈô¤Ð¤·¤Æ¤ª¤¤¤¿Êý¤¬Îɤ«¤Ã¤¿¤Î¤À¤í¤¦¤«¡Ä¡©

¡ý DXRuby³«È¯ÈǤˤĤ¤¤Æ¡£ :

¢¨ 2014/02/02Äɵ­¡£ _DXRuby ¥×¥í¥¸¥§¥¯¥ÈWiki - ¥Õ¥¡¥¤¥ëÃÖ¤­¾ì ¤Ç¡¢²áµî¤ÎDXRuby³«È¯ÈǤâ¸ø³«¤·¤Æ¤¤¤¿¤À¤±¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤Þ¤·¤¿¡£ºî¼ÔÍÍ¡¢Âбþ¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£¤Ê¤Î¤Ç¡¢°Ê²¼¤Ï¸Å¤¤¾ðÊó¤Ç¤¹¡£


¼ê¸µ¤Î´Ä¶­¤Ç¤Ï¡¢Ruby 1.9.3 + DXRuby 1.5.8dev ¤ÇÆ°¤«¤·¤Æ¤¿¤Î¤Ç¤¹¤±¤É¡£

º£¸½ºß¡¢DXRuby ¤Î Wiki ¤«¤éÆþ¼ê¤Ç¤­¤ë DXRuby³«È¯ÈǤϡ¢Ruby 2.0ÂбþÈǤΤߤʤΤǡġ£Ç°¤Î¤¿¤á¡¢¼«Ê¬¤¬DL¤·¤Æ¼ê¸µ¤Ë»Ä¤·¤Æ¤¿¡¢Ruby 1.9Âбþ¤ÎDXRuby³«È¯ÈǤò¡¢Dropbox ¤Ë¤â(¾¡¼ê¤Ë)ÃÖ¤¤¤È¤­¤Þ¤¹¡£¥³¥ì¡¢²¿¤«ÌäÂ꤬¤¢¤Ã¤¿¤é¡¢¸À¤Ã¤Æ¤â¤é¤¨¤ì¤Ð¾Ã¤·¤È¤­¤Þ¤¹¤Î¤Ç¡Ä¡£

_dxruby158dev-test-mswin32-ruby19.zip
_dxruby157dev-mswin32-ruby19.zip
_dxruby156dev-mswin32-ruby19.zip

1.5.8dev ¤Ï .so ¥Õ¥¡¥¤¥ë¤·¤«Æþ¤Ã¤Æ¤Ê¤¤¤Î¤Ç¡Ä¡£1.5.7dev ÈǤâDL¡¦²òÅष¤Æ¡¢.so ¤À¤±¤ò 1.5.8dev ¤Î¥½¥ì¤Ç¾å½ñ¤­¤·¤Æ¤«¤é¡¢ruby install.rb ¤¹¤ì¤Ð¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤¿¡Ä¤è¤¦¤Êµ¤¤¬¤¹¤ë¤±¤Éµ­²±¤¬²ø¤·¤¤¤Ç¤¹¡£

¤Á¤Ê¤ß¤Ë¾åµ­¤Ï¡¢Ruby 1.9.x ¤ò»È¤Ã¤Æ¤ë¾ì¹ç¤ÎÏäǡġ£Ruby 2.0 ´Ä¶­¤Ê¤é¡¢ _DXRuby ¥×¥í¥¸¥§¥¯¥ÈWiki - ¥Õ¥¡¥¤¥ëÃÖ¤­¾ì ¤«¤é³«È¯ÈǤ¬Æþ¼ê¤Ç¤­¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤òƳÆþ¤·¤Æ¤ß¤Æ¤â¤é¤¨¤ì¤Ð¤È¡£

;ÃÌ¡£DXRuby³«È¯ÈǤäơ¢¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï¥Ð¥°¤¬¤¢¤Ã¤¿¤ê¤¹¤ë¤â¤Î¤Î¡¢µ¡Ç½¤¬¤«¤Ê¤ê¶¯²½¤µ¤ì¤Æ¤ë¤Î¤Ç¡¢¤Ç¤­¤ì¤Ð²áµî¤ÎÈǤâ¤É¤³¤«¤·¤é¤Ç¸ø³«¤·¤Æ¤ª¤¤¤Æ¤¯¤ì¤ë¤ÈÂçÊѤ¢¤ê¤¬¤¿¤¤¤Î¤Ç¤¹¤±¤É¡£

¤Æ¤¤¤¦¤«¡¢²áµîÈǤ¬Æþ¼ê¤Ç¤­¤Ê¤¤¤È¡¢¥Ð¥°¤ò¸«¤Ä¤±¤¿¤È¤·¤Æ¤â¡¢¤É¤ÎÈǤǥ¨¥ó¥Ð¥°¤·¤¿¤Î¤«¥¨¥ó¥É¥æ¡¼¥¶¥ì¥Ù¥ë¤Ç¸¡¾Úºî¶È¤¬¤Ç¤­¤Ê¤¤¤³¤È¤Ëº£º¢µ¤¤Å¤¤¤¿¤ê¤â¤·¤Æ¡£¡Ä¤¤¤äÂԤơ£¤â¤·¤«¤·¤Æ¡¢SourceForge ¤Î¥½¡¼¥¹¤òį¤á¤Æ±¾¡¹¡¢¤È¤«¤¹¤ì¤Ð¤¤¤¤¤Î¤À¤í¤¦¤«¡£¤·¤«¤·¥½¥ì¡¢¤Á¤ç¤Ã¤È¥ì¥Ù¥ë¹â²á¤®¤Æ¡¢¼«Ê¬Ç¡¤­¤Ç¤Ï̵Íý¤Ã¤Ý¤¤Í½´¶¡£

¡ý tmx¥é¥¤¥Ö¥é¥ê¤Ë¤Ä¤¤¤Æ¡£ :

tmx¥é¥¤¥Ö¥é¥ê¤Ï¡¢¥Í¥Ã¥È¤Ë·Ò¤¬¤Ã¤Æ¤ë´Ä¶­¤Ç¡¢
gem install tmx
¤ò¤¹¤ì¤ÐƳÆþ¤Ç¤­¤ë¤Ï¤º¡¢¤Ç¤¹¡£

¡ý 2014/02/02Äɵ­¡£ :

¥³¥á¥ó¥ÈÍó¤Ç¡¢¡ÖMIT¥é¥¤¥»¥ó¥¹¤Î¥é¥¤¥Ö¥é¥ê¤â´Þ¤á¤ë¾ì¹ç¤Ï¡¢¥É¥­¥å¥á¥ó¥È¤Î¤É¤³¤«¤Ë¡Ø¡û¡û¥é¥¤¥Ö¥é¥ê»È¤Ã¤Æ¤ë¤è¡Ù¤È½ñ¤¤¤Æ¤±¤Ð¡¢¤Þ¤¢ÂçÂΤξì¹ç¤Ï¥è¥µ¥²¡×¤È¶µ¤¨¤Æ¤¤¤¿¤À¤¤¤¿¤Î¤Ç¡¢exeÈǤ˥ɥ­¥å¥á¥ó¥È¤òƱº­¤·¤Æ¡¢¤½¤³¤ËÌÀµ­¤·¤Æ¤ª¤­¤Þ¤·¤¿¡£¤¿¤Ö¤ó¤³¤ì¤ÇÌäÂê̵¤¤¡Ä¤Ï¤º¡£¥¢¥É¥Ð¥¤¥¹¡¢¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£

¡ý 2017/03/19Äɵ­¡£ :

Dorpbox¤Îpublic¥Õ¥©¥ë¥À¤¬»à¤ó¤À¤Î¤Ç¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¤òÊѹ¹¡£

¤³¤Îµ­»ö¤Ø¤Î¥Ä¥Ã¥³¥ß

Re: DXRuby¤ÇSTG¥µ¥ó¥×¥ë¤òºîÀ® by mirichi    2014/01/30 22:36
mirichi¤Ç¤¹¡£
tmx¤ÏMIT¥é¥¤¥»¥ó¥¹¤Ç¤¹¤¬¡¢¤³¤ì¤ò´Þ¤à¾ì¹ç¤Î¾ò·ï¤Ë¤Ä¤¤¤Æ¤Ï¿Í¤Ë¤è¤Ã¤Æ¿§¡¹¤Ê´¶¤¸¤Ç¤¹¡£
Î㤨¤Ðmruby¤ÏMIT¥é¥¤¥»¥ó¥¹¤Ç¡¢»È¤¦¾ì¹ç¤Ë¤Ï¥é¥¤¥»¥ó¥¹É½µ­¤âÆäˤ¤¤é¤Ê¤¤¤È¤¤¤¦Î©¾ì¤Ç¤¹¡£
DXRuby¤Ï¸µMIT¥é¥¤¥»¥ó¥¹¤Ç¡¢²¶¸Ä¿Í¤Î²ò¼á¤Ç¤ÏʸÌ̤«¤é¤¹¤ë¤È¥é¥¤¥»¥ó¥¹É½µ­¤¬É¬ÍפʤϤº¤À¤È¤¤¤¦¤³¤È¤Ç¡¢¤½¤ì¤¬É¬Í×̵¤¤zlib/libpng¥é¥¤¥»¥ó¥¹¤Ë°Ü¹Ô¤·¤Þ¤·¤¿¡£http://ja.wikipedia.org/wiki/MIT_License
¤³¤ì¤Î1¤Ë³ºÅö¤¹¤ë¤È¤¤¤¦ÏäǤ¹¤Í¡£
¤¿¤Ö¤ó¡¢MIT¥é¥¤¥»¥ó¥¹¤òÁªÂò¤¹¤ë¤è¤¦¤Ê¿Í¤Ï¥é¥¤¥»¥ó¥¹É½µ­¤¦¤ó¤Ì¤ó¤ÇÅܤ뤳¤È¤Ï̵¤¤¤È»×¤¤¤Þ¤¹¡£tmx¤ò´Þ¤à¥Ð¥¤¥Ê¥ê¤òÇÛÉÛ¤¹¤ë¾ì¹ç¤Ï¡Ötmx»È¤Ã¤Æ¤Þ¡¼¤¹¡×¤Ã¤Æ½ñ¤¤¤Æ¤ª¤±¤Ð¤è¤¤¤°¤é¤¤¤¸¤ã¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£

2014/01/28(²Ð) [nǯÁ°¤ÎÆüµ­]

#1 [anime] ¥Þ¥®¡¢ËâË¡³Ø±à¤Î»ÅÁȤߤβó¤ò»ëÄ°

¤Ê¤«¤Ê¤«¥¤¥¤´¶¤¸¤ÎÀßÄê¤À¤Ê¤È´¶¿´¡£¥Ñ¥ó¥Ô¡¼¤Ï¸¢°ÒÍߤÀ¤Î̾ÍÀÍߤÀ¤ÎÀ¬ÉþÍߤÀ¤Î¤òÍ¥À褹¤ë¤¬¡¢Ëâ½Ñ»Õ¡© ËâƳ»Î¡© ¤ÏÃμ±ÍߤòÍ¥À褹¤ë¡¢¸Î¤Ë¥Ñ¥ó¥Ô¡¼¤«¤é¤Þ¤ó¤Þ¤ÈÍøÍѤµ¤ì¡¢¤·¤«¤âµÔ¤²¤é¤ì¤Æ¤·¤Þ¤¦¤Î¤À¡¢±¾¡¹¤Î¤¢¤¿¤ê¡¢¤Ê¤ó¤À¤«µ»½Ñ¼Ô¤Î°À­¤òÏ¢ÁÛ¤·¤Æ¤·¤Þ¤Ã¤Æ¥â¥ä¥â¥ä¤È¡£

ºÇ½é¤«¤é°­¤¤¤³¤È¤ò¤·¤è¤¦¤È¤·¤Æ°­¤ÎÁÈ¿¥¤òºî¤Ã¤Æ¤·¤Þ¤¦¤è¤ê¡¢À¤¤ÎÃæ¤òÎɤ¯¤·¤è¤¦¤È¤·¤Æ»î¹Ôºø¸í¤·¤Æ¤ë¤¦¤Á¤Ë°­¤ÎÁÈ¿¥¤Ë¤Ê¤ë¤Û¤¦¤¬ÀâÆÀÎϤ¢¤ë¤è¤Ê¤È¡Ä¡£ ¥é¥¹¥Ü¥¹¡©¤ËÁ´Á³°­µ¤¤¬Ìµ¤¯¤Æ¡¢¤à¤·¤íÁ±¹Ô¤ò¤·¤Æ¤ë¤Ä¤â¤ê¤Ê¤¢¤¿¤ê¤â¡Ä¡£¤Æ¤¤¤¦¤«¸½¼ÂÀ¤³¦¤Ë¤â¤½¤¦¤¤¤¦¿Í¤¬¤¿¤¯¤µ¤óµï¤ë¤ï¤±¤À¤±¤É¡Ä¡£

¤·¤«¤·¡¢¤Ê¤ó¤Ç¤Þ¤¿¤³¤³¤ËÍè¤Æ¡¢2ÏÃϢ³ÊüÁ÷¤ò¤·¤¿¤ó¤À¤í¤¦¡£²¿¤«ÊüÁ÷¥¹¥±¥¸¥å¡¼¥ë¤¬Êø¤ì¤ë¤è¤¦¤Ê¤³¤È¤¢¤Ã¤¿¤Ã¤±¡© ¤Ç¤â¡¢ÆâÍÆŪ¤Ë¡¢2ÏÃϢ³¤¬Îɤ¤Êý¸þ¤ËƯ¤¤¤Æ¤¤¤¿¤è¤¦¤Êµ¤¤â¡£

¶âȱÈþ¾¯Ç¯Ëâ½Ñ»Õ¤¬µã¤¯¤È¤³¤í¤Î±éµ»¤Ë´¶¿´¤·¤¿¤Î¤À¤±¤É¡£µ¤¤Ë¤Ê¤Ã¤ÆÄ´¤Ù¤Æ¤ß¤¿¤é¡¢SAO(¥½¡¼¥É¥¢¡¼¥È¥ª¥ó¥é¥¤¥ó)¤Î¼çÌò¤ò¤ä¤Ã¤Æ¤¿Êý¤¬Ã´Åö¤·¤Æ¤¿¤é¤·¤¯¤Æ¡£SAO¤Î»þ¤â¡¢ØÖÓ­¤¹¤ë±éµ»¤¬¾å¼ê¤¤¤Î¤Ç¤Ï¤È»×¤Ã¤¿µ­²±¤¬¡£¤³¤ÎÀ¼Í¥¤µ¤ó¡¢¤³¤¦¤¤¤¦±éµ»¤ò¤µ¤»¤¿¤é¤µ¤¹¤¬¡¢¤Ê¤Î¤Ç¤Ï¤Ê¤¤¤Î¤«¤Ê¤¢¤È¸Ä¿ÍŪ¤Ë¤Ï»×¤¨¤Æ¤­¤Þ¤·¤¿¡£

#2 [anime][neta] ¡Ö¥¨¥Ó¥Ð¥Ç¥«¥â¥Ã¡ª¡×¤Ã¤Æ¤É¤¦¤¤¤¦°ÕÌ£¤Ê¤ó¤À¤í¤¦

¡Ö¥¹¥Ú¡¼¥¹¡ù¥À¥ó¥Ç¥£¡×¤Ë¤Ï¸ø¼°¿áÂؤ¨ÈǤ¬Â¸ºß¤¹¤ë¤È¤¤¤¦Ïäò¸«¤«¤±¤Æ¡¢¤¹¤ë¤È²¬Â¼Ì÷¹¬»á¤¬²Î¤¦¤¢¤ÎOP¶Ê¤â³Æ¹ñ¸ìÈǤ¬Â¸ºß¤¹¤ë¤Î¤Ç¤¢¤í¤¦¤«¡¢¤¢¤ë¤¤¤ÏÊ̤ζʤȺ¹¤·Âؤ¨¤é¤ì¤Æ¤¿¤ê¤¹¤ë¤Î¤À¤í¤¦¤«¡¢¤ß¤¿¤¤¤Ê¤³¤È¤òÌÑÁÛ¤·¤¿¤Î¤Ç¤¹¤±¤É¡£

¤½¤³¤Ç¡¢¤Õ¤È¡¢OP¶ÊÃæ¤Ç¶«¤ó¤Ç¤ë¡Ö¥¨¥Ó¥Ð¥Ç¥«¥â¥Ã¡ª¡×¤Ã¤Æ¡¢¤É¤¦¤¤¤¦É÷¤ËÌõ¤µ¤ì¤ë¤Î¤«¤Ê¤Èµ¿Ìä¤ò»ý¤Ã¤¿¤ï¤±¤Ç¡£

¤½¤â¤½¤â¡¢¡Ö¥¨¥Ó¥Ð¥Ç¥«¥â¥Ã¡ª¡×¤Ã¤Æ¡¢±Ñ¸ì¤Ç¤Ï¤Ê¤ó¤Æ¸À¤Ã¤Æ¤ë¤ó¤À¤í¤¦¡© ¤µ¤é¤Ë¡¢¥½¥ì¤òÆüËܸì¤ËÌõ¤¹¤È¡¢¤É¤¦¤¤¤¦¥Õ¥ì¡¼¥º¤Ë¤Ê¤ë¤ó¤À¤í¤¦¡© ¡ÄÆüËܸì¤Î²Î»ì¤Ë±Ñ¸ì¤Î¹ç¤¤¤Î¼ê¤¬Æþ¤Ã¤Æ¤¤¤ë¤Î¤À¤«¤é¡¢±Ñ¸ì¤Î²Î»ì¤Ë¤·¤¿»þ¤Ï¡¢ÆüËܸì¤Î¹ç¤¤¤Î¼ê¤¬Âå¤ï¤ê¤ËÆþ¤é¤Ê¤¤¤È¤¤¤«¤ó¤è¤Ê¤È¡£

¥°¥°¤Ã¤Æ¤ß¤¿¤é¡¢¡ÖEverybody Come On¡×¤È¶«¤ó¤Ç¤ë¤Ã¤Ý¤¤¡£Everybody ¤Ï¡¢¡Ö³§¤µ¤ó¡×¡Ö³§¡×¤È¤«¤½¤¦¤¤¤¦°ÕÌ£¡© Come on ¤Ï¡¢¡ÖÍ褤¤è¡ª¡×¡Ö¤µ¤¢¹Ô¤³¤¦¡ª¡×¤È¤«¤½¤¦¤¤¤¦°ÕÌ£¤Ê¤Î¤«¤Ê¡© ¤À¤È¤·¤¿¤é¡¢ÆüËܸì¤ËÃÖ¤­´¹¤¨¤ë¤È¡Ä¡£¤Ç¤­¤ì¤Ð¡¢¡Ö¥¨¥Ó¥Ð¥Ç¥«¥â¥Ã¡ª¡×¤ÈƱ¤¸¤è¤¦¤Ê¥ê¥º¥à¤Î¥Õ¥ì¡¼¥º¤¬¥è¥µ¥²¤À¤±¤É¡¢¤Á¤ç¤Ã¤È»×¤¤¤Ä¤«¤Ê¤¤¡£

¤¿¤Ö¤ó¡¢ÆüËܤΥߥ塼¥¸¥·¥ã¥ó¤Î狼¤·¤é¤¬¡¢¤³¤Î¤¢¤¿¤ê¤Î¥¯¡¼¥ë¤ÊÌõ¡¢¥«¥Ã¥³¤è¤¯¤Æ¥Æ¥ó¥Ý¤¬¤¤¤¤¥Õ¥ì¡¼¥º¤ò¡¢´û¤ËȯÌÀ¡¦È¯¸«¤·¤Æ¤½¤¦¤Êͽ´¶¤â¤¢¤ë¤Î¤Ç¤¹¤¬¡£

Á´Á³°ÕÌ£¤òÊѤ¨¤Á¤ã¤Ã¤Æ¡¢¡Ö¥¨¥Ó¥Æ¥ó¥É¥ó¥Ã¡ª¡×¤È¤«¡Ö¥¨¥Ó¥Æ¥ó¥×¥é¥½¥Ð¥Ã¡ª¡×¤È¤«¹ç¤¤¤Î¼ê¤òÆþ¤ì¤ë¤Î¤âÌÌÇò¤¤¤«¤Ê¡¢¤Æ¤Ê¤³¤È¤ò»×¤Ã¤¿¤ê¤â¤·¤¿¤±¤É¡£ºäËܶå¤Î _¡ÖSUKIYAKI¡× ¤ß¤¿¤¤¤Ê´¶¤¸¤Ç¡£¡Ä¤Á¤È̵Íý¤¬¤¢¤ë¤«¡£

¡ý ¡Ö¥Ó¥Ð¡×¤Ã¤Æ¤É¤¦¤¤¤¦°ÕÌ£¤Ê¤ó¤À¤í¤¦¡£ :

¡Ö¥Ó¥Ð¥Ê¥ß¥À¡×¤â¡¢±Ñ¸ìÈÇÅù¤òºî¤ë¤Ê¤é¡¢ÆüËܸì¡Ü±Ñ¸ì¤½¤Î¾¤Ë¤·¤Ê¤¤¤È¤¤¤«¤óµ¤¤¬¤¹¤ë¡£¤·¤«¤·¡¢¡Ö¥Ó¥Ð¡×¤Ã¤Æ¤É¤¦¤¤¤¦°ÕÌ£¤Ê¤ó¤À¤í¤¦¡£

µ¤¤Ë¤Ê¤Ã¤Æ¥°¥°¤Ã¤Æ¤ß¤¿¤é¡¢¤½¤â¤½¤â¡Ö¥Ó¥Ð¡×¤Ï¥¤¥¿¥ê¥¢¸ì¤À¤Ã¤¿¤é¤·¤¤¡Ä¡£

_¡Ö¥Ó¥Ð¡×¤È¤Ï¤É¤¦¤¤¤¦°ÕÌ£¤«¡©¡£ - ³°¹ñ¸ì - ¶µ¤¨¤Æ¡ªgoo
¤¹¤Ç¤Ë²óÅú¤½¤Î¤â¤Î¤Ï½Ð¤Æ¤¤¤Þ¤¹¤¬¡¢¥¤¥¿¥ê¥¢¸ì¤Çviva¡¢´î¤Ó¤òɽ¤¹¥Ð¥ó¥¶¥¤¡ª¤Ç¤¹¡£Ê¸»ú¤È¤·¤Æ½ñ¤¯»þ¤Ï¡¢¤è¤¯£×¤È½ñ¤­¤Þ¤¹¡ÊÀµ³Î¤Ë¤Ï¡¢¿¿¤óÃæ¤ÎÉôʬ¤ò¸ò¤ï¤é¤»¤Æ¡Ë¡£¥¤¥¿¥ê¥¢¤Ë¹Ô¤¯¤È¡¢ÊɤÎÍî½ñ¤­¤Ë
£×¡¡LA¡¡ROMA¡ª
¤Ê¤É¤È½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¡£¥µ¥Ã¥«¡¼¤Î¥í¡¼¥Þ¥µ¥Ý¡¼¥¿¤¬½ñ¤¤¤¿¤â¤Î¤Ç¤¹¤Í¡£

¥¤¥¿¥ê¥¢¿Í¤âÆüËܸì¤Î¡Ö¥Ð¥ó¥¶¥¤¡×¤È¤¤¤¦¸ÀÍÕ¤ò¤±¤Ã¤³¤¦ÃΤäƤ¤¤Þ¤¹¡£¤¬¡¢¥¤¥¿¥ê¥¢¤Ë¸Â¤é¤º²¤ÊƤǤϡÖBanzai¡×¡á¡Ö¹ß»²¡×¤À¤È»×¤Ã¤Æ¤¤¤ë¿Í¤¬Â¿¿ô¡£Î¾¼ê¤ò¾å¤²¤ÆÅê¹ß¤·¤Æ¤¯¤ë»Ñ¤È´ª°ã¤¤¤·¤Æ¤¤¤ë¤ß¤¿¤¤¤Ç¤¹¡£

¡Ö¥Ó¥Ð¡×¤È¤Ï¤É¤¦¤¤¤¦°ÕÌ£¤«¡©¡£ - ³°¹ñ¸ì - ¶µ¤¨¤Æ¡ªgoo ¤è¤ê

¤Ê¤ë¤Û¤É¡¢¡ÖËüºÐ¡×¤È¤¤¤¦°ÕÌ£¤À¤Ã¤¿¤Î¤«¡Ä¡£

¤¹¤ë¤È¡¢¡Ö¥Ó¥Ð¥Ê¥ß¥À¡×¤Î±Ñ¸ìÈǤ¬¤¢¤ë¤È¤·¤¿¤é¡¢¡Ö¥Ð¥ó¥¶¥¤ _¥é¥¯¥ê¥Þ ¡×¤È²Î¤Ã¤¿¤ê¤¹¤ë¤Î¤À¤í¤¦¤«¡© ¤½¤ì¤Ï¤½¤ì¤Ç¤Ê¤ó¤À¤«ÌÌÇò¤½¤¦¡£¤Ç¤â¤Ê¤¤¤«¡£

#3 [unity] Unity2DÊÙ¶¯Ãæ

Unity 4.3 °Ê¹ß¤Ï2D¥²¡¼¥à¤òºî¤ë¤¿¤á¤Îµ¡Ç½¤¬¶¯²½¤µ¤ì¤Æ¤¤¤Æ¡¢¤½¤ì¤é¤Îµ¡Ç½¤¬Unity2D¤È¸Æ¤Ð¤ì¤Æ¤ë¡¢¤é¤·¤¤¤Î¤À¤±¤É¡£¤»¤Ã¤«¤¯¤À¤«¤é¤³¤ÎºÝ¤Á¤ç¤Ã¤ÈÊÙ¶¯¤·¤è¤¦¤«¤Ê¤È¡£

°Ê²¼¤Î²òÀâ¥Ú¡¼¥¸¤ò¸«¤Ê¤¬¤é»î¤·¤Æ¤ë¤È¤³¤í¡£

_[Unity]Unity4.3¤Î2D¥Ä¡¼¥ë¤ò»È¤Ã¤Æ¤ß¤ë -SpriteÊÔ- | ¥¯¥¹¡¼¥ë¥Ö¥í¥°
_[Unity]Unity4.3¤Î2D¥Ä¡¼¥ë¤ò»È¤Ã¤Æ¤ß¤ë -¥³¥Þ¥¢¥Ë¥áÊÔ- | ¥¯¥¹¡¼¥ë¥Ö¥í¥°
_Unity2DÆþÌç ¥¹¥¯¥í¡¼¥ë¥¢¥¯¥·¥ç¥ó¥²¡¼¥à¤òºî¤ë ¥Þ¥Ã¥×ºîÀ® - ¤È¤¢¤ë¥×¥í¥°¥é¥Þ¤ÎÈ÷˺Ͽ
_Unity2DÆþÌç ¥¹¥¯¥í¡¼¥ë¥¢¥¯¥·¥ç¥ó¥²¡¼¥à¤òºî¤ë ¥­¥ã¥é¥¯¥¿¡¼ºîÀ® - ¤È¤¢¤ë¥×¥í¥°¥é¥Þ¤ÎÈ÷˺Ͽ

¡ý ¥°¥ê¥Ã¥É¾å¤ËÇÛÃÖ¤µ¤ì¤¿¥¹¥×¥é¥¤¥È¥·¡¼¥È¤Ë¤Ä¤¤¤Æ¡£ :

¥×¥í¥¸¥§¥¯¥È¥Õ¥©¥ë¥À¤Ë¡¢ _2013/12/23¤Ëºî¤Ã¤¿¥×¥ì¥¤¥ä¡¼²èÁü ¤ò¥³¥Ô¡¼¤·¤Æ»È¤ª¤¦¤È¤·¤¿¤Î¤À¤±¤É¡£Sprite Editor¾å¤Îº¸¾å¤Î¡ÖSlice¡×¤Çʬ³ä¤·¤¿¤é¡¢¥¬¥¿¥¬¥¿¤·¤¿¥¢¥Ë¥á¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¡£

ʬ³ä¤¹¤ë»þ¤Î¥¿¥¤¥×¤ò¡¢Automatic ¤Ë¤·¤Æ¤¿¤Î¤¬¥Þ¥º¤«¤Ã¤¿¤é¤·¤¤¡£Grid ¤òÁª¤ó¤Ç¡¢¥°¥ê¥Ã¥É¤Î²£Éý¤È½ÄÉý¤ò»ØÄꤷ¤¿¤é¡¢64x64¤ÇåºÎï¤Ëʬ³ä¤·¤Æ¤¯¤ì¤¿¡£¡Ä¤â¤Ã¤È¤â¥³¥ì¤À¤È¡¢¥Æ¥¯¥¹¥Á¥ã¤Î̵Â̤ÊÎΰ褬¤¿¤¯¤µ¤ó´Þ¤Þ¤ì¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤â¤¹¤ë¤Î¤À¤±¤É¡£

2014/01/29(¿å) [nǯÁ°¤ÎÆüµ­]

#1 [unity] Unity¤Ç¥¿¥¤¥ë¥Þ¥Ã¥×¤Ã¤Æ¤Ç¤­¤ë¤Î¤À¤í¤¦¤«

Unity2D¤ÎÊÙ¶¯Ãæ¤À¤±¤É¡¢Çطʤ¬¼ä¤·¤¤¤Î¤Ç¡¢BG¤òɽ¼¨¤·¤Æ¤ß¤¿¤¤¤Ê¤È¡£¤Ç¡¢¤»¤Ã¤«¤¯2D¥²¡¼¥à¤Î¥½¥ì¤ò¤ä¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢¥¿¥¤¥ë¥Þ¥Ã¥×¤òɽ¼¨¤·¤Æ¤ß¤¿¤¤¤â¤Î¤À¤Ê¤È¡£¤·¤«¤·¡¢¤½¤ó¤Ê¤³¤È¤Ç¤­¤ë¤ó¤«¤¤¤Ê¤È¡£

¥°¥°¤Ã¤Æ¤ß¤¿¤é¡¢¤¤¤¯¤Ä¤«ÁªÂò»è¤¬¤¢¤ë¤è¤¦¤Ç¡£

_Unity3D - Unity¡¡ÅÓÊÌ2D¥¢¥»¥Ã¥È - Qiita [¥­¡¼¥¿]
_Asset Store - 2D Toolkit

_Unity3D¤Ç¤ª¶â¤ò¤«¤±¤º¤Ë2D¥²¡¼¥à³«È¯ | ¤á¤¬¤ß¤ó¡¥£Ê£Ð
_Asset Store - Orthello 2D Pro

_Asset Store - Tiler
_Asset Store - Rotorz Tile System
_Unity Tiled Tilemaps | Karnak Games
_Asset Store - Tiled Tilemaps
_Asset Store - UniTile

¤¿¤À¤·¡¢¤É¤ì¤â¤¨¤Æ¤·¤ÆÍ­½þ¤ÎAssets¤ÎÌÏÍÍ¡£

¤È»×¤Ã¤¿¤é¡¢¤Á¤ç¤Ã¤Èµ¤¤Ë¤Ê¤ë¥½¥ì¤â¸«¤«¤±¤¿¤ê¡£

_UNITMX, A Tiled Map editor TMX Importer for Unity [RELEASED]
_[RELEASED] X-UniTMX, A Tiled Map TMX Importer for Unity3D
_Chaoseiro / X-UniTMX — Bitbucket
_PolCPP / UniTMX — Bitbucket
_Importing Tiled maps in Unity3D 4.3 using X-UniTMX - YouTube

Tiled Map Editor ¤Î .tmx ¥Õ¥¡¥¤¥ë¤òÆɤó¤ÇÊÑ´¹¤·¤Æ¤¯¤ì¤ë²¿¤«¡¢¤é¤·¤¤¡£¥ª¡¼¥×¥ó¥½¡¼¥¹±¾¡¹¡¢¤È½ñ¤¤¤Æ¤¢¤ë¤è¤¦¤Ë¤â¸«¤¨¤ë¤Î¤À¤±¤É¡£¤·¤«¤·¼«Ê¬¤Ï±Ñ¸ì¤¬Æɤá¤Ê¤¤¡ÜUnity¤Ï¤Þ¤À¾Ü¤·¤¯¤Ê¤¤¤Î¤Ç¡¢Æ³Æþ¤Î»ÅÊý¤¹¤éʬ¤«¤é¤º¡Ä¡£

#2 [cg_tools][unity] ²¾²èÁüºîÀ®¤¬ÃÏÌ£¤ËÌÌÅݽ­¤¤

DXRuby¤Ë¤·¤íUnity¤Ë¤·¤í¡¢²¾²èÁü¤òºîÀ®¤¹¤ëºî¶È¤¬ÃÏÌ£¤ËÌÌÅݽ­¤¤¤Ê¤È¡£¤â¤Ã¤È¥µ¥¯¥µ¥¯¼ê·Ú¤Ëºî¤ì¤Ê¤¤¤â¤Î¤«¡Ä¡£

¡ý MZ-700¤Î¥­¥ã¥é¥°¥é¤òºÆ³èÍÑ¡£ :

¤½¤³¤Ç¤Õ¤È»×¤¤¤Ä¤¤¤¿¡£MZ-700¤Î¥­¥ã¥é¥°¥é¥¨¥Ç¥£¥¿¤ò»È¤¨¤Ð¡¢³¨¿´¤¬Ìµ¤¤¼«Ê¬¤Î¤è¤¦¤Ê¿Í´Ö¤Ç¤â¡¢¥µ¥¯¥µ¥¯¤È²¾²èÁü¤òºî¤ì¤ë¤Î¤Ç¤Ï¤¢¤ë¤Þ¤¤¤«¡£

¤È¤¤¤¦¤³¤È¤Ç¡¢ _We Love MZ-700 ¤Î¥Ú¡¼¥¸¤«¤é¡¢¥­¥ã¥é¥°¥é¥¨¥Ç¥£¥¿ CGE7.exe ¤ò´¶¼Õ¤·¤Ä¤ÄDL¡¦²òÅà¡£¥Õ¥©¥ó¥È¥Ç¡¼¥¿¤¬É¬Íפ餷¤¤¤Î¤Ç¡¢MZ700WIN ¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Õ¥©¥ë¥À¤«¤é¡¢mz700fon.jp ¤ò CGE7.exe ¤ÈƱ¤¸¥Õ¥©¥ë¥À¤Ë¥³¥Ô¡¼¡£¤«¤Ä¡¢mz700fon.dat ¤Ë¥ê¥Í¡¼¥à¤·¤¿¤é¡¢CGE7.exe ¤¬¼Â¹Ô¤Ç¤­¤¿¡£

CGE7¥¹¥¯¥ê¡¼¥ó¥·¥ç¥Ã¥È

¥Õ¥©¥ó¥È¤ò¤¤¤¯¤Ä¤«ÃÖ¤¤¤Æ¤½¤ì¤Ã¤Ý¤¤¤Î¤¬¤Ç¤­¤¿¤é¡¢Print Screen¥­¡¼¤ò²¡¤·¤Æ¡¢¥¹¥¯¥ê¡¼¥ó¥·¥ç¥Ã¥È¤ò»£¤Ã¤Æ¡£EDGE2 ¤Ç¿·¥¦¥¤¥ó¥É¥¦¤ËŽ¤êÉÕ¤±¤Æ¡¢Ê̤理ÇÅɤêľ¤·¤ÆÊݸ¡£

¿§¤òÅɤêľ¤·


¤¦¤à¡£¤³¤ì¤Ê¤é¥µ¥¯¥µ¥¯ºî¤ì¤½¤¦¡£

¤ª¤½¤é¤¯³¨ÉÁ¤­¤µ¤ó¤«¤é¤Ï¡¢¡Ö¤½¤ó¤Ê²èÁü¤Ç¤¤¤¤¤Ê¤é¡¢ºÇ½é¤«¤é¥Õ¥Ä¡¼¤ÎCG¥Ä¡¼¥ë¤Ç¥Æ¥­¥È¡¼¤ËÉÁ¤±¤Ð¤¤¤¤¤À¤í¡×¤È¾Ð¤ï¤ì¤½¤¦¡£¤Ç¤â¡¢³¨ÉÁ¤­¤µ¤ó¤¸¤ã¤Ê¤¤Â¦¤È¤·¤Æ¤Ï¡¢¡Ö¤É¤¦¤ä¤Ã¤Æ¡Ø¥Æ¥­¥È¡¼¡Ù¤ËÉÁ¤±¤Ð¤¤¤¤¤Î¤«¡×¡¢¤½¤ì¤¹¤éʬ¤«¤é¤Ê¤¤¤ï¤±¤Ç¡Ä¡£¤¬¡¢¤·¤«¤·¡¢¡ÖÏȡסÖÀ©¸Â¡×¤¬Í¿¤¨¤é¤ì¤ë¤È¡¢¾õ¶·¤¬¤Á¤ç¤Ã¤È°ã¤Ã¤Æ¤¯¤ë¡£¡Ö¤³¤³¤Ë¤¢¤ëʸ»ú¤À¤±¤ò»È¤Ã¤Æ¡¢¤½¤ì¤é¤·¤¤¥â¥Î¤òÉÁ¤±¡×¤ÈÀ©Ìó¤¬Ä󼨤µ¤ì¤ë¤È¡¢¡Ö¤À¤Ã¤¿¤é¡Ä¤³¤ó¤Ê·Á¤¬ÉÁ¤±¤½¤¦¤«¤Ê¡©¡×¤È¡¢°Æ¤¬¥¹¥é¥¹¥éͯ¤¤¤Æ¤¯¤ë¡£Ã¯¤À¤Ã¤ÆÀѤßÌÚÍ·¤Ó¤Ï¤Ç¤­¤ë¤±¤É¡¢ÀѤßÌڤκï¤ê½Ð¤·¤«¤é»Ï¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¿Í¤Ï¾¯¿ôÇɤʤ櫓¤Ç¡£¤È¤¤¤¦¤³¤È¤Ç¡¢¤â¤·¤«¤¹¤ë¤È¤³¤¦¤¤¤¦¤ä¤êÊý¤ÏÍ­¸ú¤«¤â¤·¤ì¤Ê¤¤¤È»×¤¨¤Æ¤­¤¿¤ê¡£

¤µ¤Æ¤ª¤­¡¢¸¶·¿¤µ¤¨¤Ç¤­¤Æ¤·¤Þ¤¨¤Ð¡Ä¡£¸å¤ÏGIMP¤Ç¡¢¤Á¤ç¤Ã¤È²½¾Ñ¤ò¡Ä

²½¾Ñ¤·¤¿²èÁü

¤¢¤Þ¤êÊѤï¤é¤Ê¤¤¤«¡Ä¡£

¡ý Office·Ï¥½¥Õ¥È¤½¤Î¾¤Ç¤â¤¤¤¤¤è¤¦¤Êµ¤¤¬¤·¤Æ¤­¤¿¡£ :

ñ¤ËÀ©Ìó¤ò¤Ä¤±¤ì¤ÐÉÁ¤­¤ä¤¹¤¯¤Ê¤ë¤Î¤À¡¢¤È¤¤¤¦Ïäʤ顢Î㤨¤Ð LibreOffice Draw(OpenOffice Draw) ¤Î´ðËÜ¿Þ·Á¤À¤±¤òʤ٤ƺî¤ë¤È¤«¡¢Inkscape¤Ç¥°¥ê¥Ã¥É¤Ë¥¹¥Ê¥Ã¥×¤µ¤»¤Æºî¤ë¤È¤«¡¢¤½¤¦¤¤¤¦À©Ìó¤Ç¤â¤¤¤¤¤è¤¦¤Êµ¤¤â¡£

LibreOffice Draw¤Î´ðËÜ¿Þ·Á¤Î¤ß¤Çºî²è

Inkscape¤Ç32x32¥°¥ê¥Ã¥É¤ò¶¯À©¤·¤Æºî²è


¤¦¤à¡Ä¡£¤³¤ì¤Ç¤âÁ´Á³OK¤À¤Ã¤¿¤«¤â¡Ä¡£

#3 [cg_tools] LibreOffice Draw¤ÎSVG¥¨¥¯¥¹¥Ý¡¼¥È¤Ë¤Ï¥Ð¥°¤¬¤¢¤ë¤Ã¤Ý¤¤

LibreOffice Draw ¤ÇºîÀ®¤·¤¿Á°½Ò¤Î²èÁü¤òSVG¥¨¥¯¥¹¥Ý¡¼¥È¤·¤Æ¤ß¤¿¤é¡¢GIMP ¤Ç³«¤¤¤Æ¤â¡¢Inkscape ¤Ç³«¤¤¤Æ¤â¡¢Firefox ¤Ç³«¤¤¤Æ¤â¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Î°ÌÃÖ¤¬ÆÜÄÁ´Á¤Ê¾õÂ֤ˤʤä¿¡£

¤É¤¦¤â¡¢LibreOffice Draw 4.1.4.2 ¤ÎSVG¥¨¥¯¥¹¥Ý¡¼¥È¤Ë¤Ï¡¢¥Ð¥°¤¬¤¢¤ë¤Ã¤Ý¤¤¡£¤µ¤¹¤¬¤Ë¡¢GIMP¡¢Inkscape¡¢Firefox ¤Î3¤Ä¤ÇÀµ¾ï¤ËÉÁ²è¤µ¤ì¤Ê¤¤SVG¤Ê¤Î¤À¤«¤é¡¢LibreOffice Draw ¤ËÌäÂ꤬¤¢¤ë¤ó¤À¤í¤¦¤È¡£

¿§¡¹»î¤·¤Æ¤ß¤¿¡£
¤½¤â¤½¤â¡¢LibreOfiice Draw ¤Ï¡¢¥¢¥ë¥Õ¥¡¥Á¥ã¥ó¥Í¥ë¤Ä¤­²èÁü¤ò¥¨¥¯¥¹¥Ý¡¼¥È¤Ç¤­¤Ê¤¤¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¨¤Æ¤­¤¿¡£¤À¤È¤·¤¿¤é¡¢¥²¡¼¥à¤Î²¾²èÁüºîÀ®¤Ë¤Ï¡¢¤Á¤ç¤Ã¤È»È¤¨¤Ê¤¤¤«¤â¡£

°ì±þ¡¢png¤Ç¥¨¥¯¥¹¥Ý¡¼¥È¤·¤¿»þ¤Ï¥¢¥ë¥Õ¥¡¥Á¥ã¥ó¥Í¥ë¤¬¤Ä¤±¤é¤ì¤ë¤Î¤À¤±¤É¡£¤¿¤À¤·¡¢¥¸¥ã¥®¤¬ÌÜΩ¤Ã¤Æ¤·¤Þ¤¦¤ï¤±¤Ç¡£¤Ê¤ó¤À¤«ÇØ·Ê¿§¤¬¤¯¤Ã¤Ä¤¤¤Æ¤¤¤Æ¡Ä¡£¤É¤¦¤ä¤é¡¢RGB¥Á¥ã¥ó¥Í¥ë¤Ï¥¢¥ó¥Á¥¨¥¤¥ê¥¢¥¹¤¬¤«¤«¤Ã¤Æ¤ë¡¦ÇØ·Ê¿§¤Þ¤Ç´Þ¤ó¤Ç¤¤¤ë¤±¤É¡¢¥¢¥ë¥Õ¥¡¥Á¥ã¥ó¥Í¥ë¤À¤±¤Ï2ÃͲ½¾õÂ֤ǽÐÎϤµ¤ì¤Æ¤·¤Þ¤Ã¤Æ¤ë¤è¤¦¤Ç¡£

LibreOffice Draw ¤Ï¡¢¤³¤Î¼ê¤Î²èÁüºîÀ®¤Ë»È¤¨¤Ê¤¤¡¢¤È»×¤Ã¤Æ¤ª¤¤¤¿Êý¤¬¤¤¤¤¤Î¤«¤â¤·¤ì¤Ê¤¤¡£¤¢¤¯¤Þ¤Ç°õºþÍÑʸ½ñ¤òºî¤ë¤¿¤á¤Î¥½¥Õ¥È¤À¤«¤é¡¢»ÅÊý¤Ê¤¤¤Î¤À¤í¤¦¤Ê¡Ä¡£

2014/01/30(ÌÚ) [nǯÁ°¤ÎÆüµ­]

#1 [anime][game][dxruby] ¤È¤¢¤ëÈô¹Ô»Î¤ÎÎø²Î¡¢1¡Á3Ïäò»ëÄ°

Çúȯ¥¨¥Õ¥§¥¯¥È¤¬»²¹Í¤Ë¤Ê¤ë¥¢¥Ë¥á¤À¤Ê¤È»×¤¤¤Ê¤¬¤éį¤á¤¿¤ê¡£½½»ú·¿¤ÎÆ©²á¸÷¡¢±ß¤ÈľÀþ¡¢Çúȯ»þ¤Î²èÌÌ¥Õ¥é¥Ã¥·¥åÅù¡¹¡£¥³¥ÞÁ÷¤ê¤·¤Æ¡¢Çò¥Õ¥ì¡¼¥àÁ°¤Î¹õ¥Õ¥ì¡¼¥à¤ÎÆþ¤ìÊý¤Ë¤Ä¤¤¤ÆÊÙ¶¯¤ò ¡½¡½ Çúȯ²Õ½ê¤ò»öÁ°¤ËÆ©²á¸÷¤Ç¸÷¤é¤»¤Æ¤ª¤¯¤Î¤¬´ðËܵ»¤À¤Ã¤¿¤Î¤«¡¢¤ß¤¿¤¤¤Ê¡£¾Ü¤·¤¤¿Íã¤Ë¤Ï¡¢¡Öº£º¢ÃΤ俤Τ«¡Ä¡×¤ÈÊò¤ì¤é¤ì¤½¤¦¤À¤±¤É¡£

¤Ê¤ó¤À¤«¥È¥à¥¹¤Ã¤Ý¤¤¥¢¥Ë¥á¤À¤Ê¤È»×¤Ã¤¿¤é¡¢¤ä¤Ã¤Ñ¤ê¥È¥à¥¹¥¨¥ó¥¿¡¼¥Æ¥¤¥á¥ó¥È¤Î̾Á°¤¬¤¢¤Ã¤Æ¡£¼ÂºÝºî¤Ã¤Æ¤ë¤Î¤ÏÊÌ¥¹¥¿¥¸¥ª¤À¤Ã¤¿¤ê¤¹¤ë¤Î¤Ç¤Ï¤ÈÁÛÁü¤·¤Ä¤Ä¡¢¤·¤«¤·¡¢¼«Ê¬¤Ï°ìÂΡ¢¤É¤³¤é¤Ø¤ó¤Ë¥È¥à¥¹¤é¤·¤µ¤ò´¶¤¸¤Æ¤¤¤ë¤Î¤À¤í¤¦¡¢¤Æ¤Êµ¿Ì䤬ͯ¤¤¤Æ¤­¤¿¤ê¤â¤·¤Æ¡£¡Ä¤½¤Î¤Ø¤ó¡¢¼«Ê¬¤Ç¤â¤è¤¯Ê¬¤«¤é¤º¡£IG¤Ã¤Ý¤¤¤È¤«¡¢¥µ¥ó¥é¥¤¥º¤Ã¤Ý¤¤¤È¤«¡¢¥Ü¥ó¥º¤Ã¤Ý¤¤¤È¤«¡¢¥¬¥¤¥Ê¤Ã¤Ý¤¤¤È¤«¡¢¥Ç¥£¡¼¥ó¤Ã¤Ý¤¤¤È¤«¡£¤É¤¦¤¤¤¦Éôʬ¤Ç¡¢¤½¤ì¤é¤ò´¶¤¸¤ë¤Î¤À¤í¤¦¡Ä¡£

¡ý 60¥³¥Þ/ÉäÀ¤È¤Þ¤¿¤Á¤ç¤Ã¤È°ã¤¦¡£ :

¥Õ¥é¥Ã¥·¥å¤ÎÆþ¤ìÊý¤Ã¤Æ¡¢¥²¡¼¥à¤Î60¥³¥Þ¡¿ÉäǤä¤ë¤È¡¢°ì½Ö²á¤®¤Æ¤Ê¤ó¤«°ã¤¦¡Ä¡£¤Ê¤â¤ó¤Ç¡¢ _ÀèÆüºî¤Ã¤¿¥µ¥ó¥×¥ë ¤Ç¤Ï¡¢¤ï¤¶¤ï¤¶24¥³¥Þ/ÉÃÁ°¸å¤Î¥Õ¥é¥Ã¥·¥å¤Ë¤Ê¤ë¤è¤¦¤ËÄ´À°¤·¤Æ¤¤¤¿¤Î¤Ç¤¹¤±¤É¡£

¥¢¥Ë¥á¤ËÈæ¤Ù¤ë¤È¡¢¥²¡¼¥à¤Ï¤¨¤Æ¤·¤Æ¥Õ¥ì¡¼¥à¥ì¡¼¥È¤¬¹â¤¤¤Î¤À¤«¤é¡¢¥²¡¼¥à¤Ê¤ê¤Î¶Å¤Ã¤¿¥Õ¥é¥Ã¥·¥å¤¬¤Ç¤­¤½¤¦¤Êͽ´¶¤â¤¢¤ë¤Î¤À¤±¤É¡£¾ð¤±¤Ê¤¤¤±¤É¡¢¼«Ê¬¤Ï̤¤À¤Ë¡Ö¤³¤ì¤¾¥²¡¼¥à±ÇÁü¡×¤Ê¥Õ¥é¥Ã¥·¥å¤Ï»×¤¤¤Ä¤¤¤Æ¤Ê¤¯¤Æ¡£

¤Þ¤¢¡¢¥Ý¥±¥â¥ó¥·¥ç¥Ã¥¯°Ê¹ß¡¢°ìÈ̤λÔÈÎ¥²¡¼¥à¤Ï¥Õ¥é¥Ã¥·¥å¤µ¤»¤ëºÝ¤Îµ¬Ä꤬½ÐÍè¾å¤¬¤Ã¤Æ¤¤¤Æ¡¢¤½¤ÎÏȤÎÃæ¤Ç¤ä¤ë¤·¤«¤Ê¤¤¤Ï¤º¤À¤«¤é¡¢¡Ö¤½¤â¤½¤â¥Õ¥é¥Ã¥·¥åÆþ¤ì¤ë¤Ê¤è¡×¤È¸À¤ï¤ì¤ë¾ìÌ̤⤢¤ê¤½¤¦¤Ç¤¹¤±¤É¡£Æ±¿Í¤Ê¤éÀ©¸Â¤Ï¤Ê¤¤¤«¤é¹©Éפ·ÊüÂê¡¢¤À¤Ã¤¿¤ê¤¹¤ë¤Î¤«¤·¤é¡©

#2 [windows][prog][unity] VisualStudio Express 2013 for WIndows Desktop¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ß¤¿

VS2012 ¤Ã¤Æ¹Ô¤Î°ÜÆ°¤Ï¤Ç¤­¤Ê¤¤¤Î¤«¤Ê¡¢¤È»×¤Ã¤Æ¥°¥°¤Ã¤Æ¤¿¤é¡¢¡ÖVS2013¤«¤é¹Ô¤Î°ÜÆ°¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡×¤Æ¤ÊÏäò¸«¤«¤±¤¿¤ï¤±¤Ç¡£¤À¤Ã¤¿¤é»î¤·¤Ë¿¨¤Ã¤Æ¤ß¤è¤¦¤«¤Ê¡¢¤È¡£

VS2012¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿ºÝ¤Ï¡¢²¿¤«¿§¡¹¤È¥È¥é¥Ö¥ë¤¬µ¯¤­¤Æ¤·¤Þ¤Ã¤¿¤è¤¦¤Êµ­²±¤â¤¢¤ë¤Î¤À¤±¤É¡£VS2013¤Ï¡¢¤½¤ì¤é¤·¤¤ÉÔ¶ñ¹ç¤Ë¤ÏÁø¶ø¤»¤º¡£

µ¯Æ°¤·¤Æ¤ß¤¿¤é¡¢¡ÖVisual Studio¤Ë¥µ¥¤¥ó¥¤¥ó¤»¤è¡×¤È¸À¤Ã¤Æ¤­¤¿¡£Microsoft¥¢¥«¥¦¥ó¥È¤Ç¥µ¥¤¥ó¥¤¥ó¤¹¤ì¤Ð¤¤¤¤¤Î¤«¤Ê¡Ä¡©

Ëè²óµ¯Æ°»þ¤Ë¤Á¤ç¤Ã¤ÈÂÔ¤¿¤µ¤ì¤ë¤è¤¦¤Ê´¶¤¸¤Ï¤¹¤ë¤Î¤À¤±¤É¡¢¤½¤ì°Ê³°¤ÏÌäÂê̵¤·¡Ä¤È¤¤¤¦¤ï¤±¤Ç¤â¤Ê¤«¤Ã¤¿¡£,cs Åù¤¬VS2012¤Ë´ØÏ¢ÉÕ¤±¤µ¤ì¤¿¤Þ¤Þ¤Ç¡£»ÅÊý¤Ê¤¤¤Î¤Ç¡¢VS2013¡¢VS2012¤ò¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤«¤é¡¢VS2013¤À¤±ºÆ¥¤¥ó¥¹¥È¡¼¥ë¡£

¤È¤ê¤¢¤¨¤º¡¢¤³¤ì¤«¤é¿¨¤Ã¤Æ¤ß¤ëͽÄê¡£

#3 [unity] Unity2D¤Ç¿½Å¥¹¥¯¥í¡¼¥ë¤ò¼Â¸³

Unity¤ò»È¤Ã¤Æ2D¥²¡¼¥à¤òºî¤ë¤Ê¤é¡¢Â¿½Å¥¹¥¯¥í¡¼¥ë ¡½¡½ Parallax ¤È¤ä¤é¤Ïɬ¿Ü¤À¤í¤¦¤È»×¤¨¤Æ¤­¤¿¤ê¡£¤Ê¤Î¤Ç¡¢¤½¤Î¤¢¤¿¤ê¤ò¼Â¸³¡£

¡ý µðÂç¤Ê¥Ý¥ê¥´¥ó¤ò¥«¥á¥é°ÌÃÖ¤ÎÊѲ½¤Ë¹ç¤ï¤»¤ÆÆ°¤«¤·¤Æ¤¤¤¯ÊýË¡¡£ :

°Ê²¼¤Î¥Á¥å¡¼¥È¥ê¥¢¥ëÆ°²è¤¬»²¹Í¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¤¢¤ê¤¬¤¿¤ä¡£

_Unity 2D Game Development 16 : Creating a Parallax Background - YouTube
_Unity 2D Game Development 17 : Flexible Parallax Scripting - YouTube

¤Ç¡¢»²¹Í¤Ë¤·¤Æ¡¢°ì±þ¿½Å¥¹¥¯¥í¡¼¥ë¤Ï¤Ç¤­¤¿¤ï¤±¤Ç¤¹¤±¤É¡£
¥Á¥å¡¼¥È¥ê¥¢¥ëÆ°²è¤Î¼êË¡

_Parallax.cs
using UnityEngine;
using System.Collections;

public class Parallax : MonoBehaviour {
    public bool followcamera;
    public float offset;
    private Vector3 oldpos;
    private Vector3 oldcampos;

    // Use this for initialization
    void Start () {
        oldpos = transform.position;
        oldcampos = Camera.main.transform.position;
    }
    
    // Update is called once per frame
    void Update () {
        if (followcamera) {
            Vector3 v = new Vector3((Camera.main.transform.position.x - oldcampos.x) / offset, 0, 0);
            transform.localPosition = oldpos + v;
        }
        else {
            Vector3 v = new Vector3((oldcampos.x - Camera.main.transform.position.x) / offset, 0, 0);
            transform.localPosition = oldpos + v;
        }
    }
}
  • Çطʤ˻Ȥ¦²èÁü¤Ï1024x1024¡¢¤«¤Ä¥·¡¼¥à¥ì¥¹¤Ë¤·¤¿¡£¤½¤Î²èÁü¤ò Material ¤Ë³ä¤êÅö¤Æ¡£
  • µðÂç¤Ê Plane ¤òºî¤Ã¤Æ³ºÅö Material ¤ò»ØÄê¡£¥¿¥¤¥ë²ó¿ô¡©¤òÏ®¤Ã¤Æ¸«¤¿ÌܤòÄ´À°¡£
  • ³ºÅö Plane ¤Ë Parallax.cs ¤ò³ä¤êÅö¤Æ¤Æ¡¢offset ¤ÎÃͤò³ÆPlaneËè¤ËÊѤ¨¤Æ¤ª¤±¤Ð¡¢¥¹¥¯¥í¡¼¥ë®ÅÙ¤¬ÊѤï¤ë¡£

¤·¤«¤·¡¢µðÂç¤Ê¥Ý¥ê¥´¥ó¤¬ ¡½¡½ ¤È¤¤¤¦¤«µðÂç¤Ê Plane ¤¬¡¢¥É¥Ç¡¼¥ó¤ÈÃÖ¤¤¤Æ¤¢¤ë¤Î¤Ï¤É¤¦¤Ê¤ó¤À¤í¤¦¤È¡£¤Ê¤ó¤À¤«´Ä¶­¤Ë¤è¤Ã¤Æ¤Ï·ã¤·¤¯ÃÙ¤¯¤Ê¤Ã¤¿¤ê¤·¤½¤¦¤À¤Ê¤¢¡¢¤È¡£¤Þ¤¢¡¢Plane ¤À¤«¤é¡¢µðÂç¤Ê1Ëç¤Ë¸«¤¨¤Æ¤â¡¢¼ÂºÝ¤ÏºÙ¤«¤¯¥Ý¥ê¥´¥ó¤Çʬ³ä¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¡¢ºÇ¾®¸Â¤Î¥Ý¥ê¥´¥ó¿ô¤À¤±ÉÁ²è¤µ¤ì¤¿¤ê¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È³Ú´Ñ»ë¤·¤Æ¤¤¤¿¤ê¤â¤¹¤ë¤Î¤Ç¤¹¤¬¡£

¡ý ¥Æ¥¯¥¹¥Á¥ã¤Îuv¥ª¥Õ¥»¥Ã¥ÈÃͤòÊѹ¹¤·¤ÆÆ°¤«¤·¤Æ¤¤¤¯ÊýË¡¡£ :

¤È¤¤¤¦¤³¤È¤Ç¡¢¥Æ¥¯¥¹¥Á¥ã¤Îuv¥ª¥Õ¥»¥Ã¥È¤ò ¡½¡½ ¤È¤¤¤¦¤« Material ¤Î¥ª¥Õ¥»¥Ã¥ÈÃͤòÏ®¤Ã¤Æ¥¹¥¯¥í¡¼¥ë¤¹¤ë¼êË¡¤â»î¤·¤Æ¤ß¤¿¤ê¡£

°Ê²¼¤Îµ­»ö¤¬»²¹Í¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¤¢¤ê¤¬¤¿¤ä¡£

_Unity¤Ç¿½Å¥¹¥¯¥í¡¼¥ë - kamemo -Unity¤Ï¤¸¤á¤Þ¤·¤¿-
_UNITY¤Ç2D¥²¡¼¥à³«È¯¤È¤«C#¤È¤«¡£: UNITY 2D ¥²¡¼¥à³«È¯¡§ Çطʤο½Å¥¹¥¯¥í¡¼¥ë
_¥Æ¥¯¥¹¥Á¥ã¤Îµ¼»÷¥¹¥¯¥í¡¼¥ë¤È¾®µ»

¤Ç¡¢»²¹Í¤Ë¤·¤Æ¡¢¤³¤ó¤Ê´¶¤¸¤Ë¡£
uv¥ª¥Õ¥»¥Ã¥ÈÃͤòÊѹ¹¤¹¤ë¼êË¡

_Parallax2.cs
using UnityEngine;
using System.Collections;

// ¥«¥á¥éÄɽ¾¤·¤Ê¤¬¤é¥Æ¥¯¥¹¥Á¥ã(¥Þ¥Æ¥ê¥¢¥ë)¤Î¥ª¥Õ¥»¥Ã¥È¤òÊѹ¹¤·¤Æ¿½Å¥¹¥¯¥í¡¼¥ë
public class Parallax2 : MonoBehaviour
{
    public float scroll_speed = 1.0f;
    public float div_v = 20.0f;
    private Vector3 oldcampos;
    private Vector3 oldpos;

    // Use this for initialization
    void Start()
    {
        // ½é´ü°ÌÃÖ¤ò³Ð¤¨¤Æ¤ª¤¯
        oldpos = transform.position;
        oldcampos = Camera.main.transform.position;
    }

    // Update is called once per frame
    void Update()
    {
        // ¥«¥á¥éºÂɸ¤ÈƱ¤¸¤Ë¤·¤ÆÄɽ¾¤µ¤»¤ë
        Camera camera = Camera.main;
        transform.localPosition = new Vector3(camera.transform.position.x, oldpos.y, oldpos.z);

        // ¥Æ¥¯¥¹¥Á¥ã¥ª¥Õ¥»¥Ã¥È¤ò¤º¤é¤¹Î̤ò»»½Ð
        float u = (camera.transform.position.x - oldcampos.x) / div_v;
        renderer.material.mainTextureOffset = new Vector2(u * scroll_speed, 0);
    }
}
Plane¼«ÂΤϡ¢¾ï¤Ë¥«¥á¥é¤Îx,yºÂɸ¤ÈƱ¤¸Ãͤˤ·¤Æ¡¢uv¥ª¥Õ¥»¥Ã¥ÈÃͤΤº¤é¤·¶ñ¹ç¤ò¡¢³Æ Plane Ëè¤ËÊѤ¨¤ë¡¢¤ß¤¿¤¤¤Ê¡£

¥³¥ì¡¢Plane ¤ò»È¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤±¤É¡£Quad ¤Ç¤âÎɤµ¤½¤¦¤Ê¡£

¥³¥ì¤ò Sprite ¤Ç¤ä¤ì¤Ê¤¤¤«¤Ê¡Ä¡£

1024x1024¤ÎµðÂç¤Ê¥·¡¼¥à¥ì¥¹²èÁü¤òÍÑ°Õ¤·¤Æ¤ëÅÀ¤â¡¢¤Ê¤ó¤À¤«¤Á¤ç¤Ã¤È°ú¤Ã³Ý¤«¤ë¡£¤â¤Ã¤È¾®¤µ¤¤²èÁü¤Ç¼Â¸½¤Ç¤­¤Ê¤¤¤«¤·¤é¡£¤Þ¤¢¡¢º£¸å¤Î²ÝÂê¤Ã¤Æ¤³¤È¤Ç¡£

¡ý Æ°ºî¥Ç¥â¡£ :

°ì±þ Dropbox ¤ËÃÖ¤¤¤Æ¤ß¤¿¤ê¡£

_Æ°ºî¥Ç¥â (2016/09/04,2017/03/19 ÃÖ¤­¾ì½ê¤òÊѹ¹) ( _Unity - Web Player ¤¬É¬Í×)

¢«¡¢¢ª¡¢¢¬¥­¡¼¤Ç°ÜÆ°¤·¤«¤Ç¤­¤Þ¤»¤ó¤¬¡¢BG¤¬Â¿½Å¥¹¥¯¥í¡¼¥ë¤·¤Æ¤ë¤³¤È¤°¤é¤¤¤Ï³Îǧ¤Ç¤­¤ë¤«¤Ê¤È¡Ä¡£

¡ý Çطʤò3D¤Ë¤·¤¿¤Û¤¦¤¬Áᤤ¤ó¤¸¤ã¤Ê¤¤¤«¤È¸À¤¦µ¤¤â¤¹¤ë¡£ :

¤É¤¦¤·¤ÆBG¤ò¿½Å¥¹¥¯¥í¡¼¥ë¤µ¤»¤ë¤«¤È¸À¤¦¤È¡¢¤»¤á¤Æ¤½¤³¤À¤±¤Ç¤âΩÂÎŪ¤Ë¸«¤»¤¿¤¤¤«¤é¡¢¤Ê¤ï¤±¤Ç¤¹¤±¤É¡£

¤·¤«¤·¡¢¤À¤Ã¤¿¤é¡¢¥«¥á¥é¤òÊ¿¹ÔÅê±Æ ¡½¡½ Orthographic ¤Ë¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¤Æ¡¢Æ©»ëÅê±Æ ¡½¡½ Perspective ¤Ë¤¹¤ì¤ÐºÑ¤à¤ó¤¸¤ã¤Ê¤¤¤Î¡¢¤È¤¤¤¦µ¤¤â¤·¤Æ¤¤¤¿¤ê¡£3D¥â¥Ç¥ë¤òÇطʤȤ·¤ÆÃÖ¤¤¤È¤¤¤ÆÆ©»ëÅê±Æ¤·¤¿¤Û¤¦¤¬¡¢¡ÖΩÂÎŪ¤Ê¸«¤¿Ìܤ¬Íߤ·¤¤¡×¤È¤¤¤¦ÌÜŪ¤ò¡¢´Ö°ã¤¤¤Ê¤¯²Ì¤¿¤»¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤·¤é¤È¡£

¤¿¤À¡¢¤½¤ì¤Ï¤½¤ì¤Ç²¿¤«ÌäÂ꤬¤¢¤Ã¤¿¤ê¤¹¤ë¤Î¤«¤Ê¤È¡£¤¢¤ë¤¤¤Ï¡¢±ÇÁüɽ¸½¤È¤·¤Æ¡¢¤¢¤¨¤ÆÊ¿Ì̤餷¤µ¤ò½Ð¤·¤¿¤¤¤ÈÍ׵ᤵ¤ì¤ë¾ìÌ̤⤢¤ë¤Î¤À¤í¤¦¤«¡£¼Â¤Ï¤½¤³¤é¤Ø¤ó¡¢¼«Ê¬¤ÎÃæ¤Ç¤ÏÇÄ°®¤Ç¤­¤Æ¤Ê¤¤¤Î¤Ç¤¹¤±¤É¡£

¡ý 2017/03/19Äɵ­¡£ :

Dropbox¤Îpublic¥Õ¥©¥ë¥À¤¬»à¤ó¤À¤Î¤Ç¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¤òÊѹ¹¡£

2017/03/19¸½ºß¡¢Firefox¡¢GoogleChrome¤ÎºÇ¿·ÈÇ¤Ç¤Ï Unity Web Player ¤¬¤½¤â¤½¤âÆ°¤«¤Ê¤¤¤Î¤Ç¡¢¤³¤ÎÆüµ­¤Ç¸ø³«¤·¤Æ¤ëUnity´Ø·¸¤Î¥¢¥ì¥³¥ì¤âÆ°¤«¤Ê¤¤¤Ç¤¹¡£Windows10 + IE11 ¤Ê¤éÆ°ºî¤¹¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤·¤¿¤¬¡¢¤¤¤Ä¤Þ¤ÇÆ°¤«¤»¤ë¤Î¤ä¤é¡Ä¡£

#4 [game][cg_tools] Vertex¤Ê¤ëPDF¤òį¤á¤Æ¶½Ê³¤·¤Æ¤­¤¿

_VERTEX 2 - 300¥Ú¡¼¥¸¤ÎÂç¥Ü¥ê¥å¡¼¥à¡ªÍ­Ì¾¥²¡¼¥à¥¢¡¼¥Æ¥£¥¹¥È¤¬ÀªÂ·¤¤¤Î¥ê¥¢¥ë¥¿¥¤¥à¥¢¡¼¥Èµ»½Ñ²òÀâ¡Ö̵ÎÁPDF¥Þ¥¬¥¸¥ó¡×Â裲ÃƤ¬¿ë¤Ë¥ê¥ê¡¼¥¹¡ª | 3D¿Í -3dnchu- ËèÆü¹¹¿·CG·Ï¾ðÊó¥µ¥¤¥È ¤È¤¤¤¦µ­»ö¤òÌܤˤ·¤Æ¶½Ì£¤¬Í¯¤¤¤Æ¡¢ _Vertex ¤Ê¤ë̵ÎÁPDF¤òDL¤·¤Æį¤á¤Æ¤ß¤¿¤Î¤À¤±¤É¡£(¸ø¼°¥µ¥¤¥È¤Ë¤Ï¡¢¡Ö´óÉÕ¤·¤Æ¤¯¤ì¤ì¤Ð¼¡¹æ¤â½Ð¤»¤ë¤è¡ª¡×¤È½ñ¤¤¤Æ¤¢¤ë¤è¤¦¤Ë¤â¸«¤¨¤ë¡£)

±Ñ¸ì¤¬Æɤá¤Ê¤¤¤«¤é²¿¤¬½ñ¤¤¤Æ¤¢¤ë¤Î¤«Á´Á³Ê¬¤«¤ó¤Ê¤¤¤±¤É¡¢²èÁü¸«¤Æ¤ë¤À¤±¤Ç¶½Ê³¤·¤Æ¤­¤Þ¤·¤¿¡£¥à¥Ã¥Ï¡¼¥Ã¡£¥ª¥é¡¢¥ï¥¯¥ï¥¯¤·¤Æ¤­¤¿¤¾¡£¤Æ¤¤¤¦¤«¡¢¤ä¤Ã¤Ñ¤ê³¨ÉÁ¤­¤µ¤ó¤Ï¥¹¥´¥¤¡£¤É¤¦¤·¤Æ¤³¤ó¤Ê¤Ë¥«¥Ã¥³¥¤¥¤¥á¥«¤¬ÉÁ¤±¤ë¡¦ºî¤ì¤ë¤Î¤À¤í¤¦¡Ä¡£

#5 [zatta] ±Ñ¸ì¡¢Ê¬¤«¤ê¤Þ¤»¤ó

ÀèÆü¡¢ _OpenGameArt.org¤Ë²èÁü¤ò¥¢¥Ã¥×¥í¡¼¥É ¤·¤¿¤é¡¢±Ñ¸ì¤Ç²¿¤«¥³¥á¥ó¥È¤ò¤Ä¤±¤Æ¤â¤é¤¨¤¿¤è¤¦¤Ç¡£

¤·¤«¤·¡¢¼«Ê¬¡¢±Ñ¸ì¤¬Æɤá¤Ê¤¤¿Í´Ö¤Ê¤Î¤Ç¡¢²¿¤¬½ñ¤¤¤Æ¤¢¤ë¤Î¤«Ê¬¤«¤é¤Ê¤¯¤Æ¡£¥Ñ¥ì¥Ã¥È¤Ë¤Ä¤¤¤Æ¸ÀµÚ¤·¤Æ¤ë¤é¤·¤¤¡¢¤°¤é¤¤¤Î¤³¤È¤·¤«Ê¬¤«¤é¤º¡Ä¡£¤â¤·¤«¤¹¤ë¤ÈÍ×˾¤¬½ñ¤«¤ì¤Æ¤ë¤Î¤«¤â¤·¤ì¤Ê¤¤¤±¤É¡Ä¡£¤¦¤¦¡Ä¥´¥á¥ó¥Ê¥µ¥¤¡Ä¡£±Ñ¸ì¡¢Ê¬¤«¤ê¤Þ¤»¤ó¡Ä¡£Sorry. I can't understand English. ¤È½ñ¤¤¤Æ¤ª¤±¤Ð¤¤¤¤¤Î¤À¤í¤¦¤«¡£

¤Þ¤¢¡¢¤»¤Ã¤«¤¯CC0¤Ç¸ø³«¤·¤Æ¤ë¤Î¤À¤«¤é¼«Í³¤ËÊѹ¹¤·¤Æ»È¤Ã¤Æ¤¯¤À¤µ¤¤¡¢¤È¤·¤«¸À¤¤¤è¤¦¤¬¤Ê¤¯¡£

Á°½Ò¤Î¡¢Vertex¤Ê¤ëPDF¤â¤½¤¦¤À¤±¤É¡¢±Ñ¸ì¤¬Æɤá¤Ê¤¤¤È¿§¡¹¤È»¤ò¤·¤Þ¤¹¤Ê¡£¤È¸À¤Ã¤Æ¤â¡¢º£¤«¤éÊÙ¶¯¤·¤¿¤Ã¤Æ¡¢Æɤá¤ë¤è¤¦¤Ë¤Ê¤ë¤È¤Ï»×¤¨¤Ê¤¤¤·¡Ä¡£¤É¤¦¤·¤Æ¼«Ê¬¤Ï¡¢¤³¤ó¤Ê¤Ë¤â±Ñ¸ì¤¬¥À¥á¤Ê¤ó¤À¤í¤¦¡Ä¡£¥×¥í¥°¥é¥à¤ò½ñ¤¯»þ¤Ï¡¢¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ç½ñ¤¤¤Æ¤ë¤Î¤Ë¤Ê¤¢¡Ä¡£

2014/01/31(¶â) [nǯÁ°¤ÎÆüµ­]

#1 [anime] ¥×¥ê¥­¥å¥¢ºÇ½ª²ó1ÏÃÁ°¤ÈºÇ½ª²ó¤ò»ëÄ°

¡ÖÀµµÁ¤ÎÌ£Êý¤Ê¤ó¤À¤«¤é±£¤¹É¬ÍפϤʤ¤¡ª¡×¤Æ¤ÊÂæ»ì¤Ë¡¢¡Ö¤ª¤ª¡Ä¡×¤È´¶¿´¤·¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£¹Í¤¨¤Æ¤ß¤ì¤Ð¡¢¤½¤ÎÄ̤ê¤À¤è¤Ê¡Ä¡£¤Ê¤ó¤« ±£¤·Â³¤±¤Ê¤­¤ã¤¤¤±¤Ê¤¤»ö¾ð¤¬¤¢¤ë¤ï¤±¤Ç¤Ê¤·¡¢°­»ö¤òƯ¤¤¤Æ¤ë¤ï¤±¤Ç¤â¤Ê¤¤¤Î¤À¤·¡£·Ù»¡´±¤ä¼«±ÒÂ⤬ ÁÇ´é±£¤·¤Ê¤¬¤é»Å»ö¤ò¤¹¤ë¤«¤È¸À¤¨¤ÐÊ̤ˤ½¤¦¤¤¤¦¤ï¤±¤Ç¤â¤Ê¤¤¤Î¤À¤«¤é¡¢¥×¥ê¥­¥å¥¢¤À¤Ã¤Æ¡¢¤Í¤¨¡£

¹¹¤Ë¥é¥¹¥È¤Ç¡¢ ¹ñ²È¤«¤éÍ×ÀÁ¤ò¼õ¤±¤Æ³èÆ°¤¹¤ë¥×¥ê¥­¥å¥¢¤È¤¤¤¦¸÷·Ê¤òÌܤˤ·¤Æ¡¢¡Ö¤½¤ÎÀßÄê¤Ç´Ý¡¹Ä̤·¤Á¤ã¤Ã¤Æ¤â¡¢ÌÌÇò¤«¤Ã¤¿¤«¤â¡Ä¡×¤È»×¤Ã¤Æ¤·¤Þ¤Ã¤¿¤ê¤â¤·¤Æ¡£Ã¯¤«¤¬¸À¤Ã¤Æ¤¿¤±¤É¡¢¥¢¥á¥³¥ß¥Ò¡¼¥í¡¼¤Ã¤Æ¤½¤¦¤¤¤¦´¶¤¸¤À¤Ã¤¿¤ê¤¹¤ë¤·¡¢¼Â¤Ï·ë¹½¥¢¥ê¤ÊÀßÄê¤Ê¤Î¤À¤í¤¦¤«¡£

²¿¤Ë¤»¤è¡¢¥¹¥¿¥Ã¥Õ¤ÎÊý¡¹¡¢1ǯ´Ö¤ªÈè¤ìÍͤǤ·¤¿¡£

¼¡ºî¤Îͽ¹ð¤Ç¡Ö½½¼þǯ¡×±¾¡¹¤È¸À¤Ã¤Æ¤¤¤Æ¡¢¤â¤¦¤½¤ó¤Ê¤Ë·Ð¤Ã¤¿¤Î¤«¤È¡¢¤Ê¤ó¤À¤«¥¯¥é¥¯¥é¡£

#2 [anime] ¥ô¥¡¥ë¥ô¥ì¥¤¥ô2´ü¡¢µÔ»¦²ó¤Î¼¡¤Î²ó¤°¤é¤¤¤Þ¤Ç»ëÄ°

µÔ»¦¥·¡¼¥ó¤¬½Ð¤Æ¤­¤Æ¡¢¡Ö¤³¤Î¹õ¤µ¡Ä¡£¤³¤ì¤Ï¤­¤Ã¤ÈÂç²ÏÆâµÓËܤ˰㤤¤Ê¤¤¡ª ÁêÊѤï¤é¤º¹õ¤¤¡ª ¤µ¤¹¤¬¤À¡ª¡×¤ÈͽÁÛ¤·¤Æ¤¿¤é·§Ã«µÓËܤÀ¤Ã¤¿¤Î¤Ç¥Ó¥Ã¥¯¥ê¤Ç¤·¤¿¡£¤³¤Î¥¢¥Ë¥á¡¢¹õ¤¤µÓËܲȤµ¤ó¤Ð¤«¤ê½¸¤Þ¤Ã¤Æ¤ë¡Ä¡ª ¤¤¤ä¡¢¹Í¤¨¤Æ¤ß¤ì¤Ð°ì´ü¤Î·§Ã«µÓËܤâÁêÅö¹õ¤«¤Ã¤¿¤Ã¤±¡£ º£¤Ë¤Ê¤Ã¤Æ¶Ã¤¯¤³¤È¤Ç¤â¤Ê¤¤¤Ç¤¹¤ï¤Ê¡£

µ¤¤Ë¤Ê¤Ã¤Æ¥°¥°¤Ã¤Æ¤ß¤¿¤é¡¢¡Ö¥¬¥ê¥ì¥¤¥É¥ó¥Ê¡×¤ÎµÔ»¦²ó¤â·§Ã«µÓËܤÀ¤Ã¤¿¤½¤¦¤Ç¡£¤Þ¤¿¡¢Åö¿ÍÛ©¤¯¡¢¡ÖÀïÁèÉÁ¼ÌÅù¤Ï¥È¥é¥¦¥Þ¥ì¥Ù¥ë¤Ç¤¢¤ë¤Ù¤­¡×¡Ö³§¤Ç²Ð¿â¤ë¤ÎÊè¤ò¸«½¬¤ª¤¦¡×Ū¿®Ç°¤ò¤ª»ý¤Á¤À¤½¤¦¤Ç¡£¤Ê¤ë¤Û¤É¡¢¤½¤ì¤â¤¿¤·¤«¤Ë°ìÍý¤¢¤ë¤Ê¡¼¡¢¤È¡£

¹Í¤¨¤Æ¤ß¤ì¤Ð¡¢À¤¤ÎÃæ¤Î¸ä³Ú±ÇÁüºîÉʤˤª¤¤¤Æ¤Ï¡¢¿Í¤¬»à¤Ê¤Ê¤¤ÀïÁ衦ÀïÆ®ÉÁ¼Ì¤Ã¤Æ¤Î¤â¤¢¤Ã¤Æ¡£ÌÀ¤ë¤¯³Ú¤·¤¯¥Ï¥é¥Ï¥é¥É¥­¥É¥­¤Ç¥­¥ã¥Ã¥­¥ã¥¦¥Õ¥Õ¤ÊÀïÁ衦ÀïÆ®ÉÁ¼Ì¤Î¤Û¤¦¤¬¡¢¼Â¤ÏËܼÁŪ¤Ë¤è¤Û¤ÉÉݤ¤¤è¤¦¤Êµ¤¤â¤·¤Æ¤­¤¿¤ê¡£¸«¤Æ¤¤¤Æ¡Ö¤¦¤ï¡¢¹ó¤¤¡×¤È»×¤¦±ÇÁü¤Î¤Û¤¦¤¬¡¢¤à¤·¤í·òÁ´¤Ê±ÇÁü¤È¸À¤¨¤ë¤Î¤«¤â¤·¤ì¤Ê¤¤¤È¡£

¤Þ¤¿¡¢»¦¿Í¤ò¹Ô¤¦Å¨Â¦¤ÎÈóÆ»¤µ¤ò¡¢¤·¤Ã¤«¤êÅÁ¤¨¤ë¤³¤È¤òÌÜŪ¤È¤·¤Æ¤¤¤ë¥·¡¼¥ó¤Ç¤¢¤ì¤Ð¡¢Ìܤòʤ¤¦¤è¤¦¤ÊÉÁ¼Ì¤ò¤½¤³¤ËÀ¹¤ê¹þ¤Þ¤Ê¤¤¤È°ÕÌ£¤¬Ìµ¤¤¤è¤Ê¡¢¤È¤â¡£Å¨¤¬ÈóÆ»¤À¤«¤é¤³¤½¡¢Å¨¤ò¤ä¤Ã¤Ä¤±¤¿»þ¤Ë»ëÄ°¼Ô¦¤â¥¹¥Ã¥­¥ê¤¹¤ë¤Î¤À¤í¤¦¤·¡£¤Ç¤¢¤ì¤Ð¡¢¤½¤¦¤¤¤¦¥·¡¼¥ó¤Ç¥Ö¥ì¡¼¥­Æ§¤ó¤¸¤ã¤¤¤«¤ó¤è¤Ê¤È¡£

²¿¤Ë¤»¤è¡¢¡Ö¹ó¤¤¥·¡¼¥ó¤Ë¤¹¤ë¤¾¡×¤È°Õ¼±¤·¤Æ¡¢¸«»ö¤Ë¹ó¤¤¥·¡¼¥ó¤¬½ÐÍè¾å¤¬¤Ã¤¿¤Î¤À¤«¤é¡¢¤³¤ì¤ÏÎɤ¤»Å»ö¤Ö¤ê¤Ç¤Ï¤Ê¤¤¤Î¤«¤Ê¡¢¤È»×¤¤¤Þ¤·¤¿¡£

¡ý »ÄµÔ¹Ô°Ù¤Î¸«¤»Êý¤Ë¤Ä¤¤¤Æ¤Ê¤ó¤À¤«¹Í¤¨¤Æ¤·¤Þ¤Ã¤¿¤ê¡£ :

¡ÖÀïÁ衦ÀïÆ®¥·¡¼¥ó¤Ï¥È¥é¥¦¥Þ¥ì¥Ù¥ë¤Ç¤¢¤ë¤Ù¤­¡×¤È¤¤¤¦¹Í¤¨Êý¤ËƱ°Õ¤¹¤ë¤È¤³¤í¤â¤¢¤ë¤Î¤À¤±¤ì¤É¡£¤·¤«¤·¡¢¸Ä¿ÍŪ¤Ë¤Ï¡¢¡Ö¸«¤»Êý¤Ï¹©Éפ·¤¿¤Û¤¦¤¬¡×¤È¤â»×¤Ã¤¿¤ê¤·¤Æ¡£¤½¤Î¼ê¤ÎľÀÜÉÁ¼Ì¤Ã¤Æ¤É¤¦¤Ê¤ó¤À¤í¤¦¡¢¤ß¤¿¤¤¤Ê¡£¥¤¥Ç¥ª¥óȯưÊÔ¤¬¹¥¤­¤Ê¼«Ê¬¤Ç¤Ï¤¢¤ë¤Î¤À¤±¤É¡£¤ª¤¸¤µ¤ó¤Ë¤Ê¤Ã¤¿º£¸½ºß¤Ï¡¢¤½¤¦¤¤¤¦¸«¤»Êý¤Ï¹¥¤ß¤Ç¤Ï¤Ê¤¤¤È¤¤¤¦¤«¡£ *1

¤È¸À¤¦¤Î¤â¡¢»ëÄ°¼Ô°ì¿Í°ì¿Í¤Ï¡¢¤½¤Î¼ê¤ÎÉÁ¼Ì¤ËÂФ¹¤ëÂѵ×ÎϤ¬°Û¤Ê¤ë¤«¤é¤Ç¡£¤½¤Î»ëÄ°¼Ô¤Î¡¢Âѵ×ÎϤΤ·¤­¤¤ÃͤòĶ¤¨¤¿Ä¾ÀÜÉÁ¼Ì¤òÄ󼨤·¤Æ¤·¤Þ¤¦¤È¡¢²¼¼ê¤¹¤ë¤È¡¢°ì¥·¡¼¥ó¤¬¸¶°ø¤Ç¡¢ºîÉÊÁ´ÂΤλëÄ°¤¹¤éµñÈݤµ¤ì¤ëŸ³«¤Ë¡£¤½¤ì¤Ï¸ä³Ú¡Ø¾¦Éʡ٤Ȥ·¤Æ¡¢¤è¤í¤·¤¯¤Ê¤¤¤À¤í¤¦¤Ê¤È¡£

¤Ê¤Î¤Ç¡¢Ä¾Àܸ«¤»¤º¡¢´ÖÀÜŪ¤Ë¤½¤Î¼þÊÕ¤òÉÁ¤¤¤Æ¡¢»ëÄ°¼Ô¤ÎÁÛÁüÎϤò°ú¤­½Ð¤¹¸«¤»Êý¤¬²Äǽ¤Ê¤é¡¢¤½¤Ã¤Á¤Î¤Û¤¦¤¬ÈþÌ£¤·¤¤¤Î¤Ç¤Ï¤Ê¤¤¤«¡¢¤Æ¤Ê¤³¤È¤òºÇ¶á¤Ï»×¤Ã¤Æ¤¤¤ë¤Î¤Ç¤·¤¿¡£

»ëÄ°¼Ô¤ËÁÛÁü¤µ¤»¤ë¥¿¥¤¥×¤Î¸«¤»Êý¤Ê¤é¡¢³Æ»ëÄ°¼Ô¤¬¡¢¼«Ê¬¤ÎÁÛÁü¤Ç¤­¤ëÈÏ°Ï¡¦¤·¤­¤¤ÃͤòĶ¤¨¤Ê¤¤ÈϰϤǡ¢¤½¤Î¿Í¤Ë¤È¤Ã¤Æ°ìÈÖ¥­¥Ä¥¤»ÄµÔ¹Ô°Ù¤ò»×¤¤É⤫¤Ù¤Æ¤¯¤ì¤ë¡£¤Ä¤Þ¤ê¡¢³Æ»ëÄ°¼Ô¤Î¥ì¥Ù¥ë¤Ë¹ç¤ï¤»¤Æ¡¢ºîÉʤ¬¥«¥¹¥¿¥Þ¥¤¥º¤µ¤ì¤ë¤âƱÁ³¡£¤³¤ì¤Ï¡¢Ä¾ÀÜÉÁ¼Ì¤Ç¤Ï¡¢¤±¤·¤ÆÆÀ¤é¤ì¤Ê¤¤¸ú²Ì¤Î¤Ï¤º¡£

°ÊÁ°¡¢¡ÖPSYCHO-PASS¡×¤Ç¡¢¡Ö½Ã¤ÎÁÕ¼Ô¥¨¥ê¥ó¡×¤Î´ÆÆĤµ¤ó¤Î¥³¥ó¥ÆôÅö²ó¤ò¸«¤¿¤Î¤Ç¤¹¤±¤É¡£¡Ö¥¨¥ê¥ó¡×¤ÈƱÍÍ¡¢Ä¾ÀÜÉÁ¼Ì¤ÏºÇÄã¸Â¤Ë¤·¤Æ¡¢´ÖÀÜŪÉÁ¼Ì¤ò¿ÍѤ·¤Æ¤¤¤Æ¡£¡Ö¤Ê¤ë¤Û¤É¡¢¤³¤ì¤Ê¤éï¤Ë¤Ç¤â¸«¤»¤é¤ì¤ë¤Ê¤¢¡Ä¡£¤½¤ì¤Ç¤¤¤Æ¡¢ÈȺá¼Ô¤ÎÈóÆ»¤Ö¤ê¤¬¡¢¤·¤Ã¤«¤êÅÁ¤ï¤Ã¤Æ¤¯¤ë¡£¤³¤ì¤Ï¾å¼ê¤¤¡×¤È´¶¿´¤·¤¿µ­²±¤¬¡£¡Ä¤ª¤½¤é¤¯¡¢¸ø¶¦¤ÎÅÅÇȤ˾褻¤ëºîÉʤäƤΤϡ¢¤½¤¦¤¤¤¦¤È¤³¤í¤â°Õ¼±¤Ç¤­¤ë¤«¡¢¹©Éפ·¤Æ¤ë¤«¤¬Ìä¤ï¤ì¤¿¤ê¤¹¤ë¤Î¤«¤Ê¤È¡£¤½¤³¤Þ¤Ç¹Í¤¨¤Æºî¤ë¿Í¤¬¡¢¥×¥í¤Ê¤Î¤À¤í¤¦¡¢¤È¡£ *2

¤È¤Ï¸À¤¦¤â¤Î¤Î¡£
  • ľÀܸ«¤»¤º¡¢¤·¤«¤·¡¢Ä¾Àܸ«¤»¤ë¤è¤ê¶¯Îõ¤Ê¡¢¥È¥é¥¦¥Þ¥ì¥Ù¥ë¤Î¥·¡¼¥ó¤òºî¤ì¤Æ¤·¤Þ¤¦¿Í¤Ê¤ó¤Æ¤½¤ì¤Û¤Éµï¤Ê¤¤¤À¤í¤¦¡¢Æñ°×ÅÙ¹â²á¤®¤Æ¥Õ¥Ä¡¼¤Ï¤Ç¤­¤Ê¤¤¤À¤í¤¦¡¢¤È¤â»×¤¦¤·¡£
  • ´ÖÀÜŪ¤Ê¥½¥ì¤Ã¤Æ¡¢¤ä¤ê²á¤®¤Á¤ã¤¦¤È¥®¥ã¥°¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦»þ¤â¤¢¤ë¤·¡£
  • »ëÄ°¼Ô¤ÎÃæ¤Ë¤Ï¡¢ÁÛÁüÎϤ¬Á´¤¯Æ¯¤«¤Ê¤¤¿Í¤â¤¿¤Þ¤Ëº®¤¶¤Ã¤Æ¤¤¤ÆÌÌÅݤÀ¤·¡£
¤½¤Î¤Ø¤ó¹Í¤¨¤ë¤È¡¢Ä¾ÀÜÉÁ¼Ì¤ò¥Ý¥ó¤È½Ð¤¹¤Û¤¦¤¬¡¢¤ª¼ê·Ú¤Ç³Î¼Â¡¢¤È¤â»×¤¨¤ë¤ï¤±¤Ç¡£¤Ç¤â¡¢¥½¥ì¡¢¤ä¤Ã¤Ñ¤ê·Ý¤¬Ìµ¤¤¤è¤Ê¤¢¡Ä¡£

¤³¤Î¤¢¤¿¤ê¡¢µÓËܤè¤ê¡¢¥³¥ó¥Æ¤òÉÁ¤¯¿Í¤Î°Õ¼±¡¦µ»¤Î¿ô¤¬½ÅÍפǤϡ¢¤È¤â»×¤¦¤Î¤Ç¡¢¤â¤·¤«¤¹¤ë¤ÈµÓËÜ¥ì¥Ù¥ë¤Ç¹Í¤¨¤ë¤³¤È¤Ç¤Ï¤Ê¤¤¤Î¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¤¹¤¬¡£µÓËܤǹ©Éפ·¤Æ¤â¥³¥ó¥Æ¤Ç̵»ë¤µ¤ì¤ë¾ìÌ̤⤢¤ê¤½¤¦¤À¤·¡¢µÓËܤǹͤ¨¤Æ¤Ê¤¯¤Æ¤â¥³¥ó¥Æ¤ÇÉղ䷤Ƥ¯¤ì¤ë¾ìÌ̤⤢¤ê¤½¤¦¤À¤·¡Ä¡£

¤È¤ê¤¢¤¨¤º¡¢¤½¤ó¤Ê¤³¤È¤ò¤Ü¤ó¤ä¤ê¹Í¤¨¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¥á¥â¡£

*1: ¤¿¤È¤¨¼«Ê¬¤Î¹¥¤ß¤Ç¤Ï¤Ê¤¯¤Æ¤â¡¢¥Ð¥Ã¥Á¥ê¤Ê½ÐÍ衦ºî¤ê¼ê¤ÎÁÀ¤¤Ä̤ê¤À¤í¤¦¤È»×¤¨¤ë¥·¡¼¥ó¤Ïɾ²Á¤µ¤ì¤ë¤Ù¤­¡¢¤È¤â»×¤Ã¤Æ¤Þ¤¹¤±¤É¡£
*2: ¤·¤«¤·¡¢¡ÖPSYCHO-PASS¡×¤Ï¡¢Â¾¤Î¥³¥ó¥Æ¡¦±é½Ð¤ÎÊý¤¬Ä¾ÀÜÉÁ¼Ì¤ò¹¥¤àÊý¤Ð¤«¤ê¤À¤Ã¤¿¤Î¤Ç¡Ä¡£ºîÉÊÁ´ÂΤȤ·¤Æ¤Ï¤È¤Ë¤«¤¯¥°¥í¥¤°õ¾Ý¤ò»ý¤¿¤ì¤ë¥¢¥Ë¥á¤À¤Ã¤¿¤è¤¦¤Ê¡Ä¡£

°Ê¾å¡¢31 Æüʬ¤Ç¤¹¡£

²áµî¥í¥°É½¼¨

Prev - 2014/01 - Next
Æü ·î ²Ð ¿å ÌÚ ¶â ÅÚ
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

¥«¥Æ¥´¥ê¤Çɽ¼¨

¸¡º÷µ¡Ç½¤Ï Namazu for hns ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£¡Ê¾ÜºÙ»ØÄê/¥Ø¥ë¥×¡Ë


Ãí°Õ¡§ ¸½ºß»ÈÍѤÎÆüµ­¼«Æ°À¸À®¥·¥¹¥Æ¥à¤Ï Version 2.19.6 ¤Ç¤¹¡£
¸ø³«¤µ¤ì¤Æ¤¤¤ëÆüµ­¼«Æ°À¸À®¥·¥¹¥Æ¥à¤Ï Version 2.19.5 ¤Ç¤¹¡£

Powered by hns-2.19.6, HyperNikkiSystem Project