[{"data":1,"prerenderedAt":263},["ShallowReactive",2],{"page-Paper2d-1":3,"page-count-Paper2d":262},[4],{"id":5,"title":6,"body":7,"date":238,"description":13,"extension":239,"meta":240,"navigation":243,"path":255,"seo":256,"stem":257,"tags":258,"__hash__":261},"blogs\u002F_legacy\u002F2015\u002F2015-09-17-ue4-paper-2d-overview.md","UE4中Paper2D初探",{"type":8,"value":9,"toc":227},"minimark",[10,14,17,28,33,36,39,43,46,52,55,60,63,68,71,76,79,84,87,92,95,100,103,108,111,114,122,125,128,131,134,141,144,147,150,153,160,164,167,170,173,176,179,182,185,190,193,197,200,203,206,209,212,215,218],[11,12,13],"p",{},"Paper 2D是UE4提供的基于精灵的2D系统，可以用于构建2D和2D\u002F3D混合游戏。",[11,15,16],{},"当前UE4版本4.10.2；",[11,18,19,20,27],{},"部分内容参考的[",[21,22,26],"a",{"href":23,"rel":24},"https:\u002F\u002Fwww.google.com.hk\u002Furl?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwj7yprKvc7SAhVFlJQKHfgCA1AQFggaMAA&url=%68%74%74%70%73%3a%2f%2f%64%6f%63%73%2e%75%6e%72%65%61%6c%65%6e%67%69%6e%65%2e%63%6f%6d%2f%6c%61%74%65%73%74%2f%43%48%4e%2f%45%6e%67%69%6e%65%2f%50%61%70%65%72%32%44%2f&usg=AFQjCNG1WlLQvG_q8TSg44GLR4WEJ0ATdA",[25],"nofollow","官方文档","]版本标识为UE4.9。目前Paper 2D的动画系统是基于帧动画的，社区讨论中虽然有加入2D骨骼动画系统的讨论，但是目前的正式引擎版本中并没有这样的功能。",[29,30,32],"h2",{"id":31},"sprite","Sprite",[11,34,35],{},"Sprite是帧动画的基本单位，它来源于对Texture的裁剪，形成动画的一个帧并最终用于FlipBook中。",[11,37,38],{},"Sprite可以从Texture创建也可以创建之后指定Texture，同时UE4支持导入从Texture Packer和Adobe Flash CS6生成的帧动画。",[40,41,42],"h3",{"id":42},"属性",[11,44,45],{},"Sprite的属性相对比较简单：",[11,47,48],{},[49,50,51],"strong",{},"Source Texture",[11,53,54],{},"当前精灵所使用的2D图像",[11,56,57],{},[49,58,59],{},"Source UV",[11,61,62],{},"裁剪的起始点在原图形上的偏离，像素单位",[11,64,65],{},[49,66,67],{},"Source Dimension",[11,69,70],{},"裁剪的大小，像素单位",[11,72,73],{},[49,74,75],{},"Default Material",[11,77,78],{},"精灵的默认材质，系统提供的为Unlit Masked的材质，这个材质可以在Flipbook中进行覆盖设置。",[11,80,81],{},[49,82,83],{},"Pixels per unit",[11,85,86],{},"设置像素与引擎内部单位之间的缩放比例，用于调整精灵在UE世界中的大小。在Paper2D的插件设置中有全局设定，也可以对每个精灵进行指定。",[11,88,89],{},[49,90,91],{},"Pivot Mode",[11,93,94],{},"中心点位置。设置为Custom的话可以进行精细的设置。",[11,96,97],{},[49,98,99],{},"Sockets",[11,101,102],{},"和3D动画中的Sockets功能时类似的，提供一个接口。",[11,104,105],{},[49,106,107],{},"Sprite Collision Domain",[11,109,110],{},"精灵碰撞模式，可以选择无碰撞、2D或者3D。",[11,112,113],{},"属性中有些详细的可以在使用的时候进行调整测试。",[11,115,116,117,121],{},"有一个属性为Additional Textures，从引擎的描述上看是用于为精灵提供额外的贴图的，当前文档中没有给出描述。要使用的话似乎需要对默认材质进行修改，有使用需求的可以参考",[118,119,120],"span",{},"这里","的讨论。",[11,123,124],{},"精灵的材质可以进行很多的调整和自定义，从Flipbook过来的Sprite Color属性在材质中是Vertext Color的输入项。",[40,126,127],{"id":127},"碰撞检测",[11,129,130],{},"整个Paper2D中可以选择的碰撞方式为2D和3D两种，3D碰撞使用的引擎内通用的PhysX，而2D碰撞使用的是Box2D。当前Box2D仍然处于实验阶段，有一些功能是不完整的，文档支持也不够完整。Box2D的支持也只能到Win32和Win64两个平台，要使用额外的功能还要在项目设置中打开bEnable2DPhysics开关。总体而言，目前不是很适合使用。",[11,132,133],{},"同时，在Sprite的编辑器中可以选择对碰撞形态进行调整，除了引擎提供的几种模式之外，可以自行指定。",[11,135,136,137,140],{},"各个碰撞模式的不同可以看官方的",[118,138,139],{},"图例","，相当的直观。",[11,142,143],{},"使用上的建议是使用默认的简单图形进行碰撞，如果需要使用精细的碰撞的话可以使用Sockets来外挂碰撞体来进行碰撞检测，逐帧进行精细的碰撞检测是相当消耗系统运算力的。",[40,145,146],{"id":146},"区域调整",[11,148,149],{},"在Sprite编辑器中可以对裁剪的区域进行调整，也有提供一些快捷的功能。不过一般情况下应该在TexturePacker之类的软件中对这些功能进行调整会更方便一些。",[11,151,152],{},"区域调整功能更重要的是对渲染区域进行调整，将有的精灵中多余的空白部分排除到渲染之外的话，可以很好的降低渲染压力。",[11,154,155],{},[156,157],"img",{"alt":158,"src":159},"","\u002Fwp-content\u002Fuploads\u002F2017\u002F03\u002FphpykKLq1.1453384829.png",[29,161,163],{"id":162},"flipbook","FlipBook",[11,165,166],{},"FlipBook是帧动画的管理类，将Sprite组织成动画进行播放。FlipBook中的属性并不多：",[11,168,169],{},"Frames Per Seconds为每秒帧率；",[11,171,172],{},"Default Material为所有动画帧使用的材质；",[11,174,175],{},"Key Frames中存储的是每一个用到的关键帧的精灵的属性，可以调整的目前只有Frame Run，为帧的持续帧数；",[11,177,178],{},"Collision Source为碰撞模式选择，可以选择关闭碰撞、逐帧碰撞或者使用第一帧进行碰撞。",[11,180,181],{},"实际运用中更加重要的是FlipBook Components，这个蓝图类提供了很多方便的对Flipbook进行操作的接口。",[11,183,184],{},"在使用中如果开启物理出现了翻转出平面之类的不合理现象的话，需要对坐标进行锁定:",[11,186,187],{},[156,188],{"alt":158,"src":189},"\u002Fwp-content\u002Fuploads\u002F2017\u002F03\u002Fphp7XeP65.1453384926.png",[11,191,192],{},"其他的在使用上并没有什么太多的复杂的地方，唯一的麻烦死目前并没有Paper2D的动画状态机，需要在BP中使用事件自行进行动画的更新控制。",[29,194,196],{"id":195},"tileset-tilemap","TileSet& TileMap",[11,198,199],{},"瓦片地图功能，当前在UE4中为实验功能。如果不使用的话可以不用太详细研究的感觉。",[11,201,202],{},"UE4支持从Tiled进行瓦片地图的导入。",[11,204,205],{},"瓦片地图的原理本身比较简单，TileSet与TileMap中的属性设置也都非常的直观。",[11,207,208],{},"Tile本身的碰撞是在TileSet中进行设置和调整的，在TileMap中也有开关进行碰撞类型的选择，Sprite Collision",[11,210,211],{},"Domain的含义与Sprite中是一样的。TileSet编辑器中也可以对每一个Tile进行一些独立的调整。",[11,213,214],{},"TileMap本身支持多层地图，功能上还是比较完整的。",[11,216,217],{},"有一个属性需要注意，Sepration Per Layer，这个属性是用于调整每一层地图之间的距离的，在多层地图中，相当于通常的Z-Order设置的位置，可以为一些地图特效提供帮助。",[11,219,220,221,226],{},"最后，在C++中使用Paper2D的功能当前并未完全开发，官方的建议是自己参考相关文档，例如[",[21,222,225],{"href":223,"rel":224},"https:\u002F\u002Fwww.google.com.hk\u002Furl?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwi8rtmcwM7SAhWIm5QKHTJCAacQFggaMAA&url=%68%74%74%70%73%3a%2f%2f%64%6f%63%73%2e%75%6e%72%65%61%6c%65%6e%67%69%6e%65%2e%63%6f%6d%2f%6c%61%74%65%73%74%2f%49%4e%54%2f%41%50%49%2f%50%6c%75%67%69%6e%73%2f%50%61%70%65%72%32%44%2f%55%50%61%70%65%72%46%6c%69%70%62%6f%6f%6b%43%6f%6d%70%6f%6e%65%6e%74%2f%69%6e%64%65%78%2e%68%74%6d%6c&usg=AFQjCNHCRxbIjTBa0auVoc68-WMegXvSIg",[25],"UPaperFlipbookComponent的文档","]进行相关操作。",{"title":158,"searchDepth":228,"depth":229,"links":230},2,3,[231,236,237],{"id":31,"depth":228,"text":32,"children":232},[233,234,235],{"id":42,"depth":229,"text":42},{"id":127,"depth":229,"text":127},{"id":146,"depth":229,"text":146},{"id":162,"depth":228,"text":163},{"id":195,"depth":228,"text":196},"2015-09-17","md",{"layout":241,"status":242,"published":243,"author":244,"author_login":245,"author_email":246,"author_url":247,"wordpress_id":248,"wordpress_url":249,"date_gmt":250,"excerpt":251},"post","publish",true,{"display_name":245,"login":245,"email":246,"url":247},"chaoshikari","chaoshikari@gmail.com","\u002F",1486,"\u002F\u002F?p=1486","2015-09-17 12:42:51 +0000",{"type":8,"value":252},[253],[11,254,13],{},"\u002F2015-09-17-ue4-paper-2d-overview",{"title":6,"description":13},"_legacy\u002F2015\u002F2015-09-17-ue4-paper-2d-overview",[259,260],"UE4","Paper2d","RyVgAPhmb0BSN6mth_bfpap0N4j-E_ekUqpbEXBflh0",1,1788763180635]